毎日ビッグデータ (サイズ ~3TB) を処理するプロジェクトに取り組んでいます。データ パイプラインの最初の段階では、 というツールを使用して、MS-SQL サーバーからホスト マシン (Linux サーバー) にデータをコピーしますfreebcp
。freebcp の詳細はこちら
Linux サーバーからこのツールを使用して、一連のストアド プロシージャを SQL Server で実行し、データをエクスポートして一括転送します。最近私は、データが巨大な場合 (~200GB)、データ転送がしばらくすると停止することを観察しています。いくつかのコマンド ( sp_who2
、およびdbcc inputbuffer(spid)
) を実行して、SQL サーバーでのストアド プロシージャの実行を監視しました。この手順で使用される CPU 時間とディスク IO を観察します。これが数分間変化しない場合は、ジョブが停止していると見なし、これらのストアド プロシージャを手動で強制終了して、データ処理タスクを続行します。
このデータ コピーの停止の考えられる理由は何ですか?
SQL サーバーから Linux ホストにデータを一括でコピーするより良い方法はありますか? freebcp の代わりになるかもしれません。この後、このデータを Hadoop ファイル システムにロードし、map reduce タスクを実行します。