最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于hive表的存儲格式ORC格式的使用詳解

 更新時間:2023年07月04日 11:43:04   作者:longshenlmj  
這篇文章主要介紹了關于hive表的存儲格式ORC格式的使用詳解,Hive?是基于?Hadoop?的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一張表,并提供類SQL查詢功能,需要的朋友可以參考下

hive表的源文件存儲格式:

1、TEXTFILE

默認格式,建表時不指定默認為這個格式,導入數(shù)據(jù)時會直接把數(shù)據(jù)文件拷貝到hdfs上不進行處理。源文件可以直接通過hadoop fs -cat 查看

2、SEQUENCEFILE  

一種Hadoop API提供的二進制文件,使用方便、可分割、可壓縮等特點。    SEQUENCEFILE將數(shù)據(jù)以<key,value>的形式序列化到文件中。序列化和反序列化使用Hadoop 的標準的Writable 接口實現(xiàn)。key為空,用value 存放實際的值, 這樣可以避免map 階段的排序過程。   

三種壓縮選擇:NONE, RECORD, BLOCK。 Record壓縮率低,一般建議使用BLOCK壓縮。使用時設置參數(shù),       

  • SET hive.exec.compress.output=true;       
  • SET io.seqfile.compression.type=BLOCK; -- NONE/RECORD/BLOCK       
  • create table test2(str STRING)  STORED AS SEQUENCEFILE; 

3、RCFILE

    一種行列存儲相結合的存儲方式。首先,其將數(shù)據(jù)按行分塊,保證同一個record在一個塊上,避免讀一個記錄需要讀取多個block。其次,塊數(shù)據(jù)列式存儲,有利于數(shù)據(jù)壓縮和快速的列存取。理論上具有高查詢效率(但hive官方說效果不明顯,只有存儲上能省10%的空間,所以不好用,可以不用)。      RCFile結合行存儲查詢的快速和列存儲節(jié)省空間的特點       

1)同一行的數(shù)據(jù)位于同一節(jié)點,因此元組重構的開銷很低;       

2) 塊內列存儲,可以進行列維度的數(shù)據(jù)壓縮,跳過不必要的列讀取。     

查詢過程中,在IO上跳過不關心的列。實際過程是,在map階段從遠端拷貝仍然拷貝整個數(shù)據(jù)塊到本地目錄,也并不是真正直接跳過列,而是通過掃描每一個row group的頭部定義來實現(xiàn)的。     

但是在整個HDFS Block 級別的頭部并沒有定義每個列從哪個row group起始到哪個row group結束。所以在讀取所有列的情況下,RCFile的性能反而沒有SequenceFile高。

4、ORC

hive給出的新格式,屬于RCFILE的升級版。

5、自定義格式

用戶的數(shù)據(jù)文件格式不能被當前 Hive 所識別的,時通過實現(xiàn)inputformat和outputformat來自定義輸入輸出格式

注意:

  只有TEXTFILE表能直接加載數(shù)據(jù),必須,本地load數(shù)據(jù),和external外部表直接加載運路徑數(shù)據(jù),都只能用TEXTFILE表。  更深一步,hive默認支持的壓縮文件(hadoop默認支持的壓縮格式),也只能用TEXTFILE表直接讀取。其他格式不行。可以通過TEXTFILE表加載后insert到其他表中。

  換句話說,SequenceFile、RCFile表不能直接加載數(shù)據(jù),數(shù)據(jù)要先導入到textfile表,再從textfile表通過insert select from 導入到SequenceFile,RCFile表。  SequenceFile、RCFile表的源文件不能直接查看,在hive中用select看。

RCFile源文件可以用 hive --service rcfilecat /xxxxxxxxxxxxxxxxxxxxxxxxxxx/000000_0查看,但是格式不同,很亂。

ORC格式

   ORC是RCfile的升級版,性能有大幅度提升,    而且數(shù)據(jù)可以壓縮存儲,壓縮比和Lzo壓縮差不多,比text文件壓縮比可以達到70%的空間。而且讀性能非常高,可以實現(xiàn)高效查詢。    具體介紹https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

建表語句如下:  同時,將ORC的表中的NULL取值,由默認的\N改為'',

方式一:

create table if not exists test_orc(
? advertiser_id string,
? ad_plan_id string,
? cnt BIGINT
) partitioned by (day string, type TINYINT COMMENT '0 as bid, 1 as win, 2 as ck', hour TINYINT)
STORED AS ORC;
alter table test_orc set serdeproperties('serialization.null.format' = '');

查看結果

hive&gt; show create table test_orc;
CREATE ?TABLE `test_orc`(
? `advertiser_id` string,?
? `ad_plan_id` string,?
? `cnt` bigint)
PARTITIONED BY (?
? `day` string,?
? `type` tinyint COMMENT '0 as bid, 1 as win, 2 as ck',?
? `hour` tinyint)
ROW FORMAT DELIMITED?
? NULL DEFINED AS ''?
STORED AS INPUTFORMAT?
? 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'?
OUTPUTFORMAT?
? 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
? 'hdfs://namenode/hivedata/warehouse/pmp.db/test_orc'
TBLPROPERTIES (
? 'last_modified_by'='pmp_bi',?
? 'last_modified_time'='1465992624',?
? 'transient_lastDdlTime'='1465992624')

方式二:

drop table test_orc;
create table if not exists test_orc(
  advertiser_id string,
  ad_plan_id string,
  cnt BIGINT
) partitioned by (day string, type TINYINT COMMENT '0 as bid, 1 as win, 2 as ck', hour TINYINT)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
with serdeproperties('serialization.null.format' = '')
STORED AS ORC;

