AWS DMS を使用して、ターゲット S3 エンドポイント用に生成される CDC ファイルの数を制御する方法を教えてください。

最終更新日: 2022 年 12 月 1 日

Amazon Simple Storage Service (Amazon S3) をターゲットエンドポイントとして使用するときに生成される変更データキャプチャ (CDC) ファイルの数を制御したいと考えています。AWS Database Migration Service (AWS DMS) を使用してこれを行う方法を教えてください。

簡単な説明

Amazon S3 をターゲットエンドポイントにする際、さまざまなパラメータを使用してターゲットとなるエンドポイントの関連ファイルのサイズを制御できます。これには、Amazon S3 をフルロードや CDC のターゲットエンドポイントとして使用する場合、または CDC のみの AWS DMS タスクを使用することが含まれます。

この記事では、次の追加接続の属性 (ECA) について説明します。さらに、それらを使って Amazon S3 エンドポイントで生成される CDC ファイルの量を制御する方法も解説します。

  • cdcMaxBatchInterval ‐ 秒単位で定義された Amazon S3 へのファイル出力時の、最長のインターバルの条件。デフォルト値は60秒です。
  • cdcMinFileSize- Amazon S3にファイルを出力する際の最小ファイルサイズ条件(KB単位で定義)。デフォルト値は 32000 KB です。
  • maxFileSize-フルロード中に S3 ターゲットに移行する際に作成される.csv ファイルの最大サイズ(KB)。デフォルト値は 1GBです。
  • WriteBufferSize-AWS DMSレプリケーションインスタンスでローカルディスクに.csvファイルを生成する際に使用する、インメモリファイル書き込みバッファのサイズ(KB)。デフォルト値は 1000 KBです。

解決方法

cdcMaxBatchInterval パラメータは、Amazon S3へのファイル書き込みの時間間隔を制御します。デフォルト値の 60 秒を使用すると、AWS DMS は毎分ファイルを Amazon S3 に書き込みます。もう 1 つの重要なパラメータは、CDC ファイルの最大サイズを決定する cdcMinFileSize パラメータです。デフォルト値の 32000 KB を使用する場合、AWS DMS は 32000 KB の変更データがあるたびに Amazon S3 に書き込みます。

cdcMaxBatchInterval パラメータと cdcMinFileSize パラメータは連動します。AWS DMS は、最初に満たされたパラメータ値を使用します。そのため、デフォルトの設定では、AWS DMSは、1 分間の保留中の変更があるか、または 32000 KBのデータがあるかのいずれかの場合に、Amazon S3にファイルを書き込むようになっています。どちらが先に行われるかによって、これらのアクションのいずれかが完了します。
: AWS DMS はトランザクションを同じファイルに保持するため、トランザクションが大きい場合、ファイルサイズが cdcMinFileSize と cdcMaxBatchInterval を超える可能性があります。

maxFileSize は、CSV および Parquet フォーマットの両方の S3 ターゲット出力ファイルから最大のファイルサイズを決定します。しかし、.parquet ファイルに書き込むとき、AWS DMS はデータをバッチで書き込みます。

1.    AWS DMS は 1024 KB のメモリセグメントを割り当てます。これは writeBufferSize のデフォルトサイズです。

2.    maxFileSize の値に関係なく、AWS DMS はデフォルトサイズ 1 MB の書き込みバッファを少なくとも 1 つ割り当てます。

3.    AWS DMS は、データの最初のバッチの書き込みを終了すると、現在のデータサイズを maxFileSize と比較します。現在のサイズが maxFileSize 以上の場合、データはターゲット S3 バケットの.parquet ファイルに書き込まれます。

4.    maxFileSize を 1 MB に設定すると、デフォルト値が 1 MB の writeBufferSize は maxFileSize の値と同じになります。これは、書き込みバッファが 1 つ割り当てられると、すでに条件が満たされているためです。生成された .parquet ファイルの全体のサイズを小さくしたい場合、writeBufferSize の値を小さくすることができます。1 MB 未満に設定すると、書き込まれるデータのサイズが 1 MB 未満のときに条件付きチェックが行われます。

: WriteBufferSize パラメータの設定は、.csv ファイルには適用されず、.parquet にのみ適用されます。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?