MySQLのカラム選択
列の選択を使用して、必要なテーブル列のみを取り込みます。このページでは、MySQLに固有の要件について説明します。
MySQLの列選択は、統合チェンジデータキャプチャ(CDC)パイプラインでのみ利用可能です。MySQL用の統合CDCパイプラインの作成をご覧ください。
取り込む列を選択します
defaultでは、パイプラインは選択したテーブルのすべての列を取り込みます。一部の列のみを取り込むには、テーブル設定で include_columns または exclude_columns を設定します。各プロパティの説明とパイプライン定義の例については、「取り込む列の選択」を参照してください。
必須キー列
CDCは、ソーステーブルのキーを使用して行への各変更を一致させることにより、宛先テーブルを同期させます。コネクタはこの順序でキーを選択するため、列の選択でそのキーのすべての列を保持する必要があります:
- 主キー : テーブルに主キーがある場合、すべての主キー列を保持します。ユニークキー列はオプションです。
- 一意キー : テーブルに主キーがない場合、すべての列が
NOT NULLである最初のユニークキーのすべての列を保持します。ユニークキーはインデックス名でアルファベット順に並べられます。例えば、uk_emailとuk_phoneの両方にNOT NULL列しかない場合、コネクタはuk_emailを使用します。テーブルのインデックス名を確認するには、SHOW INDEX FROM <table>をランします。 - 使用可能なキーがありません : テーブルにどちらも存在しない場合、任意の列を含めるか除外できます。NULL値許容列を持つユニークキーはキーとしてカウントされません。
列を保持するには、include_columns に列をリストするか、exclude_columns から外します。
列の選択により必須のキー列が削除されると、テーブルの取り込みに失敗し、エラー INGESTION_GATEWAY_KEY_COLUMN_NOT_SELECTEDが返されます。復旧するには、 include_columnsまたは exclude_columnsを更新してキーが完全に選択されるようにしてから、テーブルの完全リフレッシュを実行します。ターゲットテーブルの完全更新をご覧ください。
取り込み済みのテーブルの列の選択を変更する
テーブルの include_columns または exclude_columns はいつでも編集でき、変更はパイプラインに保存されます。ただし、すでにインジェストされているテーブルの列の選択を変更するには、そのテーブルの完全更新が必要です。選択を変更した後に同じ更新内で影響を受けるテーブルの完全更新を実行しないと、パイプラインの更新は「CANNOT_CHANGE_COLUMN_SELECTION_WITHOUT_FULL_REFRESH」というエラーで失敗します。