hive orc表'orc.create.index'='true'與'orc.create.index'='false'
hive ORC檔案儲存格式是以列存的方式,在查詢表中少數列資料,不必要去查詢沒條資料的所有欄位;但是如果一個列的值全部儲存一起,查詢一個列的一條資料,會將整個表該列的所有資料都查詢出來,如果資料量很大,查詢速度依然很慢;然後引入orc.create.index(行組索引),行組索引就能解決以上的問題;
概念解釋:
行組索引:
如下圖:
表一為傳統資料儲存,按行儲存,如果沒有儲存索引的話,查詢一個欄位,需要把整行查詢出來;
表二為orc行組索引,首先資料按照列存方式儲存,然後按照一個單位值(10000行)組成一個行組,查詢時,在orc的 每個行組索引的後設資料(後設資料 記錄了行組下每個列的最小值、最大值、和等資訊)匹配查詢條件,資料查詢掃描對應的行組,從而達到優化查詢的目錄;
非行組索引的orc表,則orc後設資料沒有 每個列的最小值、最大值、和等資訊,查詢時,資料掃描會進行全表掃描,不能達到查詢優化的目的;
常見orc建表語句如下:
CREATE TABLE T (C1 INT,C2 INT)STORED AS ORC; -- 建立帶有行組索引的orc空表(預設情況下建立orc表,是帶有orc.create.index=true屬性的) CREATE TABLE T (C1 INT,C2 INT)STORED AS ORC TBLPROPERTIES('orc.create.index'='true'); -- 建立帶有行組索引的orc空表 CREATE TABLE T (C1 INT,C2 INT)STORED AS ORC TBLPROPERTIES('orc.create.index'='false'); -- 建立不帶有行組索引的orc空表 create TABLE T stored AS ORC TBLPROPERTIES('orc.create.index'='true') as select * from T_TMP; -- 建立帶有行組索引的orc表,如果T_TMP有資料,建立T表時也會進行資料載入 create TABLE T stored AS ORC TBLPROPERTIES('orc.create.index'='false') as select * from T_TMP; -- 建立不帶有行組索引的orc表,如果T_TMP有資料,建立T表時也會進行資料載入
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985104/viewspace-2758737/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- true || false && falseFalse
- Python解惑:True與FalsePythonFalse
- WPF ClipToBounds True or falseFalse
- Ruby中的true和falseFalse
- js判斷true和false一覽JSFalse
- 做「容量預估」可沒有true和falseFalse
- js中return、return true、return false的區別JSFalse
- Java中“100=100”為true,而"1000=1000"為false?JavaFalse
- peewee 的 BooleanField 是翻譯為 tinyint(1) 還是 enum('true','false')?BooleanFalse
- Java-學習日記(100 == 100為true,1000 == 1000卻為false?)JavaFalse
- VectorizedReader和ORCZed
- 『Java 語法基礎』3 * 0.1 == 0.3 將會返回什麼?true 還是 false?JavaFalse
- Python3中真真假假True、False、None等含義詳解PythonFalseNone
- hive建表Hive
- preventDefault()與return false區別False
- auto-install-peers=true strict-peer-dependencies=false 這兩個配置的作用是什麼False
- mysql資料庫中tinyint(1) 儲存數字時候取值為True、False解釋MySql資料庫False
- [hive]hive資料模型中四種表Hive模型
- Hadoop Streaming 讀ORC檔案Hadoop
- hive分桶表排序Hive排序
- Hive表的基本操作Hive
- Spark操作Hive分割槽表SparkHive
- Hive內部表和外部表的區別Hive
- hive 分割槽表和分桶表區別Hive
- 在hive中建立幾種表Hive
- Hive 表的兩種分類Hive
- SparkSQL與Hive metastore ParquetSparkSQLHiveAST
- 將資料匯入kudu表(建立臨時hive表,從hive匯入kudu)步驟Hive
- JavaScript return falseJavaScriptFalse
- [Hive]建表例項與引數解釋——自定義表的儲存格式(textfile、sequencefile、refile)Hive
- hive表中yyyymmdd格式日期校驗Hive
- Hive與Impala的異同Hive
- Hue--整合Hive與ImpalaHive
- hive表查詢中文顯示亂碼Hive
- spark相關介紹-提取hive表(一)SparkHive
- hive 動態分割槽插入資料表Hive
- hive學習筆記之三:內部表和外部表Hive筆記
- Hive列合併與元素蒐集Hive