2017-04-17 6 views
0

現在、私は現在のデータ解析プラットフォームを置き換えるために大きなデータを採用しようとしています。私の現在のプラットフォームはかなりシンプルで、私のシステムはさまざまな上流のシステムから構造化されたcsvフィードファイルをたくさん取得し、それらを集約のためにJavaオブジェクト(つまりメモリ内)としてロードします。データウェアハウスとしてHiveを使用している私の場合の利点はありますか?

私は、Sparkを使用して、集約プロセスのためにJavaオブジェクトレイヤを置き換えたいと考えています。

私は、Sparkがhdfs/filesystemからファイルを読み込むことをサポートしていることを理解しています。だから、データウェアハウスとしてのハイブは必須ではないようです。しかし、私はまだcsvファイルをハイブにロードしてから、Sparkを使ってハイブからデータを読み込むことができます。

Spark DFにcsvファイルを直接ロードするのではなく、私がHiveレイヤーを導入した場合の私の状況はどうですか?

ありがとうございました。

+0

何もロードする必要はありません。 hdfs/filesystemディレクトリに外部テーブルを作成し、スパークを含むメタストアを使用しているものを使用してクエリを実行できます。 –

+1

フルロードとインクリメンタルな方法でデータを処理する場合は、昨日のデータをテーブル形式で保存し、今日のデータで増分を処理する必要があるため、ハイブレイヤーを使用してください。 Extraction and Transformingを通常のファイルシステムに戻して保存するだけの場合は、sparkだけを使用できます。 –

答えて

2
  1. テーブルを使用していつでもデータを見たり感じたりできます。
  2. アドホッククエリ/集計は、HiveQLを使用して実行できます。
  3. Sparkを使用してそのデータにアクセスする場合は、データのスキーマについて個別に言及する必要はありません。
+0

2の場合、HiveQLの代わりにSpark SQLを使用できます –

+1

はい、いつでも実行できますが、csvからdataframe/tempテーブルにデータをロードしてからジョブを送信して結果を取得する必要があります。これはバッチ処理のようなものです。 HiveQLを使用すると、SQLクエリを実行するのと同じように、インタラクティブクエリのように感じるでしょう。 –

+0

申し訳ありませんが、私はスパークするために新しいです。すべてのcsvデータをデータフレームに「グローバルテーブル」としてロードして、スパークセッションのすべてのユーザーがそれを照会できるようにすることができるかどうかは分かります。 –

関連する問題