すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:RDS for MySQL インスタンスから Function Compute 関数へのデータ同期

最終更新日:Nov 09, 2025

Data Transmission Service (DTS) を使用すると、RDS for MySQL インスタンスから Function Compute (FC) の指定された関数に完全データまたは増分データを同期できます。その後、関数コードを記述して同期されたデータを処理できます。

前提条件

  • ソース RDS for MySQL インスタンスが作成されていること。

  • 宛先サービスと関数が作成され、関数の [ハンドラータイプ][イベントハンドラー] に設定されていること。詳細については、「関数をすばやく作成する」をご参照ください。

    説明

    Function Compute (FC) V2.0 のみがサポートされています。

使用上の注意

タイプ

説明

ソースデータベースの制限

  • 同期するテーブルには、プライマリキーまたは一意制約が必要であり、すべてのフィールドが一意である必要があります。

  • ソースデータベースの単一データエントリのサイズは 16 MB を超えることはできません。超える場合、DTS は宛先関数にデータを書き込めず、エラーが報告されます。一部のフィールドのみを同期するには、抽出・変換・書き出し (ETL) 機能を使用してラージオブジェクトをフィルターで除外できます。

  • 同期するオブジェクトとしてテーブルを選択した場合、1 つのデータ同期タスクで最大 1,000 個のテーブルを同期できます。テーブルの数がこの制限を超えると、タスクを送信した後にリクエストエラーが報告されます。この場合、テーブルをより小さなグループに分割して複数のタスクを構成するか、データベース全体を同期するタスクを構成します。

  • バイナリログ:

    • ApsaraDB RDS for MySQL インスタンスでは、バイナリログがデフォルトで有効になっています。`binlog_row_image` パラメーターが `full` に設定されていることを確認する必要があります。そうでない場合、事前チェックが失敗し、データ同期タスクを開始できません。パラメーターの設定方法の詳細については、「インスタンスパラメーターの設定」をご参照ください。

      重要
      • ソースインスタンスが自己管理 MySQL データベースである場合、バイナリログを有効にし、`binlog_format` パラメーターを `row` に、`binlog_row_image` パラメーターを `full` に設定する必要があります。

      • ソースの自己管理 MySQL データベースが、2 つのデータベースが互いにプライマリとセカンダリであるプライマリ/プライマリ アーキテクチャである場合、`log_slave_updates` パラメーターを有効にする必要があります。これにより、DTS がすべてのバイナリログを取得できるようになります。詳細については、「自己管理 MySQL データベースのデータベースアカウントを作成し、バイナリログを構成する」をご参照ください。

    • ApsaraDB RDS for MySQL インスタンスのローカルバイナリログは、少なくとも 3 日間保持する必要があります。7 日間保持することをお勧めします。自己管理 MySQL データベースのローカルバイナリログは、少なくとも 7 日間保持する必要があります。そうでない場合、DTS がバイナリログを取得できないため、DTS タスクが失敗する可能性があります。極端な場合、データに不整合が生じたり、データが失われたりする可能性があります。必要な期間よりも短いバイナリログ保持期間によって引き起こされる問題は、DTS サービスレベルアグリーメント (SLA) の対象外です。

      説明

      RDS MySQL インスタンスのローカルバイナリログの [保持期間] の設定方法については、「ローカルログの自動削除」をご参照ください。

  • 初期完全同期中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。実行すると、データ同期タスクは失敗します。

  • 同期中、バイナリログに記録されない操作によって生成されたデータ変更は、ターゲットデータベースに同期されません。このような操作の例としては、物理バックアップを使用したデータ回復やカスケード操作などがあります。

    説明

    これが発生した場合、ビジネスで許可されていれば、同期オブジェクトからデータベースまたはテーブルを削除してから再度追加できます。詳細については、「同期オブジェクトの変更」をご参照ください。

  • ソースデータベースがバージョン 8.0.23 以降の MySQL データベースで、同期するデータに非表示の列が含まれている場合、これらの列のデータを取得できないため、データが失われる可能性があります。

    説明
    • ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; コマンドを実行して、非表示の列を表示できます。詳細については、「非表示の列」をご参照ください。

    • プライマリキーのないテーブルは、非表示のプライマリキーを自動的に生成します。この非表示のプライマリキーも表示する必要があります。詳細については、「生成された非表示のプライマリキー」をご参照ください。

