MySQL データソースは、Data Integration を介して MySQL データベースとデータを同期するための双方向の読み取りおよび書き込みチャネルを提供します。
サポートされている MySQL バージョン
-
オフラインの読み取りと書き込み:
MySQL 5.5.x、5.6.x、5.7.x、および 8.0.x をサポートします。Amazon RDS for MySQL、Azure Database for MySQL、および Amazon Aurora MySQL と互換性があります。
オフライン同期ではビューからの読み取りが可能です。
-
リアルタイム読み取り:
Data Integration は、リアルタイムサブスクリプションを使用して MySQL からデータを読み取ります。MySQL バージョン 5.5.x、5.6.x、5.7.x、および 8.0.x のリアルタイム同期をサポートしますが、関数インデックスなどの新しい MySQL 8.0 の機能はサポートしていません。この機能は、Amazon RDS for MySQL、Azure Database for MySQL、および Amazon Aurora MySQL とも互換性があります。
重要DRDS からデータを同期する必要がある場合は、MySQL データソースとして設定しないでください。代わりに、直接 DRDS データソースとして設定します。手順については、「DRDS データソースの設定」をご参照ください。
制限事項
リアルタイム同期
-
5.6.x より前のバージョンを実行している MySQL の読み取り専用インスタンスからはデータを同期できません。
-
関数インデックスを含むテーブルの同期はサポートされていません。
-
XA ROLLBACK はサポートされていません。
XA PREPARE 状態のトランザクションの場合、リアルタイム同期はデータを送信先に書き込みます。XA ROLLBACK コマンドが発行された場合、リアルタイム同期は準備されたデータをロールバックしません。このシナリオに対処するには、リアルタイム同期タスクから手動でテーブルを削除し、再度追加して再同期する必要があります。
-
MySQL サーバーのバイナリログフォーマットは ROW に設定する必要があります。
-
リアルタイム同期は、関連テーブルのカスケード削除を同期しません。
-
Amazon Aurora MySQL データベースの場合、プライマリ/ライターインスタンスに接続する必要があります。Aurora MySQL の読み取り専用レプリカでは Binlog 機能を有効にできず、リアルタイム同期タスクでは増分更新のために Binlog が必要です。
-
MySQL テーブルのオンライン DDL 変更では、リアルタイム同期は Data Management Service (DMS) を介した列の追加 (Add Column) のみをサポートしています。
-
MySQL からのストアドプロシージャの読み取りはサポートされていません。
オフライン同期
-
MySQL Reader プラグインを使用してシャーディングされたデータベースから複数のテーブルを同期する場合、テーブル分割を有効にするには、同時実行数をテーブル数より大きい値に設定する必要があります。そうしないと、システムはテーブルごとに 1 つのタスクを作成します。
-
MySQL からのストアドプロシージャの読み取りはサポートされていません。
サポートされているデータ型
各バージョンの MySQL データ型の完全なリストについては、MySQL 公式ドキュメントをご参照ください。次の表は、MySQL 8.0.x を例として、主要なデータ型のサポート状況を示しています。
|
型 |
オフライン読み取り (MySQL Reader) |
オフライン書き込み (MySQL Writer) |
リアルタイム読み取り |
リアルタイム書き込み |
|
TINYINT |
|
|
|
|
|
SMALLINT |
|
|
|
|
|
INTEGER |
|
|
|
|
|
BIGINT |
|
|
|
|
|
FLOAT |
|
|
|
|
|
DOUBLE |
|
|
|
|
|
DECIMAL/NUMERIC |
|
|
|
|
|
REAL |
|
|
|
|
|
VARCHAR |
|
|
|
|
|
JSON |
|
|
|
|
|
TEXT |
|
|
|
|
|
MEDIUMTEXT |
|
|
|
|
|
LONGTEXT |
|
|
|
|
|
VARBINARY |
|
|
|
|
|
BINARY |
|
|
|
|
|
TINYBLOB |
|
|
|
|
|
MEDIUMBLOB |
|
|
|
|
|
LONGBLOB |
|
|
|
|
|
ENUM |
|
|
|
|
|
SET |
|
|
|
|
|
BOOLEAN |
|
|
|
|
|
BIT |
|
|
|
|
|
DATE |
|
|
|
|
|
DATETIME |
|
|
|
|
|
TIMESTAMP |
|
|
|
|
|
TIME |
|
|
|
|
|
YEAR |
|
|
|
|
|
LINESTRING |
|
|
|
|
|
POLYGON |
|
|
|
|
|
MULTIPOINT |
|
|
|
|
|
MULTILINESTRING |
|
|
|
|
|
MULTIPOLYGON |
|
|
|
|
|
GEOMETRYCOLLECTION |
|
|
|
|
データが MySQL の DATE 列に格納されると、MySQL は自動的に日付値を yyyy-mm-dd 形式に正規化します。たとえば、yyyymmdd 形式のソース日付値 20260423 は 2026-04-23 に変換されます。これは MySQL の組み込みメカニズムであり、DataWorks の同期タスク設定には依存しません。元の形式を保持する必要がある場合は、送信先テーブルのフィールドタイプを VARCHAR に変更してください。
前提条件
DataWorks にデータソースとして追加する前に、MySQL 環境を準備して、データ同期タスクが正しく実行されるようにしてください。
以下の前提条件を完了してください。
MySQL バージョンの確認
Data Integration は特定の MySQL バージョンのみをサポートします。詳細については、「サポートされている MySQL バージョン」セクションをご参照ください。次のコマンドを実行して MySQL のバージョンを確認してください:
SELECT version();
アカウント権限の設定
DataWorks データソースアクセス専用の MySQL アカウントを作成することを推奨します。
-
オプション:アカウントの作成
詳細な手順については、「MySQL アカウントの作成」をご参照ください。
-
権限の付与
-
バッチ
バッチ同期シナリオでは:
-
MySQL からデータを読み取るには、アカウントに同期したいテーブルに対する読み取り (
SELECT) 権限が必要です。 -
MySQL にデータを書き込むには、アカウントに同期したいテーブルに対する書き込み (
INSERT、DELETE、およびUPDATE) 権限が必要です。
説明MySQL からデータを読み取って同期するだけで、データを書き戻す必要がない場合は、アカウントに
SELECT権限を付与するだけで十分です。INSERT、DELETE、およびUPDATE権限は読み取り専用の同期には必要ありません。 -
-
リアルタイム
リアルタイム同期シナリオでは、アカウントにデータベースに対する
SELECT、REPLICATION SLAVE、およびREPLICATION CLIENT権限が必要です。
次のコマンドを実行して、必要な権限を付与できます。または、アカウントに
SUPER権限を付与することもできます。次のコマンドで、'sync_account'を作成したアカウントの名前に置き換えてください。-- オプション:任意のホスト ('%') から接続できる同期アカウントを作成します。 -- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'your_password'; -- 同期アカウントに必要な権限を付与します。 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%';*.*構文は、すべてのデータベースのすべてのテーブルに対する権限を付与します。特定のデータベースの特定のテーブルに対する権限を付与することもできます。たとえば、testデータベースのuserテーブルに権限を付与するには、次のコマンドを実行します:GRANT SELECT, REPLICATION CLIENT ON test.user TO 'sync_account'@'%';。説明REPLICATION SLAVE権限はグローバル権限であり、特定のデータベースやテーブルに対して付与することはできません。 -
MySQL binlog の有効化 (リアルタイム同期のみ)
Data Integration は、MySQL の binlog をサブスクライブすることで、リアルタイムの増分データ同期を実行します。DataWorks で同期タスクを設定する前に、MySQL の binlog を有効にする必要があります。
-
binlog が消費されている場合、データベースはそれを削除できません。リアルタイム同期タスクの遅延が大きいと、binlog の削除が遅れ、ディスク領域を使い果たす可能性があります。タスクに遅延アラートを設定し、データベースのディスク領域をモニタリングすることを推奨します。
-
binlog は少なくとも 72 時間保持してください。タスクが失敗し、binlog が利用できなくなった場合、障害発生前の位置にチェックポイントをリセットできなくなり、データ損失の原因となる可能性があります。この場合、バッチ同期を使用してデータをバックフィルする必要があります。
-
binlog が有効になっているか確認します。
-
次の文を実行して、binlog が有効になっているか確認します。
SHOW variables LIKE "log_bin";返された値が
ONの場合、binlog は有効です。 -
レプリカデータベースの binlog ステータスを確認するには、次の文を実行します。
SHOW variables LIKE "log_slave_updates";返された値が
ONの場合、レプリカデータベースで binlog が有効になっています。
返された値が期待どおりでない場合:
-
オープンソースの MySQL の場合、binlog を有効にする手順については、MySQL 公式ドキュメントをご参照ください。
-
RDS for MySQL の場合、binlog を有効にする手順については、「ApsaraDB RDS for MySQL インスタンスのバックアップ」をご参照ください。
-
PolarDB for MySQL の場合、binlog を有効にする手順については、「バイナリロギングの有効化または無効化」をご参照ください。
-
-
binlog フォーマットを確認します。
次の文を実行して、binlog フォーマットを確認します。
SHOW variables LIKE "binlog_format";考えられる戻り値:
-
戻り値が ROW の場合、有効な binlog フォーマットは
ROWです。 -
STATEMENT:binlog フォーマットは
STATEMENTです。 -
MIXED:binlog フォーマットは
MIXEDです。
重要DataWorks のリアルタイム同期は ROW フォーマットのみをサポートします。返された値が ROW でない場合は、
binlog_formatの設定を変更する必要があります。 -
-
完全な行イメージがログに記録されているか確認します。
行イメージの設定を確認するには、以下の文を実行します。
SHOW variables LIKE "binlog_row_image";返される値:
-
FULL:完全な行イメージがログに記録されます。
-
MINIMAL:完全な行イメージの代わりに、最小限の行イメージがログに記録されます。
重要DataWorks のリアルタイム同期は、binlog で完全な行イメージが有効になっている MySQL サーバーにのみ対応しています。 戻り値が FULL でない場合は、binlog_row_image の設定を変更する必要があります。
-
OSS binlog 読み取り権限の設定
MySQL データソースを追加する際に、構成パターン を ApsaraDB RDS に設定し、ご利用の RDS for MySQL インスタンスが DataWorks ワークスペースと同じリージョンにある場合、[OSS から binlog を読み取る] を有効にできます。これにより、RDS for MySQL の binlog への直接アクセスが失敗した場合でも、DataWorks は OSS から binlog をフェッチし、リアルタイム同期タスクの中断を防ぎます。
[OSS binlog アクセス ID] に RAM ユーザー または RAM ロール を使用する場合は、必要な権限も付与する必要があります。
-
RAM ユーザー
-
Resource Access Management (RAM) コンソールにログインし、[ユーザー] ページに移動して、対象の RAM ユーザーを見つけます。
-
操作 列で、[ポリシーをアタッチ] をクリックします。
-
次のパラメーターを設定し、[OK] をクリックします。
-
スコープ:Alibaba Cloud アカウント
-
アクセスポリシー:システムポリシー
-
ポリシー名:
AliyunDataWorksAccessingRdsOSSBinlogPolicy
-
-
-
RAM ロール
-
Resource Access Management (RAM) コンソールにログインし、RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。
主要なパラメーター:
-
信頼できるエンティティの選択:Alibaba Cloud アカウント
-
アカウントの選択:他の Alibaba Cloud アカウント。DataWorks ワークスペースを所有する Alibaba Cloud アカウントの ID を入力します。
-
ロール名:カスタム名を入力します。
-
-
RAM ロールに権限を付与します。詳細については、「RAM ロールへの権限付与」をご参照ください。
主要なパラメーター:
-
アクセスポリシー:システムポリシー
-
ポリシー名:
AliyunDataWorksAccessingRdsOSSBinlogPolicy
-
-
RAM ロールの信頼ポリシーを変更します。詳細については、「RAM ロールの信頼ポリシーの編集」をご参照ください。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
-
データソースの追加
Alibaba Cloud インスタンスモード
MySQL データベースが Alibaba Cloud RDS インスタンスで実行されている場合は、Alibaba Cloud インスタンスモードでデータソースを作成することを推奨します。パラメーターを次のように設定します:
|
パラメーター |
説明 |
|
データソース名 |
データソース名はワークスペース内で一意である必要があります。ビジネスと環境を明確に識別できる名前を使用することを推奨します。例: |
|
[接続モード] |
Alibaba Cloud インスタンスモードを選択します。接続モードの詳細については、「シナリオ 1:インスタンスモード (現在のクラウドアカウント)」および「シナリオ 2:インスタンスモード (他のクラウドアカウント)」をご参照ください。 |
|
所属 Alibaba Cloud アカウント |
インスタンスが属するクラウド アカウントを選択します。その他の Alibaba Cloud アカウント を選択した場合は、クロスアカウント権限を設定する必要があります。詳細については、「クロスアカウント承認 (RDS、Hive、または Kafka)」をご参照ください。 他のクラウドアカウントを選択した場合は、次の情報を提供します:
|
|
リージョン |
インスタンスのリージョン。 |
|
インスタンス |
接続するインスタンスの名前を選択します。 |
|
セカンダリデータベースの設定 |
RDS インスタンスに 読み取り専用インスタンス (スタンバイインスタンス) がある場合は、そこからデータを読み取るようにタスクを設定できます。これにより、読み取り操作がプライマリインスタンスのパフォーマンスに影響を与えるのを防ぐことができます。 |
|
インスタンスアドレス |
正しいインスタンスを選択した後、[最新のアドレスを取得] をクリックして、パブリック/プライベートアドレス、VPC、vSwitch などの情報を表示します。 |
|
データベース |
データソースが接続するデータベースの名前。指定されたユーザーがこのデータベースにアクセスするために必要な権限を持っていることを確認してください。 |
|
対応するアクセスアイデンティティ |
DataWorks が MySQL にアクセスするために使用する認証情報ソースを選択します。以下のオプションがサポートされています:
|
|
OSS binlog 読み取りをサポート |
有効にすると、RDS binlog にアクセスできない場合に DataWorks は OSS から binlog を取得しようとします。これにより、リアルタイム同期タスクの中断を防ぎます。詳細については、「OSS binlog の読み取り権限の設定」をご参照ください。権限付与の設定に基づいて、OSS binlog アクセス ID を設定します。 |
|
認証オプション |
認証なしまたは SSL 認証を選択します。SSL 認証を選択する場合は、インスタンスでも有効になっていることを確認してください。証明書ファイルを準備し、認証ファイル管理 にアップロードします。 |
|
バージョン |
MySQL サーバーにログインし、 |
接続文字列モード
より柔軟な設定のために、接続文字列モードを使用してデータソースを作成することもできます。パラメーターを次のように設定します:
|
パラメーター |
説明 |
|
データソース名 |
データソース名はワークスペース内で一意である必要があります。ビジネスと環境を明確に識別できる名前を使用することを推奨します。例: |
|
[接続モード] |
パブリック IP あり を選択します。このモードでは、JDBC URL を使用してデータベースに接続します。 |
|
接続文字列プレビュー |
接続アドレスとデータベース名を入力すると、DataWorks は自動的に JDBC URL のプレビューを生成します。 |
|
エンドポイント |
ホストアドレス:データベースサーバーの実際のアクセスアドレスを入力します。アドレスが DataWorks リソースグループからネットワークアクセス可能であることを確認してください。一般的なシナリオは次のとおりです:
データベースが Alibaba Cloud RDS インスタンスの場合、インスタンス詳細の [データベース接続] ページでアドレスを見つけることができます。 ポート番号:データベースのポート。デフォルト値は 3306 です。 |
|
データベース名 |
データソースが接続するデータベースの名前。指定されたユーザーがこのデータベースにアクセスするために必要な権限を持っていることを確認してください。 |
|
対応するアクセスアイデンティティ |
DataWorks が MySQL にアクセスするために使用する認証情報ソースを選択します。以下のオプションがサポートされています:
|
|
バージョン |
MySQL サーバーにログインし、 |
|
認証オプション |
認証なしまたは SSL 認証を選択します。SSL 認証を選択する場合は、インスタンスでも有効になっていることを確認してください。証明書ファイルを準備し、認証ファイル管理 にアップロードします。 |
|
高度なパラメータ |
パラメーター:ドロップダウンリストからサポートされているパラメーターを選択します。例: 値:選択したパラメーターに適切な値を入力します。例: JDBC URL は自動的に更新されます: たとえば、タイムゾーン関連のエラーが発生した場合やタイムゾーンを指定する必要がある場合は、[プロパティを追加] をクリックし、パラメーターとして |
DataWorks リソースグループがデータベースに接続できることを確認してください。そうしないと、後続のタスクは失敗します。ネットワーク設定は、データベース環境とデータソースの接続モードによって異なります。詳細については、「接続性のテスト」をご参照ください。
MySQL 同期ワークフロー
同期タスクの設定のエントリーポイントと手順については、以下の設定ガイドをご参照ください。
単一テーブルのオフライン同期の設定
-
手順については、「ウィザードモードでの設定」および「スクリプトモードでの設定」をご参照ください。
-
すべてのスクリプトモードのパラメーターとサンプルスクリプトについては、「付録:MySQL サンプルスクリプトとパラメーターリファレンス」をご参照ください。
単一テーブルのリアルタイム同期の設定
手順については、「リアルタイム同期タスクの設定 (レガシー)」をご参照ください。
データベース全体の同期の設定
手順については、「データベース全体のリアルタイム同期タスクの設定」をご参照ください。
よくある質問
その他の一般的な Data Integration の問題については、「Data Integration よくある質問」をご参照ください。
付録:MySQL スクリプトの例とパラメーター
コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプト形式の要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「スクリプトモードでの設定」をご参照ください。以下の情報は、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明しています。
Reader スクリプトの例
以下の例は、単一データベース内の単一テーブルと、シャーディングされたテーブルの設定を示しています。
以下の JSON の例に含まれるコメントは、説明のみを目的としています。スクリプトを実行する前にコメントを削除してください。
-
単一データベース内の単一テーブル
{ "type": "job", "version": "2.0",// バージョン番号。 "steps": [ { "stepType": "mysql",// コネクタ名。 "parameter": { "column": [// 読み取る列。 "id" ], "connection": [ { "querySql": [ "select a,b from join1 c join join2 d on c.id = d.id;" ], "datasource": ""// データソース名。 } ], "where": "",// フィルター条件。 "splitPk": "",// シャードキー。 "encoding": "UTF-8"// エンコード形式。 }, "name": "Reader", "category": "reader" }, { "stepType": "stream", "parameter": {}, "name": "Writer", "category": "writer" } ], "setting": { "errorLimit": { "record": "0"// 許容されるダーティデータの最大レコード数。 }, "speed": { "throttle": true,// レート制限を有効にする場合は true に設定します。false の場合、レート制限は無効になり、'mbps' パラメーターは無視されます。 "concurrent": 1,// 並行スレッド数。 "mbps": "12"// レート制限。1 mbps = 1 MB/s。 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
シャーディングされたテーブル
説明MySQL Reader は、同じスキーマを持つ複数の MySQL テーブルからデータを読み取ることができます。この文脈での「シャーディングされたテーブル」とは、複数のソーステーブルのデータが単一の送信先テーブルに書き込まれるシナリオを指します。データベースレベルでシャーディングされたテーブルを同期するには、Data Integration でタスクを作成し、データベース全体のシャーディング機能を選択します。
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "indexes": [ { "type": "unique", "column": [ "id" ] } ], "envType": 0, "useSpecialSecret": false, "column": [ "id", "buyer_name", "seller_name", "item_id", "city", "zone" ], "tableComment": "テスト注文テーブル", "connection": [ { "datasource": "rds_dataservice", "table": [ "rds_table" ] }, { "datasource": "rds_workshop_log", "table": [ "rds_table" ] } ], "where": "", "splitPk": "id", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": {}, "name": "Writer", "category": "writer" }, { "name": "Processor", "stepType": null, "category": "processor", "copies": 1, "parameter": { "nodes": [], "edges": [], "groups": [], "version": "2.0" } } ], "setting": { "executeMode": null, "errorLimit": { "record": "" }, "speed": { "concurrent": 2, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Reader パラメーター
|
パラメーター |
説明 |
必須 |
デフォルト |
|
datasource |
読み取り元のデータソースの名前。これはコードエディタで設定されたデータソースと一致する必要があります。 |
はい |
なし |
|
table |
同期するソーステーブルの名前。Data Integration タスクは、1 つの論理テーブルからのみデータを読み取ることができます。
説明
タスクは、 |
はい |
なし |
|
column |
ソーステーブルから読み取る列を指定する JSON 配列。すべての列を選択するには、
|
はい |
なし |
|
splitPk |
MySQL Reader がデータを抽出する際に、
|
いいえ |
なし |
|
splitFactor |
シャーディング係数。このパラメーターは、作成されるシャードの数を制御します。同時実行が有効な場合、データは 説明
推奨範囲:1 から 100。大きすぎる値は、メモリ不足 (OOM) エラーを引き起こす可能性があります。 |
いいえ |
5 |
|
where |
フィルター条件。一般的なシナリオでは、現在の日付のデータのみを同期するために、
|
いいえ |
なし |
|
querySql (コードエディタでのみ利用可能。コードレス UI ではサポートされていません。) |
一部のユースケースでは、 説明
|
いいえ |
なし |
|
useSpecialSecret |
複数のソースデータソースが設定されている場合に、各データソースのパスワードを使用するかどうかを指定します。有効な値:
複数のソースデータソースが異なるユーザー名とパスワードを持つ場合、このパラメーターを true に設定して、それぞれのデータソースの認証情報を使用します。 |
いいえ |
false |
Writer スクリプトの例
{
"type": "job",
"version": "2.0",// バージョン番号。
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "mysql",// コネクタ名。
"parameter": {
"postSql": [],// タスク後に実行する SQL ステートメント。
"datasource": "",// データソース名。
"column": [// 書き込む列。
"id",
"value"
],
"writeMode": "insert",// 書き込みモード。有効な値:insert、replace、update。
"batchSize": 1024,// バッチあたりのレコード数。
"table": "",// 送信先テーブル名。
"nullMode": "skipNull",// NULL 値の処理ポリシー。
"skipNullColumn": [// NULL 値をスキップする列。
"id",
"value"
],
"preSql": [
"delete from XXX;"// タスク前に実行する SQL ステートメント。
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {// 許容されるダーティデータの最大レコード数。
"record": "0"
},
"speed": {
"throttle": true,// レート制限を有効にする場合は true に設定します。false の場合、レート制限は無効になり、'mbps' パラメーターは無視されます。
"concurrent": 1,// 並行スレッド数。
"mbps": "12"// データベースへの過剰な I/O 圧力を防ぐための MB/s 単位のレート制限。1 mbps = 1 MB/s。
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Writer パラメーター
|
パラメーター |
説明 |
必須 |
デフォルト |
|
datasource |
送信先データソースの名前。これはコードエディタで設定されたデータソースと一致する必要があります。 |
はい |
なし |
|
table |
送信先テーブルの名前。 |
はい |
なし |
|
writeMode |
書き込みモード。サポートされているオプションは、MySQL の
|
いいえ |
insert |
|
nullMode |
ソースからの NULL 値の処理ポリシーを指定します。有効な値:
重要
skipNull として設定すると、タスクは送信先でのデフォルト値をサポートするために、データを書き込むための SQL ステートメントを動的に構築します。これにより、FLUSH 操作の数が増加し、同期速度が低下します。最悪の場合、タスクはデータレコードごとに 1 回 FLUSH します。 |
いいえ |
writeNull |
|
skipNullColumn |
nullMode が skipNull に設定されている場合、このパラメーターで指定された列は フォーマット: |
いいえ |
タスクに設定されたすべての列。 |
|
column |
書き込む送信先列を、文字列の JSON 配列として指定します。例: |
はい |
なし |
|
preSql |
同期タスクが開始される前に実行する 1 つ以上の SQL ステートメント。コードレス UI は 1 つのステートメントのみをサポートし、コードエディタは複数サポートします。たとえば、テーブルから既存のデータをクリアできます: 説明
複数の SQL ステートメントに対するトランザクションはサポートされていません。 |
いいえ |
なし |
|
postSql |
同期タスクが完了した後に実行する 1 つ以上の SQL ステートメント。コードレス UI は 1 つのステートメントのみをサポートし、コードエディタは複数サポートします。たとえば、次のステートメントを使用してタイムスタンプ列を追加できます: 説明
複数の SQL ステートメントに対するトランザクションはサポートされていません。 |
いいえ |
なし |
|
batchSize |
書き込みバッチあたりのレコード数。値が大きいほどネットワークのラウンドトリップが減り、スループットが向上する可能性がありますが、値を高く設定しすぎるとメモリ不足 (OOM) エラーが発生する可能性があります。 |
いいえ |
256 |
|
updateColumn |
|
いいえ |
なし |