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

DataWorks:AnalyticDB for MySQL 2.0 データソース

最終更新日:Jan 11, 2025

DataWorks は、AnalyticDB for MySQL 2.0 Reader と AnalyticDB for MySQL 2.0 Writer を提供し、AnalyticDB for MySQL 2.0 データソースとのデータの読み取りと書き込みを可能にします。このトピックでは、AnalyticDB for MySQL 2.0 データソースとのデータ同期機能について説明します。

制限事項

  • バッチ同期中にビューのデータを読み取ることができます。

  • AnalyticDB for MySQL 2.0 Reader は複数値型のデータを読み取ることができません。 AnalyticDB for MySQL 2.0 Reader を使用してこのタイプのデータを読み取ると、AnalyticDB for MySQL 2.0 Reader は予期せず終了します。

データ型マッピング

バッチデータ読み取り

次の表に、AnalyticDB for MySQL 2.0 Reader がデータ型を変換する際に基づくデータ型マッピングを示します。

AnalyticDB for MySQL 2.0 データ型

Data Integration データ型

MaxCompute データ型

BIGINT

LONG

BIGINT

TINYINT

LONG

INT

TIMESTAMP

DATE

DATETIME

VARCHAR

STRING

STRING

SMALLINT

LONG

INT

INT

LONG

INT

FLOAT

STRING

DOUBLE

DOUBLE

STRING

DOUBLE

DATE

DATE

DATETIME

TIME

DATE

DATETIME

バッチデータ書き込み

次の表に、AnalyticDB for MySQL 2.0 Writer がデータ型を変換する際に基づくデータ型マッピングを示します。

カテゴリ

AnalyticDB for MySQL 2.0 データ型

整数

INT、TINYINT、SMALLINT、および BIGINT

浮動小数点

FLOAT および DOUBLE

文字列

VARCHAR

日付と時刻

DATE および TIMESTAMP

ブール値

BOOLEAN

データ同期タスクの開発

データ同期タスクのエントリポイントと設定手順については、以下のセクションを参照してください。パラメータ設定については、タスクの設定タブにある各パラメータのヒントを参照してください。

データソースの追加

特定のデータソースとのデータ同期タスクを設定する前に、DataWorks にデータソースを追加する必要があります。詳細については、「データソースの追加と管理」をご参照ください。

単一テーブルのデータを同期するためのバッチ同期タスクの設定

データベース内のすべてのデータのバッチ同期を実装するための同期設定

設定手順の詳細については、「Data Integration での同期タスクの設定」をご参照ください。

付録:コードとパラメータ

付録:コードエディタを使用したバッチ同期タスクの設定

コードエディタを使用してバッチ同期タスクを設定する場合は、コードエディタのフォーマット要件に基づいて、関連データソースのリーダーとライターのパラメータを設定する必要があります。フォーマット要件の詳細については、「コードエディタを使用したバッチ同期タスクの設定」をご参照ください。次の情報は、コードエディタにおけるリーダーとライターのパラメータの設定の詳細について説明しています。

AnalyticDB for MySQL 2.0 Reader のコード

