1. 程式人生 > >Hive常見操作語句--建立表語句

Hive常見操作語句--建立表語句

原文地址:http://bestchenwu.iteye.com/blog/2171795

一:hive建表語句

Sql程式碼  收藏程式碼
  1. create table page_view  
  2. (  
  3. page_id bigint comment '頁面ID',  
  4. page_name string comment '頁面名稱',  
  5. page_url string comment '頁面URL'  
  6. )  
  7. comment '頁面檢視'  
  8. partitioned by (ds string comment '當前時間,用於分割槽欄位')  
  9. row format delimited  
  10. stored as
     rcfile  
  11. location '/user/hive/test';  

 
這裡需要說下stored as 關鍵詞,hive目前支援三種方式:

1:就是最普通的textfile,資料不做壓縮,磁碟開銷大,解析開銷也大

2:SquenceFIle,hadoop api提供的一種二進位制API方式,其具有使用方便、可分割、可壓縮等特點。

3:rcfile行列儲存結合的方式,它會首先將資料進行分塊,保證同一個record在一個分塊上,避免讀一次記錄需要讀多個塊。其次塊資料列式儲存,便於資料儲存和快速的列存取。

RCFILE由於採用是的列式儲存,所以載入時候開銷較大,但具有很好的查詢響應、較好的壓縮比。

如果建立的表需要加上分割槽,則語句如下:

這裡partitioned by 表示按什麼欄位進行分割,通常來說是按時間