查看結果

hive&gt; show create table test_orc;
CREATE  TABLE `test_orc`(
  `advertiser_id` string, 
  `ad_plan_id` string, 
  `cnt` bigint)
PARTITIONED BY ( 
  `day` string, 
  `type` tinyint COMMENT '0 as bid, 1 as win, 2 as ck', 
  `hour` tinyint)
ROW FORMAT DELIMITED 
  NULL DEFINED AS '' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  'hdfs://namenode/hivedata/warehouse/pmp.db/test_orc'
TBLPROPERTIES (
  'transient_lastDdlTime'='1465992726')

方式三:

drop table test_orc;
create table if not exists test_orc(
  advertiser_id string,
  ad_plan_id string,
  cnt BIGINT
) partitioned by (day string, type TINYINT COMMENT '0 as bid, 1 as win, 2 as ck', hour TINYINT)
ROW FORMAT DELIMITED 
  NULL DEFINED AS '' 
STORED AS ORC;

查看結果

hive&gt; show create table test_orc;
CREATE  TABLE `test_orc`(
  `advertiser_id` string, 
  `ad_plan_id` string, 
  `cnt` bigint)
PARTITIONED BY ( 
  `day` string, 
  `type` tinyint COMMENT '0 as bid, 1 as win, 2 as ck', 
  `hour` tinyint)
ROW FORMAT DELIMITED 
  NULL DEFINED AS '' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  'hdfs://namenode/hivedata/warehouse/pmp.db/test_orc'
TBLPROPERTIES (
  'transient_lastDdlTime'='1465992916')

到此這篇關于關于hive表的存儲格式ORC格式的使用詳解的文章就介紹到這了,更多相關hive表的ORC格式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • navicat15 恢復試用方法圖解

    navicat15 恢復試用方法圖解

    因為公司項目需要用到Mysql數(shù)據(jù)庫,為了方便管理,使用navicat for mysql 15來進行可視化操作數(shù)據(jù)庫,結果項目還沒做完,試用就過期了,下面通過本文給大家分享navicat15 恢復試用方法,感興趣的朋友一起看看吧
    2023-10-10
  • 數(shù)據(jù)庫基本概念面試必問

    數(shù)據(jù)庫基本概念面試必問

    這篇文章主要介紹了數(shù)據(jù)庫基本概念面試必問的相關資料,需要的朋友可以參考下
    2016-03-03
  • Clickhouse系列之整合Hive數(shù)據(jù)倉庫示例詳解

    Clickhouse系列之整合Hive數(shù)據(jù)倉庫示例詳解

    這篇文章主要為大家介紹了Clickhouse系列之整合Hive數(shù)據(jù)倉庫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 一篇文章帶你了解數(shù)據(jù)庫中group by的用法

    一篇文章帶你了解數(shù)據(jù)庫中group by的用法

    這篇文章主要給大家介紹了關于數(shù)據(jù)庫中group by的法的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用數(shù)據(jù)庫具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • 數(shù)據(jù)庫分頁查詢方法

    數(shù)據(jù)庫分頁查詢方法

    在這里主要講解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三種數(shù)據(jù)庫實現(xiàn)分頁查詢的方法。
    2009-07-07
  • 一文告訴你Sql的執(zhí)行順序是怎樣的

    一文告訴你Sql的執(zhí)行順序是怎樣的

    這篇文章主要給大家介紹了關于Sql的執(zhí)行順序是怎樣的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 深入SQL中PIVOT 行列轉換詳解

    深入SQL中PIVOT 行列轉換詳解

    T-SQL語句中,Pivot運算符用于在列和行之間對數(shù)據(jù)進行旋轉或透視轉換,PIVOT命令可以實現(xiàn)數(shù)據(jù)表的列轉行,同時執(zhí)行聚合運算,UNPIVOT則與其相反,實現(xiàn)數(shù)據(jù)的行轉列。
    2015-10-10
  • Navicat Premium 15 永久破解激活工具及安裝教程(親測可用)

    Navicat Premium 15 永久破解激活工具及安裝教程(親測可用)

    這篇文章主要介紹了Navicat Premium 15 永久破解激活教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 用Navicat生成ER關系圖并導出全過程

    用Navicat生成ER關系圖并導出全過程

    本文介紹了如何使用Navicat Premium 12自動生成和導出ER關系圖的步驟,包括新建模型、導入表、設計外鏈關系、保存并導出等過程
    2026-02-02
  • 關于hive中SQL的執(zhí)行原理解析

    關于hive中SQL的執(zhí)行原理解析

    這篇文章主要介紹了關于hive中SQL的執(zhí)行原理解析,Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一張表,并提供類SQL查詢功能,需要的朋友可以參考下
    2023-07-07

最新評論

龙里县| 上虞市| 西乡县| 岳西县| 濮阳县| 麻江县| 军事| 馆陶县| 台南县| 化德县| 庆安县| 高碑店市| 无锡市| 安泽县| 镇巴县| 安仁县| 陈巴尔虎旗| 民勤县| 冕宁县| 泰州市| 关岭| 日喀则市| 达尔| 万安县| 香港| 晋宁县| 福贡县| 甘洛县| 吴江市| 百色市| SHOW| 桐柏县| 山阳县| 连平县| 拜城县| 盱眙县| 金乡县| 伊通| 准格尔旗| 建始县| 大竹县|