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 『\t』 stored as textfile;
預設格式,資料不做壓縮,磁碟開銷大,資料解析開銷大。
可結合gzip、bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對資料進行切分,從而無法對資料進行並行操作。
示例:
create table if not exists textfile_table(
site string,
url string,
pv bigint,
label string)
row format delimited
fields terminated by '\t'
stored as textfile;
插入資料操作:
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.gzipcodec;
set io.compression.codecs=org.apache.hadoop.io.compress.gzipcodec;
insert overwrite table textfile_table select * from textfile_table;
sequencefile是hadoop api提供的一種二進位制檔案支援,其具有使用方便、可分割、可壓縮的特點。
sequencefile支援三種壓縮選擇:none,record,block。record壓縮率低,一般建議使用block壓縮。
示例:
create table if not exists seqfile_table(
site string,
url string,
pv bigint,
label string)
row format delimited
fields terminated by '\t'
stored as sequencefile;
插入資料操作:
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.gzipcodec;
set io.compression.codecs=org.apache.hadoop.io.compress.gzipcodec;
set mapred.output.compression.type=block;
insert overwrite table seqfile_table select * from textfile_table;
rcfile是一種行列儲存相結合的儲存方式。首先,其將資料按行分塊,保證同乙個record在乙個塊上,避免讀乙個記錄需要讀取多個block。其次,塊資料列式儲存,有利於資料壓縮和快速的列訪問。
rcfile檔案示例:
create table if not exists rcfile_table(
site string,
url string,
pv bigint,
label string)
row format delimited
fields terminated by '\t'
stored as rcfile;
插入資料操作:
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.gzipcodec;
set io.compression.codecs=org.apache.hadoop.io.compress.gzipcodec;
insert overwrite table rcfile_table select * from textfile_table;
Hive 檔案格式
hive檔案儲存格式包括以下幾類 1 textfile 2 sequencefile 3 rcfile 4 orcfile 0.11以後出現 5 parquet其中textfile為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理 sequencefile,...
Hive檔案格式
hive檔案儲存格式包括以下幾類 1 textfile 2 sequencefile 3 rcfile 4 orcfile 0.11以後出現 其中textfile為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理 sequencefile,rcfile,or...
hive檔案格式
sequencefile sequencefile是hadoop api 提供的一種二進位制檔案,它將資料以的形式序列化到檔案中。這種二進位制檔案內部使用hadoop 的標準的writable 介面實現序列化和反序列化。它與hadoop api中的mapfile 是互相相容的。hive 中的sequ...