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
これは、このようなシグナルに関する
だから私は、Apache HadoopのHDFSにそれを格納するための最良かつ最も効率的な方法だのだろうか。最初のアイデアは、BigTableという別名HBaseを使用しています。ここで信号名は行キーであり、値は時間の経過とともに値を保存する列グループです。その行キーに列グループ(統計など)を追加できます。
もう一つのアイデアは、構造体(のようなまたはSQL)表形式を使用しています。しかし、各行のキーを複製します。また、需要の統計を計算して別々に保管する必要があります(ここでは2番目の表に示します)。
任意のより良いアイデアがあるのだろうか。一旦保存されると、Python/PySparkでそのデータを読み込み、データ解析と機械学習を行いたいと思います。したがって、データはスキーマ(Spark RDD)を使用して簡単にアクセスできる必要があります。
ありがとうございます。それも我々の現在のアプローチです。 – Matthias
Avro形式で保存してパフォーマンスの違いを確認しようとしましたか? –
はい、私たちは別のプロジェクトでこれを試してみました。パーケットはパフォーマンス面で優れています。 – Matthias