その他の制限

  • マッピング機能はサポートされていません。

  • リージョン間のデータ同期はサポートされていません。

  • データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。オフピーク時にデータを同期することをお勧めします。初期完全同期中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。

  • 初期完全同期中、INSERT 操作は同時に実行されます。したがって、初期完全同期を含むタスクの宛先関数のインスタンス同時実行数は低すぎてはいけません。インスタンス同時実行数の調整方法の詳細については、「インスタンス同時実行数の構成」をご参照ください。

  • 同期するオブジェクトとしてデータベース全体ではなく 1 つ以上のテーブルを選択した場合、データ同期中に pt-online-schema-change などのツールを使用してテーブルでオンライン DDL 操作を実行しないでください。実行すると、同期が失敗する可能性があります。Data Management (DMS) を使用してオンライン DDL 操作を実行できます。詳細については、「ロックフリーのスキーマ変更を実行する」をご参照ください。

  • 複数の DTS タスクを同じ宛先関数に同期することは避けてください。データを分離するために、タスクごとに異なる関数を使用することをお勧めします。そうしないと、宛先のデータが乱れる可能性があります。

  • RDS for MySQL インスタンスで常時機密 (EncDB) 機能が有効になっている場合、初期完全同期はサポートされません。

    説明

    RDS for MySQL インスタンスで TDE (透過的データ暗号化) 機能が有効になっている場合、完全データと増分データを同期できます。

  • インスタンスに障害が発生した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。

    説明

    パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、インスタンスパラメーターの変更で説明されているものが含まれますが、これらに限定されません。

特殊なケース

  • ソースデータベースが自己管理 MySQL データベースの場合:

    • 同期中にソースデータベースでプライマリ/セカンダリフェールオーバーが発生した場合、同期タスクは失敗します。

    • DTS の遅延は、ターゲットデータベースに同期された最後のデータレコードのタイムスタンプと現在のタイムスタンプの差に基づいて計算されます。ソースデータベースで DML 操作が長期間実行されない場合、遅延情報が不正確になることがあります。表示される遅延が長すぎる場合は、ソースデータベースで DML 操作を実行して遅延情報を更新できます。

      説明

      データベース全体を同期することを選択した場合、ハートビートテーブルを作成することもできます。ハートビートテーブルは毎秒更新または書き込みされます。

    • DTS は、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行して、バイナリログのオフセットを進めます。

    • ソースデータベースが Amazon Aurora MySQL インスタンスまたは別のクラスター化された MySQL インスタンスである場合、タスクに構成されたドメイン名または IP アドレスとその解決結果が常に読み取り/書き込み (RW) ノードを指していることを確認してください。そうでない場合、同期タスクが期待どおりに実行されない可能性があります。

  • ソースデータベースが ApsaraDB RDS for MySQL インスタンスの場合:

    • ApsaraDB RDS for MySQL 5.6 の読み取り専用インスタンスなど、トランザクションログを記録しない ApsaraDB RDS for MySQL インスタンスは、ソースデータベースとして使用できません。

    • DTS は、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行して、バイナリログのオフセットを進めます。

課金

同期タイプ

リンク構成料金

初期完全同期

無料です。

増分同期

課金されます。詳細については、「課金の概要」をご参照ください。

サポートされている SQL 操作

操作タイプ

SQL 操作

DML

INSERT, UPDATE, DELETE

DDL

  • CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE

  • CREATE VIEW, ALTER VIEW, DROP VIEW

  • CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE

  • CREATE FUNCTION, DROP FUNCTION, CREATE TRIGGER, DROP TRIGGER

  • CREATE INDEX, DROP INDEX

データベースアカウントの権限

データベース

必要な権限

作成と権限付与の方法

ソース RDS for MySQL

同期するオブジェクトに対する読み取り権限。

アカウントの作成 および アカウント権限の変更

説明

ソースデータベースアカウントが RDS for MySQL コンソールで作成および権限付与されていない場合は、アカウントに REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、および SELECT 権限があることを確認してください。

