當前位置:首頁 » 服務存儲 » hive是按什麼存儲的
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

hive是按什麼存儲的

發布時間: 2022-06-07 02:29:35

『壹』 大數據Hive倉庫是什麼

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射成一張表,並提供類sql查詢功能;其本質是將HQL轉化成MapRece程序。

  • 構建在Hadoop之上的數據倉庫:

  • 使用HQL作為查詢介面

  • 使用HDFS存儲

  • 使用MapRece計算

  • 靈活性和擴展性比較好:支持UDF,自定義存儲格式等:

  • 適合離線數據處理

『貳』 hive的幾種文件格式

hive文件存儲格式包括以下幾類:

1、TEXTFILE

2、SEQUENCEFILE

3、RCFILE

4、ORCFILE(0.11以後出現)

其中TEXTFILE為默認格式,建表時不指定默認為這個格式,導入數據時會直接把數據文件拷貝到hdfs上不進行處理;

SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接從本地文件導入數據,數據要先導入到textfile格式的表中, 然後再從表中用insert導入SequenceFile,RCFile,ORCFile表中。

前提創建環境:

hive 0.8

創建一張testfile_table表,格式為textfile。

create table if not exists testfile_table( site string, url string, pv bigint, label string) row format delimited fields terminated by ' ' stored as textfile;

load data local inpath '/app/weibo.txt' overwrite into table textfile_table;

一、TEXTFILE
默認格式,數據不做壓縮,磁碟開銷大,數據解析開銷大。
可結合Gzip、Bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對數據進行切分,
從而無法對數據進行並行操作。
示例:

總結:
相比TEXTFILE和SEQUENCEFILE,RCFILE由於列式存儲方式,數據載入時性能消耗較大,但是具有較好的壓縮比和查詢響應。數據倉庫的特點是一次寫入、多次讀取,因此,整體來看,RCFILE相比其餘兩種格式具有較明顯的優勢。

『叄』 hive和mysql的區別是什麼

hive和mysql的區別有:

1、查詢語言不同:hive是hql語言,mysql是sql語句;

2、數據存儲位置不同:hive是把數據存儲在hdfs上,而mysql數據是存儲在自己的系統中;

3、數據格式:hive數據格式可以用戶自定義,mysql有自己的系統定義格式;

4、數據更新:hive不支持數據更新,只可以讀,不可以寫,而sql支持數據更新;

5、索引:hive沒有索引,因此查詢數據的時候是通過maprece很暴力的把數據都查詢一遍,也造成了hive查詢數據速度很慢的原因,而mysql有索引。

『肆』 什麼是hive分區

Hive的分區方式:由於Hive實際是存儲在HDFS上的抽象,Hive的一個分區名對應一個目錄名,子分區名就是子目錄名,並不是一個實際欄位。按照數據表的某列或某些列分為多個區,區從形式上是文件夾(HDFS里的文件夾)

『伍』 hive分桶表的儲存格式是什麼固定的還是可以隨意指定

對於每一個表或者是分區,Hive可以進一步組織成桶,也就是說桶是更為細粒度的數據范圍劃分。Hive是針對某一列進行分桶。Hive採用對列值哈希,然後除以桶的個數求余的方式決定該條記錄存放在哪個桶中。分桶的好處是可以獲得更高的查詢處理效率。使取樣更高效
hive表數據是在hdfs中儲存的並沒有固定的儲存格式,hive只保存管理表元數據。
桶就是將數據表由一個文件存儲分為多個文件存儲
分桶語法:
create table t_buck(id string,name string)
clustered by (id) into 4 buckets;
指定了根據id分成4個桶,最好的導入數據方式是insert into table.
要開啟模式開關 
set hive.enforce.bucketing = true;
set maprece.job.reces=4;
查詢時cluster by指定的欄位就是partition時分區的key

『陸』 分布式環境下hive的外部表是如何存儲的

第一、hive本身是不存儲數據的,不論外表、內表,hive的所有數據是存放在hdfs文件系統的。
第二、基於上面,你的問題就轉變為hdfs的文件是如何存儲的了,hdfs的文件是以塊block存儲的,每個塊分布在多台機器上面,每個塊的信息以及存放路徑則存放在nameNode節點的元數據里邊。

『柒』 hive 的元數據存儲在 derby 和 mysql 中有什麼區別

定義 元數據最本質、最抽象的定義為:data about data (關於數據的數據)。它是一種廣泛存在的現象,在許多領域有其具體的定義和應用。 在數據倉庫領域中,元數據被定義為:描述數據及其環境的數據。一般來說,它有兩方面的用途。