ソース MySQL データベース

このセクションには、次に関する情報が含まれています。

  • Datastream が移行元 MySQL データベースから pull されているデータを処理する方法の動作
  • Datastream がサポートする MySQL データベースのバージョン
  • MySQL データベースを移行元として使用する場合の既知の制限事項
  • データが移行先にストリーミングできるように移行元 MySQL データベースを設定する方法の概要

動作

移行元 MySQL データベースはデータのバイナリを公開するために、バイナリログ機能に依存しています。

  • 特定の MySQL データベースのすべてのスキーマまたは特定のスキーマ、およびスキーマまたは特定のテーブルのすべてのテーブルを選択できます。
  • 履歴データはすべて複製されます。
  • 指定したデータベースとテーブルからの挿入、更新、削除など、すべてのデータ操作言語(DML)の変更が複製されます。
  • commit された変更のみが複製されます。

バージョン

Datastream は、次のバージョンの MySQL データベースをサポートしています。

  • MySQL 5.6
  • MySQL 5.7
  • MySQL 8.0

Datastream は、次の種類の MySQL データベースをサポートしています。

既知の制限事項

MySQL データベースを移行元として使用する場合の既知の制限事項は次のとおりです。

  • ストリームは 10,000 テーブルに制限されています。
  • 主キーが INVISIBLE として定義されているテーブルは、バックフィルできません。
  • 次の条件が満たされない限り、5 億行を超えるテーブルはバックフィルできません。
    1. テーブルには一意のインデックスがある。
    2. インデックスのどの列も null 値を許容できません。
    3. インデックスが降順でない。
    4. インデックスのすべての列がストリームに含まれます。
  • Datastream は、イベントの処理中に移行元から最新のスキーマを定期的に取得します。スキーマが変更されると、Datastream はスキーマの変更を検出し、スキーマの取得をトリガーします。ただし、一部のイベントが正しく処理されなかったり、スキーマの取得間でドロップされたりするため、データの不一致が生じる可能性があります。
  • 移行元のスキーマに対するすべての変更を自動的に検出できない場合があります。その場合、データが破損する可能性があります。次のスキーマの変更により、データが破損したり、イベントのダウンストリームが処理されなかったりする可能性があります。
    • 列をドロップする
    • テーブルの中央に列を追加する
    • 列のデータ型を変更する
    • 列を並べ替える
    • テーブルをドロップする(新しいデータを追加して同じテーブルを再作成する場合に関連)
    • テーブルを切り捨てる
  • Datastream はビューの複製をサポートしていません。
  • Datastream は、空間データ型の列をサポートしていません。これらの列の値は NULL 値に置き換えられます。
  • Datastream は、データ型 DATETIMEDATETIMESTAMP の列でゼロ値(0000-00-00 00:00:00)をサポートしていません。ゼロ値は NULL の値に置き換えられます。
  • Datastream は、JSON 列に DECIMALNEWDECIMALTIMETIME2DATETIMEDATETIME2DATETIMESTAMPTIMESTAMP2 の値を含む行の複製をサポートしていません。このような値を含むイベントは破棄されます。
  • Datastream はバイナリログ トランザクション圧縮をサポートしていません。
  • Datastream は、ソース MySQL 接続プロファイルの SSL 証明書チェーンをサポートしていません。x509 PEM でエンコードされた単一の証明書のみがサポートされます。
  • Datastream はカスケード削除をサポートしていません。このようなイベントはバイナリログに書き込まれないため、その結果、宛先に伝播されません。
  • Datastream はレプリカへのフェイルオーバーをサポートしていません。そのため、Cloud SQL for MySQL Enterprise Plus ソースからのレプリケーションに Datastream を使用することはおすすめしません。Cloud SQL Enterprise Plus エディションのインスタンスはダウンタイムがほぼゼロのメンテナンスに適用され、メンテナンス中にレプリカにフェイルオーバーします。バイナリログの継続性が損なわれ、その結果、影響を受けるストリームが恒久的に動作しなくなります。