2016-06-29 106 views
1

想象一下,您正在從CSV文件讀取數以百萬計的數據行。每行顯示傳感器名稱,當前傳感器值和觀察到該值時的時間戳。如何將傳感器數據存儲到Apache Hadoop HDFS,Hive,HBase或其他

key, value, timestamp 
temp_x, 8°C, 10:52am 
temp_x, 25°C, 11:02am 
temp_x, 30°C, 11:12am 

這涉及到這樣一個信號:

real world signal observations

所以我不知道什麼是對存儲到Apache的Hadoop的HDFS的最佳和最有效的方式。第一個想法是使用BigTable又名HBase。這裏的信號名稱是行鍵,而值是一個隨時間保存值的列組。可以添加更多的列組(例如統計數據)到該行鍵。

stored in HBase

另一個想法是使用片狀(或SQL等)的結構。但是,然後你複製每一行中的密鑰。你必須根據需求計算統計數據並將它們分開存儲(這裏放在第二個表格中)。

SQL like storage

我不知道是否有任何更好的主意。一旦存儲,我想在Python/PySpark中讀取這些數據,並進行數據分析和機器學習。因此,應該使用模式(Spark RDD)輕鬆訪問數據。

回答

1

我會考慮使用。從CSV

  • 負荷信息與databricks csv
  • 清潔數據
  • 寫入qarquet文件(爲了節省空間和時間)從拼花文件

  • 加載數據

  • 分析它的文件
  • 也許保存爲中間結果
+0

謝謝。這也是我們目前的做法。 – Matthias

+0

您是否嘗試保存Avro格式以查看性能差異? –

+0

是的,我們在其他項目中嘗試過,感覺Parquet在性能方面表現更好。 – Matthias

相關問題