Sql程式碼  收藏程式碼
  1. create table test_ds  
  2. (  
  3.   id int comment '使用者ID',  
  4.   name string comment '使用者名稱稱'  
  5. )  
  6. comment '測試分割槽表'  
  7. partitioned by(ds string comment '時間分割槽欄位')  
  8. clustered by(id) sorted by(nameinto 32 buckets  
  9. row format delimited   
  10. fields terminated by '\t'  
  11. stored as rcfile;  

如果需要對某些欄位進行聚類儲存,方便對hive叢集列進行取樣,則應該這樣編寫SQL:

Sql程式碼  收藏程式碼
  1. create table test_ds  
  2. (  
  3.   id int comment '使用者ID',  
  4.   name string comment '使用者名稱稱'  
  5. )  
  6. comment '測試分割槽表'  
  7. partitioned by(ds string comment '時間分割槽欄位')  
  8. clustered by(id) sorted by(nameinto 32 buckets      
  9. row format delimited   
  10. fields terminated by '\t'  
  11. stored as rcfile;  

 這裡表示將id按照name進行排序,聚類彙總,然後分區劃分到32個雜湊桶中。如果想改變表在hdfs中的位置,則應該使用location欄位顯式的指定:

Sql程式碼  收藏程式碼
  1. create table test_another_location  
  2. (  
  3.    id int,   
  4.    name string,  
  5.    url string  
  6. )  
  7. comment '測試另外一個位置'  
  8. row format delimited  
  9. fields terminated by '\t'  
  10. stored as textfile  
  11. location '/tmp/test_location';  

 其中/tmp/test_location可不必先建立


相關推薦

Hive常見操作語句--建立語句

原文地址:http://bestchenwu.iteye.com/blog/2171795 一:hive建表語句 Sql程式碼   create table page_view   (   page_id bigint comment '頁面ID',   pag

使用sql語句建立,並實現對錶的修改操作

>需求:    a. 在test資料庫中建立person表,其結構如表1所示。    b. 將表名稱修改為tb_person。    c. 刪除出生日期欄位。    d. 添加出生日期欄位,資料型別為DATE型別。    e. 修改number欄位為id,型別改為BIG

【資料庫SQL】常見SQL語句-建立_新增主鍵_新增列

常見SQL語句-建立表 新增主鍵 新增列  新建表: create table [表名] ( [自動編號欄位] int IDENTITY (1,1) PRIMARY KEY , [欄位1] nVarChar(50) default \'預設值\' null , [欄位2]

hive資訊查詢:查看錶結構、操作、建語句

問題導讀: 1.如何檢視hive表結構? 2.如何查看錶結構資訊? 3.如何檢視分割槽資訊?4.哪個命令可以模糊搜尋表 28.怎麼查詢建立表語句 1.hive模糊搜尋表   show tables like '*name*'; 2.查看錶結構資訊   desc forma

oracle sql語句建立空間、使用者、並給使用者賦予許可權

--建立表空間、大小100m,自增長50m ,最大為 2G;位置: 'h:\app\a.dbf' create tablespace 表空間名 datafile 'h:\app\a.dbf' size 100m autoextend on next 50m maxsize 20480m ext

mysql使用SQL語句建立

使用SQL語句建立一張表,不僅可以可以快速建立表,少去了不少時間,還可以從這看出一個人對該技能點的熟悉程度。 下面是一張簡單的表建立語句: CREATE TABLE `tb_area`( `area_id` INT(2) NOT NULL AUTO_INCREMENT, `a

Hive的DDL資料定義(一)資料庫操作以及建立

建立資料庫 建立一個數據庫,資料庫在HDFS上的預設儲存路徑是/user/hive/warehouse/*.db。 hive (default)> create database db_hive; 避免要建立的資料庫已經存在錯誤,增加if not exists判斷。(

程式設計式Mybatis獲取oracle建立語句

寫在前面 Mybatis之前使用過一段時間,當然只是粗糙地使用,而且配合Spring有一部分Mybatis管理的內容都交給了Spring,加上一段時間沒用到又開始忘了,剛好今天碰到一個要求,Oracle的A庫的若干表需要在B庫裡面創建出來,看上去是挺簡單地,通

Access sql語句建立及欄位型別

建立一張空表: Sql="Create TABLE [表名]" 建立一張有欄位的表: Sql="Create TABLE [表名]([欄位名1] MEMO NOT NULL, [欄位名2] MEMO, [欄位名3] COUNTER NOT NULL, [欄位名4] DA

sql語句---建立

1、SQL Server資料庫主要的列屬性 是否允許為空值(NULL或NOT NULL) 定義主鍵(PRIMARY KEY) 自動生成列值(IDENTITY) 定義預設值(DEFAULT) 2、使用CREATE TABLE語句建立表 語法:CREATE T

mongodb建立語句

db.test.insert( {     "_id" : ObjectId("5754e61f1011be2f686ddc22"),     "a" : "2015-05-12" } )

sqlserver資料庫建立語句

在sqlserver 下想複製一張表的,想到oracle下直接create table xxx as select * from ....即可。sqlserver的語法是 : select * into tablenew from tableold

Navicat for MySQL介面下如何用SQL語句建立

選擇一個數據庫,點選“查詢”,在右側點選“建立查詢”,輸入SQL語句,點選“執行”就可以了 示例SQL: CREATE TABLE `test`.`users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEF

Oracle建立語句(Create table)語法詳解及示例

8. 較複雜的建立表例子SQL> CREATE TABLE s_emp(id NUMBER(7)CONSTRAINT s_emp_id_pk PRIMARY KEY,last_name VARCHAR2(25)CONSTRAINT s_emp_last_name_nn NOT NULL,first_na

mysql sql語句建立

當你用sql語句建立表的時候,例如: create table `tb_article` ( `a_id` int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, `a_title` varchar(50) character set u

ACCESS資料庫使用sql語句建立

在Access中使用sql語句建立表時指定欄位型別 長度為255的文字varchar 長度為20的文字varchar(20) 日期時間datetime 數字byte或smallint或integer,或bit 自動編號:counter(1,1) 外健:constraint外

Qt5.9Creator讀寫Mysql5.7.17資料庫詳細例子(資料庫基本操作建立,查詢,插入,刪除,修改)

本文章主要總結的內容是用Qt5.9Creator工程讀寫Mysql5.7.17資料庫。具體的操作步驟如下所述。   一、用Qt5.9的Creator建立一個Console工程,選擇MinGW32編譯器。   二、新增程式碼 2.1建立好工程後,在.pro檔案裡

0005.hive的sql建立內部語句

建表: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name    [(col_name data_type [COMMENT col_comment], ...)]    [COMMENT table_comment]   

使用T-SQL語句操作數據-插入數據

行數 不能 字符 但是 列表 插入 設計 數位 check約束 插入數據(insert)語法:insert [into] <表名> [列名] values <值列表>解釋:insert :是語法名,插入的意思into:是選填的,可以省略。

使用T-SQL語句操作數據-刪除數據

語句 但是 sql truncate 表格 內容 表名 刪除表格 rom 1.使用 delete 語句刪除表中的數據:語法:delete from <表名> [where <刪除條件>]delete 是刪除的意思 where是選填內容可以