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

DataWorks:フル同期と増分同期

最終更新日:Jan 22, 2025

このトピックでは、フル同期と増分同期に関するよくある質問への回答を提供します。

概要

MySQL から Hologres にデータを同期する同期タスクを実行すると、decimal(7,4) が numeric(38,18) に変換されるのはなぜですか。

データ精度の損失を防ぐため、Data Integration はデータ同期の際にデータ精度を自動的に上げます。Data Integration では、テーブル作成ステートメントを変更できます。同期タスクの構成時に、ビジネス要件に基づいてデータ同期のデフォルトのデータ型変換ルールを構成することもできます。詳細については、「リアルタイム同期ソリューションを作成して Hologres にデータを同期する」をご参照ください。

ワンクリックリアルタイム同期タスクを実行して、シャーディングデータベースのテーブルから同じ MaxCompute テーブルにデータを同期できますか。

いいえ、ワンクリックリアルタイムのフル同期および増分同期タスクを使用して、シャーディングデータベースのテーブルから同じ MaxCompute テーブルにデータを同期することはできません。シャーディングデータベースのテーブルから同じ MaxCompute テーブルにデータを同期する場合、シャーディングデータベースのテーブルから MaxCompute にデータを同期するための同期タスクを使用できます。詳細については、「シャーディング MySQL データベースのテーブルから MaxCompute にデータを同期する」をご参照ください。

ワンクリックリアルタイムのフル同期および増分同期タスクで指定されたソーステーブルのフィールドが変更された後にエラーが報告されないようにするにはどうすればよいですか。

同期タスクを構成する際に、ソースで実行される操作に対して生成される DDL メッセージの処理ルールを構成できます。処理ルールには、通常処理、無視、エラー報告が含まれます。詳細については、「Data Integration で同期タスクを構成する」トピックの「DDL または DML メッセージを処理するためのルールと同期ルールを構成する」セクションをご参照ください。

PolarDB データソースのネットワーク接続テストが失敗した場合はどうすればよいですか。

  • 問題の説明: PolarDB データソースを追加し、データソースのネットワーク接続をテストします。データソースのテストは失敗します。

  • 解決策: データソースの種別 パラメーターを 接続文字列モード に設定し、データソースのホワイトリスト構成と排他 リソースグループ の VPC 構成を確認します。

Oracle データソースのネットワーク接続テストが失敗した場合はどうすればよいですか。

  • 問題の説明: Oracle データソースを追加し、データソースのネットワーク接続をテストします。データソースのテストは失敗します。

  • 解決策: データソースの種別 パラメーターを 接続文字列モード に設定し、データソースのホワイトリスト構成と排他 リソースグループ の VPC 構成を確認します。

OceanBase データソースのネットワーク接続テストが失敗した場合はどうすればよいですか。

  • 問題の説明: OceanBase データソースを追加し、データソースのネットワーク接続をテストします。データソースのテストは失敗します。

  • 解決策: データソースの種別 パラメーターを 接続文字列モード に設定し、データソースのホワイトリスト構成と排他 リソースグループ の VPC 構成を確認します。

MySQL データソースのネットワーク接続テストが失敗した場合はどうすればよいですか。

  • 問題の説明: MySQL データソースを追加し、データソースのネットワーク接続をテストします。データソースのテストは失敗します。

  • 解決策: データソースの種別 パラメーターを 接続文字列モード に設定し、データソースのホワイトリスト構成と排他 リソースグループ の VPC 構成を確認します。

MaxCompute にデータを同期するために使用するリアルタイムのフル同期および増分同期タスクを構成すると、使用したい MaxCompute データソースが選択不可になります。どうすればよいですか。

使用したい MaxCompute データソースが選択不可になっているのは、MaxCompute プロジェクトをワークスペースにコンピュートエンジンインスタンスとして関連付けたときに生成されたものではなく、DataWorks に自分で追加したデータソースであるためです。MaxCompute にデータを同期するために使用するリアルタイムのフル同期および増分同期タスクでは、MaxCompute コンピュートエンジンを関連付けたときに生成された MaxCompute データソースを選択する必要があります。

PolarDB データソースからデータを同期するために使用する同期タスクによって生成されたリアルタイム同期サブタスクを実行すると、次のエラーメッセージが返されます: com.alibaba.otter.canal.parse.exception.PositionNotFoundException: can't find start position for XXX。どうすればよいですか。

  • 問題の説明: PolarDB データソースからデータを同期するために使用する同期タスクによって生成されたリアルタイム同期サブタスクが失敗し、次のエラーメッセージが返されます: com.alibaba.otter.canal.parse.exception.PositionNotFoundException: can't find start position for XXX

  • 原因: PolarDB データソースでバイナリロギング機能が無効になっています。

  • 解決策: PolarDB データソースでバイナリロギング機能を有効にします。詳細については、「PolarDB データソース」をご参照ください。また、ソースの 1 つ以上のデータレコードを変更し、リアルタイム同期サブタスクの開始オフセットを現在の時刻に変更する必要があります。