{
    "type": "job",
  "steps": [
    {
            "stepType": "ads",
      "parameter": {
        "datasource": "ads_demo",
        "table": "th_test",
        "column": [
          "id",
          "testtinyint",
          "testbigint",
          "testdate",
          "testtime",
          "testtimestamp",
          "testvarchar",
          "testdouble",
          "testfloat"
        ],
        "odps": {
          "accessId": "<yourAccessKeyId>",
          "accessKey": "<yourAccessKeySecret>",
          "account": "*********@aliyun.com",
          "odpsServer": " http://service.cn-shanghai-vpc.maxcompute.aliyun-inc.com/api",
          "tunnelServer": "http://dt.cn-shanghai-vpc.maxcompute.aliyun-inc.com",
          "accountType": "aliyun",
          "project": "odps_test"
        },
        "mode": "ODPS"
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "version": "2.0",
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  },
  "setting": {
    "errorLimit": {
      "record": ""
    },
    "speed": {
      "concurrent": 2,
      "throttle": true, // スロットリングを有効にするかどうかを指定します。値 false はスロットリングが無効になっていることを示し、値 true はスロットリングが有効になっていることを示します。 mbps パラメータは、throttle パラメータが true に設定されている場合にのみ有効になります。
                  "mbps":"12" // 最大伝送速度。単位:MB/s。
    }
  }
}

AnalyticDB for MySQL 2.0 Reader のコードのパラメータ

パラメータ

説明

必須

デフォルト値

table

データを読み取るテーブルの名前。

はい

デフォルト値なし

column

列の名前。このパラメータが指定されていない場合は、すべての列が読み取られます。

いいえ

*

limit

1 ページで読み取ることができるレコードの最大数。

いいえ

デフォルト値なし

where

データレコードをフィルタリングするための WHERE 句。このパラメータで指定された文字列(例:where id < 100)は、クエリ条件として SQL ステートメントに追加されます。

いいえ

デフォルト値なし

mode

読み取りモード。有効な値:

  • Select:limit パラメータに指定された値に基づいて複数のページのデータを読み取ります。

  • ODPS:MaxCompute ダンプを使用してデータを読み取ります。このモードでデータを読み取るには、MaxCompute に対するアクセス権限が必要です。

いいえ

Select

odps.accessKey

AnalyticDB for MySQL 2.0 Reader が MaxCompute にアクセスするために使用する Alibaba Cloud アカウントの AccessKey シークレット。アカウントには、Describe、Create、Select、Alter、Update、および Drop の権限が必要です。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。

いいえ

デフォルト値なし

odps.accessId

AnalyticDB for MySQL 2.0 Reader が MaxCompute にアクセスするために使用する Alibaba Cloud アカウントの AccessKey ID。アカウントには、Describe、Create、Select、Alter、Update、および Drop の権限が必要です。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。

いいえ

デフォルト値なし

odps.odpsServer

MaxCompute API のエンドポイント。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。

いいえ

デフォルト値なし

odps.tunnelServer

MaxCompute Tunnel のエンドポイント。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。

いいえ

デフォルト値なし

odps.project

MaxCompute プロジェクトの名前。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。

いいえ

デフォルト値なし

odps.accountType

MaxCompute にアクセスするために使用されるアカウントのタイプ。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。

いいえ

aliyun

AnalyticDB for MySQL 2.0 Writer のコード

{
    "type":"job",
    "version":"2.0",
    "steps":[ 
        {
            "stepType":"stream",
            "parameter":{
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ads", // プラグイン名。
            "parameter":{
                "partition":"", // データを書き込むパーティションの名前。
                "datasource":"", // データソースの名前。
                "column":[ // 列の名前。
                     "id"
                ],
                "writeMode":"insert", // 書き込みモード。
                "batchSize":"256", // 一度に書き込むデータレコードの数。
                "table":"", // テーブルの名前。
                "overWrite":"true", // 宛先テーブルのデータを上書きするかどうかを指定します。値 true は、宛先テーブルのデータが上書きされることを示します。値 false は、宛先テーブルのデータが上書きされず、新しいデータが既存のデータに追加されることを示します。このパラメータは、writeMode パラメータが load に設定されている場合にのみ有効になります。
                "options.ignoreEmptySource":true // ソースにデータが含まれていない場合に、システムがエラーを報告するかどうかを指定します。値 true は、システムがエラーを報告しないことを示し、値 false は、システムがエラーを報告することを示します。このパラメータのデフォルト値は true です。
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0" // 許容されるダーティデータレコードの最大数。
        },
        "speed":{
            "throttle":true, // スロットリングを有効にするかどうかを指定します。値 false はスロットリングが無効になっていることを示し、値 true はスロットリングが有効になっていることを示します。 mbps パラメータは、throttle パラメータが true に設定されている場合にのみ有効になります。
            "concurrent":1,  // 並行スレッドの最大数。
            "mbps":"12" // 最大伝送速度。単位:MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

AnalyticDB for MySQL 2.0 Writer のコードのパラメータ

パラメータ

説明

必須

デフォルト値

url

AnalyticDB for MySQL 2.0 データベースへの接続に使用する URL。IPアドレス:ポート 形式でこのパラメータを指定します。

はい

デフォルト値なし

database

AnalyticDB for MySQL 2.0 データベースの名前。

はい

デフォルト値なし

Access Id

AnalyticDB for MySQL 2.0 データベースへの接続に使用する AccessKey ID

はい

デフォルト値なし

Access Key

AnalyticDB for MySQL 2.0 データベースへの接続に使用する AccessKey シークレット

はい

デフォルト値なし

datasource

データソースの名前。追加されたデータソースの名前と同じである必要があります。コードエディタを使用してデータソースを追加できます。

はい

デフォルト値なし

table

データを書き込むテーブルの名前。

はい

デフォルト値なし

partition

データを書き込むパーティションの名前。このパラメータは、宛先テーブルがパーティションテーブルの場合にのみ必須です。

いいえ

デフォルト値なし

writeMode

AnalyticDB for MySQL 2.0 Writer は、2 つのモードで AnalyticDB for MySQL 2.0 データベースにデータを書き込むために使用できます。

  • insert モードでは、プライマリキーの競合が発生した場合、競合する行のデータが上書きされます。

  • load モードでは、サードパーティシステムを使用してデータが転送およびインポートされます。

はい

デフォルト値なし

column

データを書き込む列の名前。カンマ (,) で区切ります(例:["a", "b", "c"])。

はい

デフォルト値なし

suffix

オプション。IPアドレス:ポート 形式の AnalyticDB for MySQL 2.0 URL への接尾辞。この接尾辞はカスタム接続文字列です。このパラメータを指定すると、URL は AnalyticDB for MySQL 2.0 データベースへの接続に使用する Java Database Connectivity (JDBC) 接続文字列に変更されます。たとえば、suffix パラメータを autoReconnect=true&failOverReadOnly=false&maxReconnects=10 に設定します。

いいえ

デフォルト値なし

batchSize

一度に書き込むデータレコードの数。

このパラメータは、writeMode パラメータが insert に設定されている場合にのみ必須です。

デフォルト値なし

bufferSize

AnalyticDB for MySQL 2.0 のパフォーマンスを向上させるために設計された Data Integration データバッファのサイズ。ソースデータは、AnalyticDB for MySQL 2.0 にコミットされる前にバッファ内でソートされます。バッファ内のデータは、AnalyticDB for MySQL 2.0 テーブルのパーティションキー列に基づいてソートされます。これにより、AnalyticDB for MySQL 2.0 サーバーのパフォーマンスを向上させることができる順序でデータが編成されます。

バッファ内のデータは、batchSize パラメータの値に基づいてバッチで AnalyticDB for MySQL 2.0 にコミットされます。 bufferSize パラメータは、batchSize パラメータの値の倍数に設定することをお勧めします。このパラメータは、writeMode パラメータが insert に設定されている場合にのみ有効になります。

このパラメータは、writeMode パラメータが insert に設定されている場合にのみ必須です。

デフォルト値なし