手順

  1. 次のいずれかの方法でデータ同期ページに移動し、データ同期インスタンスが存在するリージョンを選択します。

    DTS コンソール

    1. DTS コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、データ同期 をクリックします。

    3. ページの左上隅で、データ同期タスクが存在するリージョンを選択します。

    DMS コンソール

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。

    1. DMS コンソールにログインします。

    2. 上部のナビゲーションバーで、[データ + AI] にポインターを合わせ、[DTS (DTS)] > [データ同期] を選択します。

    3. データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。

  2. タスクの作成 をクリックして、タスク構成ページに移動します。

  3. ソースデータベースとターゲットデータベースを構成します。次の表にパラメーターを示します。

    カテゴリ

    構成

    説明

    なし

    タスク名

    DTS タスクの名前。DTS は自動的にタスク名を生成します。タスクを簡単に識別できるわかりやすい名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。

    移行元データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。DTS は、インスタンスの次のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスの選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • DTS へのインスタンスの登録に失敗した場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。

    データベースタイプ

    MySQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    ソース RDS for MySQL インスタンスが存在するリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    この例では、同じ Alibaba Cloud アカウント内での同期を示しています。× を選択します。

    RDS インスタンス ID

    ソース RDS for MySQL インスタンスの ID を選択します。

    データベースアカウント

    ソース RDS for MySQL インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントの権限」をご参照ください。

    データベースのパスワード

    データベースへのアクセスに使用されるパスワード。

    暗号化

    データベースへの接続を暗号化するかどうかを指定します。ビジネス要件に応じて、[非暗号化] または [SSL 暗号化] を選択できます。このパラメーターを [SSL 暗号化] に設定する場合は、DTS タスクを構成する前に、ApsaraDB RDS for MySQL インスタンスの SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を有効にする」をご参照ください。

    移行先データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。DTS は、インスタンスの次のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスの選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • DTS へのインスタンスの登録に失敗した場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。

    データベースタイプ

    Function Compute (FC) を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    デフォルトでは、これはソースデータベースの インスタンスのリージョン と同じであり、変更できません。

    サービス

    宛先 FC 関数が属するサービスの名前を選択します。

    関数

    データを受信する宛先 FC 関数を選択します。

    サービスのバージョンとエイリアス

    必要に応じてオプションを選択します。

    • デフォルトバージョン: サービスバージョン[LATEST] に固定されます。

    • バージョンの指定: サービスバージョン も選択する必要があります。

    • エイリアスの指定: サービスのエイリアス も選択する必要があります。

    説明

    Function Compute の用語の詳細については、「基本概念」をご参照ください。

  4. ページの下部にある 接続をテストして続行 をクリックします。

    説明
    • DTS サーバーの CIDR ブロックが、ソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加され、DTS サーバーからのアクセスが許可されることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。

    • ソースデータベースまたはターゲットデータベースが自己管理データベースで、その アクセス方法Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックします。

  5. 同期するオブジェクトを構成します。

    1. オブジェクト設定 ステップで、同期するオブジェクトを構成します。

      構成

      説明

      同期タイプ

      増分データ同期 がデフォルトで選択されています。既存データも同期する必要がある場合は、完全データ同期 を選択します。

      データ形式

      FC 関数に同期されるデータのストレージ形式。現在、[Canal Json] のみがサポートされています。

      説明

      Canal Json のパラメーターと例の詳細については、「Canal Json 形式」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択し、向右 アイコンをクリックしてオブジェクトを 選択中のオブジェクト セクションに追加します。

      説明

      同期オブジェクトとしてデータベースまたはテーブルを選択できます。

      選択中のオブジェクト

      選択中のオブジェクト ボックスで、同期するデータを確認します。

      説明

      選択したオブジェクトを削除するには、選択中のオブジェクト ボックスでオブジェクトを選択し、zuoyi をクリックします。

    2. 次へ:詳細設定 をクリックして、詳細設定を構成します。

      構成

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、専用クラスターを指定しない場合、DTS はタスクを共有クラスターにスケジュールします。データ同期インスタンスの安定性を向上させたい場合は、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。

      失敗した接続の再試行時間

      失敗した接続のリトライ時間範囲。データ同期タスクの開始後にソースまたはターゲットデータベースへの接続に失敗した場合、DTS は時間範囲内で直ちに接続をリトライします。有効値: 10~1440。単位: 分。デフォルト値: 720。このパラメーターは 30 より大きい値に設定することをお勧めします。DTS が指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTS はデータ同期タスクを再開します。そうでない場合、データ同期タスクは失敗します。

      説明
      • 同じソースまたはターゲットデータベースを持つ複数のデータ同期タスクに異なるリトライ時間範囲を指定した場合、最も短いリトライ時間範囲が優先されます。

      • DTS が接続をリトライすると、DTS インスタンスに対して課金されます。ビジネス要件に基づいてリトライ時間範囲を指定することをお勧めします。ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることもできます。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      その他の問題のリトライ時間範囲。たとえば、データ同期タスクの開始後に DDL または DML 操作の実行に失敗した場合、DTS は時間範囲内で直ちに操作をリトライします。有効値: 1~1440。単位: 分。デフォルト値: 10。このパラメーターは 10 より大きい値に設定することをお勧めします。失敗した操作が指定された時間範囲内に正常に実行された場合、DTS はデータ同期タスクを再開します。そうでない場合、データ同期タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値より小さくする必要があります。

      完全同期レートを制限するかどうか

      初期完全同期中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを初期完全同期タスクに構成して、ターゲットデータベースサーバーの負荷を軽減できます。

      説明

      このパラメーターは、同期タイプ パラメーターで 完全データ同期 が選択されている場合にのみ構成できます。

      増分同期率を制限するかどうか

      増分同期のスロットリングを有効にするかどうかを指定します。ビジネス要件に基づいて、増分同期のスロットリングを有効にできます。スロットリングを構成するには、1 秒あたりの増分同期の行数 RPS および 1 秒あたりの増分同期データ量 (MB) BPS パラメーターを構成する必要があります。これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      順方向および逆方向タスクのハートビートテーブル SQL を削除

      DTS インスタンスの実行中に、ハートビートテーブルに対する SQL 操作をソースデータベースに書き込むかどうかを指定します。有効値:

      • [はい]: ハートビートテーブルに対する SQL 操作を書き込みません。この場合、DTS インスタンスの遅延が表示されることがあります。

      • [いいえ]: ハートビートテーブルに対する SQL 操作を書き込みます。この場合、ソースデータベースの物理バックアップやクローン作成などの機能が影響を受ける可能性があります。

      環境タグ

      必要に応じて、インスタンスを識別するための環境タグを選択できます。この例では、タグは選択されていません。

      ETL の設定

      抽出・変換・書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効値:

      監視アラート

      データ同期インスタンスのアラートを構成するかどうかを指定します。タスクが失敗した場合、または同期遅延が指定されたしきい値を超えた場合、アラート連絡先は通知を受け取ります。有効値:

      • [いいえ]: アラートを有効にしません。

      • [はい]: アラートを構成します。この場合、アラートのしきい値と アラート通知設定も構成する必要があります。詳細については、「モニタリングとアラートの設定」トピックの「DTS タスク作成時のモニタリングとアラートの設定」セクションをご参照ください。

  6. タスク設定を保存し、事前チェックを実行します。

    • 関連する API 操作を呼び出して DTS タスクを構成するときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを合わせ、OpenAPI パラメーターのプレビュー をクリックします。

    • パラメーターを表示する必要がない場合、または表示した場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • データ同期タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した後にのみ、データ同期タスクを開始できます。

    • データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。その後、事前チェックを再実行します。

    • 事前チェック中に項目のアラートがトリガーされた場合:

      • アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして問題をトラブルシューティングします。その後、再度事前チェックを実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再度事前チェック] をクリックして、再度事前チェックを実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスに潜在的なリスクが生じる可能性があります。

  7. インスタンスを購入します。

    1. [成功率][100%] になるまで待ちます。次に、[次へ: インスタンスの購入] をクリックします。

    2. [購入] ページで、データ同期タスクの課金方法とインスタンスクラスのパラメーターを構成します。次の表にパラメーターを示します。

      セクション

      パラメーター

      説明

      新しいインスタンスクラス

      課金方法

      • サブスクリプション: データ同期インスタンスを作成するときにサブスクリプション料金を支払います。サブスクリプション課金方法は、長期使用の場合、従量課金方法よりも費用対効果が高くなります。

      • 従量課金: 従量課金インスタンスは時間単位で課金されます。従量課金方法は、短期使用に適しています。従量課金データ同期インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。

      リソースグループ設定

      データ同期インスタンスが属するリソースグループ。デフォルト値: [デフォルトリソースグループ]。詳細については、「Resource Management とは」をご参照ください。

      インスタンスクラス

      DTS は、同期速度が異なるインスタンスクラスを提供します。ビジネス要件に基づいてインスタンスクラスを選択できます。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。

      サブスクリプション期間

      サブスクリプション課金方法を選択した場合は、サブスクリプション期間と作成するデータ同期インスタンスの数を指定します。サブスクリプション期間は、1~9 か月、1 年、2 年、3 年、または 5 年です。

      説明

      このパラメーターは、サブスクリプション 課金方法を選択した場合にのみ使用できます。

    3. [Data Transmission Service (従量課金) サービス規約] を読んで選択します。

    4. [購入して開始] をクリックします。表示されるダイアログボックスで、OK をクリックします。

      タスクリストでタスクの進行状況を表示できます。

