バックグラウンド :
ログ情報を含むハイブテーブル「ログ」があります。このテーブルには、1時間ごとに新しいログデータが読み込まれます。過去2日間のログをすばやく分析したいので、過去48時間のデータをリレーショナルデータベースに抽出したいと思います。
上記の問題を解決するために、HIVESQLクエリによってロードされるステージングハイブテーブルを作成しました。新しいデータをステージングテーブルにロードした後、sqoopクエリを使用して新しいログをリレーショナルデータベースにロードします。
問題は、sqoopがBATCHのリレーショナルデータベースにデータをロードしていることです。したがって、特定の時間には、特定の時間のログの一部しかありません。
これは、誤った分析出力につながります。
質問:
1)。このSqoopデータの読み込みをトランザクション化する方法。つまり、すべてのレコードがエクスポートされるか、何もエクスポートされません。
2)。このデータパイプラインを構築するための最良の方法は、Hiveテーブル->ステージングテーブル->リレーショナルテーブルのこのプロセス全体です。
技術的な詳細:
Hadoopバージョン1.0.4Hive -
0.9.0
Sqoop-1.4.2