2017-04-17 53 views
0

目前,我正試圖採用大數據來取代我目前的數據分析平臺。我目前的平臺非常簡單,我的系統從各種上游系統獲取大量結構化的csv提要文件,然後,我們將它們加載爲Java對象(即內存)以進行聚合。使用Hive作爲數據倉庫時對我的情況有什麼好處?

我正在尋找使用Spark來替換我的java對象層進行聚合過程。

我明白Spark支持從hdfs/filesystem加載文件。因此,作爲數據倉庫的Hive似乎不是必須的。不過,我仍然可以先將我的csv文件加載到Hive,然後使用Spark從Hive加載數據。

這裏我的問題是,在我的情況下,如果我引入一個Hive層而不是直接將csv文件加載到Spark DF,優點/好處是什麼。

謝謝。

+0

您不需要加載任何東西。您可以通過hdfs/filesystem目錄創建外部表,並使用包含spark的任何內容查詢它們。 –

+1

如果您正在將數據處理爲滿載和增量方式,則需要使用Hive層,因爲您必須以表格格式存儲昨天的數據,並且使用當前數據處理增量數據。如果您只是在進行提取和轉換並將其存儲回正常的文件系統,那麼您只能使用spark。 –

回答

2
  1. 您可以隨時使用表格查看和感受數據。
  2. 可以使用HiveQL執行特殊查詢/聚合。
  3. 通過Spark訪問數據時,不需要分別提及數據的模式。
+0

對於2,我可以使用Spark SQL而不是HiveQL –

+1

是的,您可以隨時這樣做,但您需要將數據從csv加載到dataframe/temp表,然後提交作業以獲取結果。這就像一個批處理過程。 使用HiveQL,它就像您執行SQL查詢一樣感覺像交互式查詢。 –

+0

對不起,我是新來的火花。我是否可以知道是否可以將所有csv數據加載到數據框中作爲「全局表」並讓每個用戶在spark會話中查詢它。 –

相關問題