次のステップ

宛先サービスが受信するデータ形式

FC が受信するデータの型は Object です。ソースからの増分データは、Records フィールドに配列として格納されます。配列の各要素は Object 型のデータレコードです。次の表に Object のフィールドを示します。

説明

FC は DML と DDL の 2 種類のデータを受信します。

  • DDL: データベース構造の変更を記録します。

  • DML: データベース内のデータ変更を記録します。

フィールド

タイプ

説明

isDdl

ブール値

操作が DDL 操作であるかどうかを示します。

  • True: はい。

  • False: いいえ。

type

String

SQL 操作のタイプ。

  • DML 操作: DELETEUPDATEINSERT

  • DDL 操作: DDL に固定。

重要

初期完全同期フェーズでは、値は INIT に固定されます。

database

String

MySQL データベースの名前。

table

String

MySQL テーブルの名前。

pkNames

String

MySQL テーブルのプライマリキーの名前。

es

Long

ソースデータベースでの操作の実行時間。これはミリ秒単位の 13 桁の UNIX タイムスタンプです。

説明

検索エンジンを使用して UNIX タイムスタンプコンバーターを見つけることができます。

ts

Long

操作がターゲットデータベースへの書き込みを開始する時間。これはミリ秒単位の 13 桁の UNIX タイムスタンプです。

