私は比較的新しいHadoopで、何らかの問題を解決するための方法とツールが何百もあることを理解しています。私は、一般的に受け入れられるベスト・プラクティス・アプローチを通して、私が比較的一般的なシナリオであると思っている問題を解決するために私を歩いてくれる人を探しています。Hadoop - 変数列を持つCSVファイルのコレクションにSQLインターフェイスを公開する
私は制御しないプロセスからいくつかのCSVファイルを生成しています。 CSVファイルは関連していますが、各CSVファイルには異なる列セットが含まれている場合があります。実際には、数千のファイルがあり、何千もの列が存在することになるので、私は下の2つのファイルの作成例を提供しています。
FILE1
#COL1, COL3, COL4
a1, c1, d1
a2,,d2
a3,c3,d3
FILE2
#COL1, COL2, COL4
a1, b1, d6
a5, b5,
a3,,
私は最終的には、理論的に持っているであろう、このデータ上のSQL/JDBCを介してアクセスできる表形式のビューのいくつかの種類を公開したいと思います構造は次のとおりです。
#COL1, COL2, COL3, COL4
a1,,c1,d1
a1,b1,,d6
a3,,c3,d3
a3,c3,,
a5,b5,,
キーポイントは以下のとおりです。
- は、私は新しいものを新しいファイルで発見されているような単純なプロセスが利用可能に列を更新できるようにしたいと思います。
- すべてのファイルのすべての列のリストが数千になっているときに、ユーザーが一度に10-20列のみを分析または操作したい場合は、パフォーマンス上のペナルティを受けることは望ましくありません。
こんにちは!私があなたを正しく理解していれば、キー値のペアを使用してデータを保存することを提案していますか?この形式で最終的な分析を行うことを推奨していないと思いますか?ある時点で、私はこのデータのために円柱形に戻らなければならないでしょう。残念ながら、データの摂取は継続的であり、摂取が停止した時点を正確に把握することはできません。私は、新しいデータが取り込まれるときに更新され続けるために、データの最後のカラムビューを必要とします。 –
ボリュームに応じて、データを変換する1時間ごと、1日2回、1日などのバッチジョブを実行できます。即時にする必要がある場合は、セッションテーブルのトリガーに書き込むこともできます。最初のインポートをトランザクションとして行い、トランザクションがコミットされたら変換/サニタイズを初期化します。最後のステップは、その終了したセッションバッチに関連するすべてのデータを削除することです。 – gmiley