Hive 數據庫倉庫的基本操作

Hive 數據庫倉庫的基本操作

查看hive中的數據庫

Show databases


查看hive中的表

Show tables


查看錶結構信息

 DESCRIBE table_name;


創建表:

CREATE TABLE daxiong (id INT, name STRING);


創建一個新表daxiong1,結構與daxiong一樣

Create table daxiong1 like daxiong


創建分區表

create table logs(ts bigint,line string) partitioned by (dt String,country String);


加載表數據

(從linux(ext3/ext4文件系統到hive))

 


a文件之間是空格,b文件之間是tab鍵;一會看結果。

hive> create table ha(id int,name string)

    > row format delimited

    > fields terminated by '\\t'

    > stored as textfile;

OK

Time taken: 0.28 seconds

注:[ROW FORMAT DELIMITED]關鍵字,是用來設置創建的表在加載數據的時候,支持的列分隔符。

[STORED AS file_format]關鍵字是用來設置加載數據的數據類型,默認是TEXTFILE,如果文件數據是純文本,就是使用 [STORED AS TEXTFILE],然後從本地直接拷貝到HDFS上,hive直接可以識別數據。


HDFS上導入數據到Hive


linux上傳到hdfs上:


load data inpath '/user/c' into table ha;


導出到本地文件系統

insert overwrite local directory '/home/hdfs/d' select * from ha;



導出到HDFS

insert overwrite directory '/user/d select * from ha;


查看:


Hive連接hbase(數據傳輸)

建立一個表格classes具有1個列族user

create 'classes','user'

查看錶的構造

describe 'classes

加入數據

put 'classes','001','user:name','jack'put 'classes','001','user:age','20' put 'classes','002','user:name','liza' put 'classes','002','user:age','18'

查看classes中的數據

scan 'classes'


創建外部hive,查詢驗證:

create external table classes(id int, name string, age int)  STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,user:name,user:age")  TBLPROPERTIES("hbase.table.name" = "classes");

select * from classes;


再添加數據到Hbase

put 'classes','003','user:age','1820183291839132'

scan 'classes'


Hive查詢,看看新數據

select * from classes;

null,因爲3沒有name,所以補位Null,而ageNull是因爲超過最大值,截圖中有驗證



上述演示了在hbase中添加數據,在hive中就會產生新的數據,下面是在hive中創建hbase連接表,在hbase中就會自動生成一個與hive中同名的表,hive中表的數據發生變化,在hbse中也會發生同樣的變化。



   


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章