PolarDB データソースからデータを同期するために使用する同期タスクによって生成されたリアルタイム同期サブタスクを実行すると、次のエラーメッセージが返されます: com.alibaba.otter.canal.parse.exception.CanalParseException: command : 'show master status' has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation。どうすればよいですか。

  • 問題の説明: PolarDB データソースからデータを同期するために使用する同期タスクによって生成されたリアルタイム同期サブタスクが失敗し、次のエラーメッセージが返されます: com.alibaba.otter.canal.parse.exception.CanalParseException: command : 'show master status' has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation

  • 原因: データの同期に使用されるアカウントに PolarDB データソースへのアクセスが許可されていないか、接続されている PolarDB データベースがプライマリノードにデプロイされていません。

  • 解決策: アカウントに PolarDB データソースへのアクセスを許可するか、接続されている PolarDB データベースがプライマリノードにデプロイされているかどうかを確認します。リアルタイム同期タスクは、PolarDB データソースの読み取り専用ノードからデータを同期できません。PolarDB データソースへのアクセスをアカウントに許可する方法については、「PolarDB データソース」をご参照ください。

PolarDB データソースからデータを同期するために使用する同期タスクによって生成されたリアルタイム同期サブタスクを実行すると、次のエラーメッセージが返されます: com.alibaba.datax.plugin.reader.mysqlbinlogreader.MysqlBinlogReaderException: The mysql server does not enable the binlog write function. Please enable the mysql binlog write function first。どうすればよいですか。

  • 問題の説明: PolarDB データソースからデータを同期するために使用する同期タスクによって生成されたリアルタイム同期サブタスクが失敗し、次のエラーメッセージが返されます: com.alibaba.datax.plugin.reader.mysqlbinlogreader.MysqlBinlogReaderException: The mysql server does not enable the binlog write function. Please enable the mysql binlog write function first

  • 原因: PolarDB データソースの loose_polar_log_bin パラメーターが off に設定されています。

  • 解決策: loose_polar_log_bin パラメーターを on に設定します。詳細については、「バイナリロギングを有効にする」をご参照ください。

同期タスクによって生成されたバッチ同期サブタスクを実行すると、次のエラーメッセージが返されます: com.alibaba.datax.common.exception.DataXException: Code:[HoloWriter-02], Description:[Invalid config parameter in your configuration.]. - Field _log_file_name_offset_ not allow null but not present in user configured columns。どうすればよいですか。

  • 問題の説明: 同期タスクによって生成されたバッチ同期サブタスクが失敗し、次のエラーメッセージが返されます: com.alibaba.datax.common.exception.DataXException: Code:[HoloWriter-02], Description:[Invalid config parameter in your configuration.]. - Field _log_file_name_offset_ not allow null but not present in user configured columns

  • 原因: バッチ同期に使用される DataWorks エンジンプラグインが最新バージョンに更新されていません。

  • チケットを提出して、テクニカルサポートに連絡し、プラグインを更新してください。

Hologres にデータを同期するために使用する同期タスクによって生成されたバッチ同期サブタスクを実行すると、次のエラーメッセージが返されます: errorCode:NoSuchTopic, errorMessage:The specified topic name does not exist。どうすればよいですか。

  • 問題の説明: Hologres にデータを同期するために使用する同期タスクによって生成されたバッチ同期サブタスクが失敗し、次のエラーメッセージが返されます: errorCode:NoSuchTopic, errorMessage:The specified topic name does not exist

  • 原因:

    • データ同期に使用される宛先 Hologres テーブルが存在しません。

    • 同期タスクによって生成されたバッチ同期サブタスクは、ソーステーブルから Hologres 外部テーブルにデータを同期します。Hologres Writer を使用して Hologres 外部テーブルにデータを同期することはできません。

  • 解決策: データ同期の宛先テーブルとして Hologres 内部テーブルを使用します。宛先 Hologres テーブルが存在しない場合は、同期タスクの構成を変更し、テーブル生成方法 を [テーブルを作成] に設定して、システムが宛先 Hologres テーブルを自動的に作成できるようにします。詳細については、「リアルタイム同期ソリューションを作成して Hologres にデータを同期する」トピックの「ステップ 4: 宛先テーブルを構成する」セクションをご参照ください。

システムは、自動的に作成されるマッピング先のテーブルに、ソーステーブルの NULL 非許容プロパティやフィールドのデフォルト値などのソーステーブルの情報を保持しますか。

システムが宛先テーブルを作成する場合、システムは、マッピングされたソーステーブルのフィールド名、データ型、備考などの情報のみを宛先テーブルに保持しますが、マッピングされたソーステーブルのフィールドのデフォルト値や、NULL 非許容制約やインデックスの制約などの制約は保持しません。

既存の同期タスクを実行してフル同期を実行するにはどうすればよいですか。

Data Integration の [同期タスク] ページの [タスク] セクションで同期タスクを見つけ、[操作] 列の 詳細操作再実行 アイコンをクリックし、[再実行] を選択して同期タスクを再実行できます。