説明

検索エンジンを使用して UNIX タイムスタンプコンバーターを見つけることができます。

data

Object 配列

配列には Object 型の要素が 1 つだけ含まれています。キーは列名で、値は対応する値です。

old

Object 配列

更新前のデータを格納します。形式は data フィールドと同じです。

重要

このフィールドは、typeUPDATE の場合にのみ存在します。形式は data フィールドと同じです。

sql

String

  • type が DML 操作 (DELETEUPDATE、または INSERT) の場合、値は空です。

  • typeDDL の場合、実行された SQL 文を示します。

id

Int

操作のシリアル番号。

DDL 操作のデータ形式の例

ALTER TABLE 操作

SQL 文

ALTER TABLE `demoTable` 
	ADD COLUMN `address` varchar(20) NULL AFTER `sex`
;

FC が受信したデータ

{
	'Records': [{
		'type': 'DDL',
		'serverId': '27142679',
		'es': 1690000000000,
		'sql': '/* Query from DMS-WEBSQL-0-Eid_15682857722282385K by user 14xxxxxxxx */ ALTER TABLE `demoDatabase`.`DDL` \n\tADD COLUMN `address` varchar(20) NULL AFTER `sex`',
		'database': 'demoDatabase',
		'id': 63151,
		'isDdl': True,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}

DML 操作のデータ形式の例

データの挿入

SQL 文

INSERT INTO demoTable VALUES("xiaoming", 10, "man");

FC が受信したデータ

{
	'Records': [{
		'data': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '10'
		}],
		'pkNames': ['name'],
		'type': 'INSERT',
		'serverId': '27142678',
		'es': 1690000000000,
		'sql': '',
		'database': 'demoDatabase',
		'sqlType': {
			'sex': 253,
			'name': 253,
			'age': 3
		},
		'mysqlType': {
			'sex': 'varchar',
			'name': 'varchar',
			'age': 'int'
		},
		'id': 62051,
		'isDdl': False,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}

データの更新

SQL 文

UPDATE `demoDatabase`.`demoTable` SET `age`=11 WHERE `name`='xiaoming';

FC でのデータの受信

{
	'Records': [{
		'data': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '11'
		}],
		'pkNames': ['name'],
		'old': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '10'
		}],
		'type': 'UPDATE',
		'serverId': '27142679',
		'es': 1690000000000,
		'sql': '',
		'database': 'demoDatabase',
		'sqlType': {
			'sex': 253,
			'name': 253,
			'age': 3
		},
		'mysqlType': {
			'sex': 'varchar',
			'name': 'varchar',
			'age': 'int'
		},
		'id': 62373,
		'isDdl': False,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}

データの削除

SQL 文

DELETE FROM `demoDatabase`.`demoTable` WHERE `name`='xiaoming';

FC が受信したデータ

{
	'Records': [{
		'data': [{
			'sex': 'man',
			'name': 'xiaoming',
			'age': '11'
		}],
		'pkNames': ['name'],
		'type': 'DELETE',
		'serverId': '27142679',
		'es': 1690000000000,
		'sql': '',
		'database': 'demoDatabase',
		'sqlType': {
			'sex': 253,
			'name': 253,
			'age': 3
		},
		'mysqlType': {
			'sex': 'varchar',
			'name': 'varchar',
			'age': 'int'
		},
		'id': 62635,
		'isDdl': False,
		'table': 'demoTable',
		'ts': 1690000000000
	}]
}