2016-06-29 11 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)表形式を使用しています。しかし、各行のキーを複製します。また、需要の統計を計算して別々に保管する必要があります(ここでは2番目の表に示します)。

SQL like storage

任意のより良いアイデアがあるのだろうか。一旦保存されると、Python/PySparkでそのデータを読み込み、データ解析と機械学習を行いたいと思います。したがって、データはスキーマ(Spark RDD)を使用して簡単にアクセスできる必要があります。

答えて

1

私は使用すると思います。

CSVから
  • のデータのロードは、(空間と時間を節約するために)ファイルをqarquetするデータ
  • 書き込みを清掃databricks csv

  • でファイル

    • のデータのロード寄木細工のファイルから

    • それを分析
    • おそらく中間結果として保存する
  • +0

    ありがとうございます。それも我々の現在のアプローチです。 – Matthias

    +0

    Avro形式で保存してパフォーマンスの違いを確認しようとしましたか? –

    +0

    はい、私たちは別のプロジェクトでこれを試してみました。パーケットはパフォーマンス面で優れています。 – Matthias

    関連する問題