CData Sync の Snowflake 連携強化:大容量データ処理の最適化



Snowflake は、スケーラビリティ、パフォーマンス、そして企業全体にわたる多様なデータワークロードの処理能力で知られる、代表的なクラウドデータプラットフォームです。多くの組織が分析やデータウェアハウスのニーズに Snowflake を活用するようになり、効率的な大容量データ統合への需要は高まり続けています。

CData Sync は、数百種類ものデータソースから Snowflake へのシームレスなノーコードデータレプリケーションを提供します。CData Sync V24.3 のリリースにより、パフォーマンスは大幅に向上しました。最新バージョンでは、大規模データセットを Snowflake にレプリケーションする際の処理速度が著しく高速化されています。最適化された方式を使用するすべてのジョブで、完了時間がほぼ半分に短縮されました。この記事では、処理エンジンに加えられた機能強化について詳しく解説し、100 万件、200 万件、300 万件、1000 万件のレコードにおけるパフォーマンス比較を紹介します。

従来のレプリケーション方式

大容量データを Snowflake にレプリケーションする場合、従来の方式ではいくつかのパフォーマンス上の課題がありました。データ転送中、特に COPY INTO ステップでの過剰な処理がレプリケーションを遅くします。さらに、システムがすべてのデータをメモリに保持するため、環境によってはメモリ不足(OOM)エラーが頻繁に発生していました。これらの問題により、大規模データセットのレプリケーションプロセスは非効率でリスクの高いものとなっていました。

従来の処理ワークフロー

CData Sync でジョブを実行した際、従来のレプリケーション方式がバックグラウンドでどのように動作するかを見てみましょう:

  1. CData Sync が Snowflake に一時テーブルを作成します。
  2. 次に、Snowflake に内部ステージを作成します。
  3. 続いて、すべてのレコードを複数のファイルに分割し、内部ステージにアップロードします。
  4. COPY INTO コマンドを使用して、各バッチのデータをプライマリテーブルにロードします。ここで、手順 3 と 4 が 1 セットとなり、すべてのレコードが転送されるまでこれを繰り返します。
  5. 最後に、一時テーブルをターゲットテーブルにマージします。

この方式では、複数の PUT リクエスト、繰り返されるファイル操作が発生し、大量のメモリを消費するため、大容量レプリケーションには適していませんでした。

CData Sync V24.3(以降)の最適化方式

バージョン 24.3 で、CData Sync はより高速でメモリ効率の良いレプリケーション方式を導入しました。新しいプロセスでは、ファイル出力、ファイルストリームの読み取り、PUT リクエスト、COPY INTO 操作の回数が削減され、OOM エラーのリスクが大幅に低減し、パフォーマンスが向上しています。

新しい処理ワークフロー

新しい方式の動作を見てみましょう:

  1. CData Sync が Snowflake に一時テーブルを作成します。
  2. Snowflake に内部ステージを作成します。
  3. すべてのレコードを単一のローカルファイルに出力します。
  4. ストリームを使用してファイルを読み取り、内容を内部ステージにアップロードします。
  5. COPY INTO コマンドを使用して、データをプライマリテーブルにロードします。ここで、手順 3 から 5 が 1 セットとなり、すべてのレコードが転送されるまでこれを繰り返します。
  6. 最後に、一時テーブルをターゲットテーブルにマージします。

不要なファイル分割を排除し、データのアップロードとロード方法を最適化することで、CData Sync V24.3 は大容量レプリケーションをはるかに高速かつ安定して処理できるようになりました。

CData Sync の最新バージョンへの切り替え

まず、CData Sync をバージョン 24.3(最新バージョン)にアップデートし、Snowflake コネクタV24 コネクタに切り替えます。(注:Sync バージョン 24.2 以前は V23 コネクタを使用しています。)

アップデートが完了したら、ジョブ設定を構成します。Snowflake を同期先とするレプリケーションジョブを開き、タスクの詳細設定タブでレプリケートオプションを編集し、追加オプションセクションに以下のプロパティを設定します:

RowTransferType=CopyInto

レプリケートオプションを保存すれば、セットアップは完了です。

パフォーマンス比較:従来方式と最適化方式

追加オプション RowTransferType=CopyInto のパフォーマンスへの影響を測定するため、10 カラムのテーブルに 200 万行と 300 万行のデータセット、および 20 カラムのテーブルに 1000 万行と 1 億行のデータセットを用意しました。そして、オプションを有効にした場合と無効にした場合のレプリケーションパフォーマンスを比較しました。

パフォーマンスの違いを評価するため、CData Sync に表示されるジョブ完了時間を記録しました。

方式100 万件200 万件300 万件1000 万件
従来方式(旧)2 分 29 秒4 分 33 秒5 分 5 秒23 分 20 秒
最適化方式(新)1 分 28 秒1 分 42 秒2 分 28 秒12 分 20 秒

テスト環境

  • CData Sync ホスティングスペック:32 GB RAM、Intel Core i5-1135G7、4 コア、8 スレッド
  • Snowflake 構成:ウェアハウスサイズ - XS

上記の表からわかるように、このオプションを有効にすることでレプリケーションジョブが大幅に高速化されました!

まとめ

新しく導入された RowTransferType オプションを有効にすることで、CData Sync は Snowflake へのデータレプリケーションパフォーマンスを大幅に向上させます。今後、BigQueryRedshift などの他のクラウドデータウェアハウスにも同様のパフォーマンス強化を拡張する予定ですので、今後のアップデートにご期待ください。

CData Sync は 30 日間の無料トライアルを提供しており、強力なデータ統合機能を実際にお試しいただけます。今すぐ企業データをクラウドデータウェアハウスに統合してみてください。ご不明な点がございましたら、サポートチームがいつでもお手伝いいたします!