2017-05-16 26 views
-1

我是HDFS/HIVE的新手。需要一些建議。我有一個關於RDBMS數據建模的背景。蜂巢表或視圖?哪個應該是正確的方法?

我有每日報告的要求。該報告要求從兩個臨時表(HIVE)獲取數據。

如果我在HIVE中創建一個表,寫一個視圖從分段獲取記錄以填充HIVE表。創建一個指向HIVE表的HIVE視圖,並選擇一天數據的where子句?

  1. HIVE臨時表---> 2.查看填充HIVE表 - > 3. HIVE表----> 4.查看從在3
創建HIVE表中提取數據

如果我在兩個臨時HIVE表(使用where子句連接兩個表以獲取一天數據)上創建視圖,該怎麼辦?

  1. HIVE臨時表---> 2.查看從HIVE登臺表

我想知道HIVE最佳實踐和解決方案的策略獲取數據。

回答

0

是否查看但您需要ETL過程才能加載表。 ETL過程可以加入,聚合等,因此您將能夠以星形/雪花或報表的形式使用最終加入和彙總的數據。你爲什麼需要Views在這裏?爲了重用一些常見的查詢,減少一些長複雜查詢的複雜性,創建數據接口,創建邏輯實體等。您不一定需要View來簡單地連接表並將數據加載到另一個表。全部取決於您的要求。如果報告應該快速查詢數據,那麼數據應該由ETL過程預先計算。查看只是查詢的包裝,它會在您每次查詢數據時進行計算。

+0

該視圖將具有一些轉換邏輯。這不是一個簡單的映射。有一些計算/派生之間。這就是我提到填充HIVE表的原因。您可以將其視爲ETL過程。 – v83rahul

+0

查看是ETL的最後一個階段?實現最終查看並創建表可能會更好,因爲查詢錶速度更快,並且可以在加載不重要的情況下調度將加載物化表的ETL過程,並且報告將更快地查詢數據。 – leftjoin

+0

如果你的數據訪問模式是寫一個 - 閱讀很多次,你肯定應該實現你的加入Hive表。就時間和集羣資源而言,加入大數據表可能會非常昂貴。 – akirillov