0
考慮到以下事實,您如何有效地設計Hive/Impala表?Hadoop分區。如何有效地設計Hive/Impala表?
- 該表格每 一天接收約1億行的工具數據。它接收數據的日期存儲在表中的 列中以及其工具ID。
- 每個工具收到約 每天運行500次,由列運行ID標識。每個運行ID 包含大約1mb大小的數據。
- 該塊的默認大小爲64 MB。
- 可以按日期,工具ID和運行ID按此順序搜索表格。
考慮到以下事實,您如何有效地設計Hive/Impala表?Hadoop分區。如何有效地設計Hive/Impala表?
如果您正在對此數據進行分析,那麼使用Impala的堅實選擇是使用Parquet格式。對我們的用戶來說運行良好的是根據記錄中的日期值按年,月,日來劃分日期。
因此,例如CREATE TABLE FOO(tool_id INT,eff_dt時間戳)分區(年INT,月INT,天INT)存儲拼花
當數據加載到這個表中,我們使用這樣的事情來創建動態分區:
INSERT INTO foo partition (year, month, day)
SELECT tool_id, eff_dt, year(eff_dt), month(eff_dt), day(eff_dt)
FROM source_table;
然後你訓練你的用戶,如果他們想要最好的性能,以年,月,日增加他們WHERE
子句,以便它擊中了更好的性能的分區。然後讓他們在SELECT
聲明中添加eff_dt
,以便在最終結果中看到他們喜歡的格式的日期值。
在CDH中,Parquet默認將數據存儲在256MB塊(可配置)中。以下是如何配置它:http://www.cloudera.com/documentation/enterprise/latest/topics/impala_parquet_file_size.html
到目前爲止,你有什麼考慮? – dg99
[歡迎來到SO!](http://stackoverflow.com/help/how-to-ask)請更新您的發現,否則問題會變得太廣泛! –