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

ApsaraDB for SelectDB:DataWorks を使用してデータをインポートする

最終更新日:Mar 05, 2025

ApsaraDB for SelectDB では、DataWorks のデータ統合機能を使用して、SelectDB Writer によってテーブルからデータをインポートできます。このトピックでは、DataWorks を使用して MySQL データソースから ApsaraDB for SelectDB インスタンスにデータを同期する方法について説明します。

使用上の注意

  • DataWorks のデータ統合機能を使用して ApsaraDB for SelectDB インスタンスにデータをインポートする場合、データはオフラインで書き込む必要があります。

  • BITMAP、HyperLogLog(HLL)、または QUANTILE_STATE データ型のフィールドに書き込むことはできません。

データ同期タスクを開発する

データソースを追加する

データ同期タスクを構成する前に、MySQL データソースと ApsaraDB for SelectDB データソースを DataWorks に追加する必要があります。

  1. MySQL データソースを追加する方法の詳細については、「MySQL データソース」をご参照ください。

  2. ApsaraDB for SelectDB データソースを追加する方法の詳細については、「データソースを追加および管理する」をご参照ください。次の表に、ApsaraDB for SelectDB データソースを追加するために使用されるパラメーターを示します。

    パラメーター

    説明

    [データソース名]

    データソースの名前。

    [JDBC URL]

    jdbc:mysql://<ip>:<port>/<dbname> 形式の Java Database Connectivity(JDBC)URL。

    ApsaraDB for SelectDB インスタンスの VPC エンドポイントまたはパブリックエンドポイントと MySQL ポートを取得するには、次の操作を実行します。ApsaraDB for SelectDB コンソールにログインし、情報を確認するインスタンスの [インスタンスの詳細] ページに移動します。[基本情報] タブの [ネットワーク情報] セクションで、[VPC エンドポイント] または [パブリックエンドポイント] パラメーターと [mysql ポート] パラメーターの値を表示します。

    例: jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_db

    説明

    MySQL インスタンスと ApsaraDB for SelectDB インスタンスが同じ VPC 内にある場合は、このパラメーターに VPC エンドポイントを使用します。MySQL インスタンスと ApsaraDB for SelectDB インスタンスが異なる VPC 内にある場合は、このパラメーターにパブリックエンドポイントを使用します。

    [HTTP アドレス]

    HTTP 経由で ApsaraDB for SelectDB インスタンスにアクセスするために使用される IP アドレスとポート番号。値は <ip>:<port> 形式です。

    ApsaraDB for SelectDB インスタンスの VPC エンドポイントまたはパブリックエンドポイントと HTTP ポートを取得するには、次の操作を実行します。ApsaraDB for SelectDB コンソールにログインし、情報を確認するインスタンスの [インスタンスの詳細] ページに移動します。[基本情報] タブの [ネットワーク情報] セクションで、[VPC エンドポイント] または [パブリックエンドポイント] パラメーターと [HTTP ポート] パラメーターの値を表示します。

    例: selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080

    説明

    MySQL インスタンスと ApsaraDB for SelectDB インスタンスが同じ VPC 内にある場合は、このパラメーターに VPC エンドポイントを使用します。MySQL インスタンスと ApsaraDB for SelectDB インスタンスが異なる VPC 内にある場合は、このパラメーターにパブリックエンドポイントを使用します。

    [ユーザー名]

    ApsaraDB for SelectDB インスタンスのオーナーアカウントのユーザー名。

    [パスワード]

    ApsaraDB for SelectDB インスタンスのオーナーアカウントのパスワード。

    重要

    データソースを確実に追加できるようにするには、DataWorks のリソースグループの IP アドレスを、ApsaraDB for SelectDB などのデータソースの IP アドレスホワイトリストに追加する必要があります。詳細については、「IP アドレスホワイトリストを構成する」をご参照ください。IP アドレスホワイトリストを構成する場合は、異なる種類のリソースグループの IP アドレスを異なる IP アドレスホワイトリストに追加する必要があります。たとえば、データ統合専用リソースグループとデータ統合用共有リソースグループの IP アドレスは、異なる IP アドレスホワイトリストに追加する必要があります。

単一テーブルからデータを同期するためのバッチ同期タスクを構成する

コードレス UI またはコードエディタを使用して、バッチ同期タスクを構成できます。詳細については、以下のトピックをご参照ください。

サンプルコードとパラメーター

コードエディタを使用してバッチ同期タスクを構成する

コードエディタを使用してバッチ同期タスクを構成する場合は、コードエディタの形式要件に基づいてスクリプトを記述する必要があります。詳細については、「コードエディタを使用してバッチ同期タスクを構成する」をご参照ください。

MySQL Reader と SelectDB Writer のコード

{
	"type":"job",
	"version":"2.0",
	"steps":[
		{
			"stepType":"mysql",
			"parameter":{
				"column":[
          "<id>",
          "<table_id>",
          "<table_no>",
          "<table_name>",
          "<table_status>"
				],
				"connection":[
					{
						"datasource":"<mysql_datasource>",
						"table":[
							"<mysql_table_name>"
						]
					}
				],
				"where":"",
				"splitPk":"",
				"encoding":"UTF-8"
			},
			"name":"Reader",
			"category":"reader"
		},
		{
			"stepType":"selectdb",
			"parameter":{
        "postSql":[
        ],
        "preSql":[
        ],
        "username": "<selectdb_username>",
        "password": "<selectdb_password>",
        "loadUrl":[
          "<ip:port>"
        ],
        "column":[
          "<id>",
          "<table_id>",
          "<table_no>",
          "<table_name>",
          "<table_status>"
				],
        "connection":[
					{
						"datasource":"<selectdb_datasource>",
						"table":[
							"<selectdb_table_name>"
						]
					}
				],
        "maxBatchRows":1000000,
        "loadProps":{
          "format":"csv",
          "column_separator": "\\x01",
          "line_delimiter": "\\x02"
        }
      },
			"name":"Writer",
			"category":"writer"
		}
	],
	"setting":{
		"errorLimit":{
			"record":"0"
		},
		"speed":{
			"throttle":false,
			"concurrent":1
		}
	},
	"order":{
		"hops":[
			{
				"from":"Reader",
				"to":"Writer"
			}
		]
	}
}

パラメーター

パラメーター

説明

datasource

データソースの名前。このパラメーターは必須です。コードエディタを使用してバッチ同期タスクを構成するときに、データソースを追加できます。このパラメーターの値は、追加するデータソースの名前と同じである必要があります。

table

データを同期するテーブルの名前。このパラメーターは必須です。

column

宛先テーブルにデータを書き込む列の名前。列名はカンマ(,)で区切ります。このパラメーターは必須です。例: "column":["id","name","age"]。宛先テーブルのすべての列にデータを書き込む場合は、このパラメーターをアスタリスク (*) に設定します。例: "column":["*"]

loadUrl

ApsaraDB for SelectDB インスタンスにアクセスするために使用される URL。このパラメーターは必須です。形式: ip:portip は ApsaraDB for SelectDB インスタンスの [VPC エンドポイント] を示し、port は ApsaraDB for SelectDB インスタンスの [HTTP ポート] を示します。例: selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080

username

ApsaraDB for SelectDB データベースにアクセスするために使用されるユーザー名。このパラメーターは必須です。

password

ApsaraDB for SelectDB データベースにアクセスするために使用されるパスワード。このパラメーターは必須です。

preSql

バッチ同期タスクが実行される前に実行する SQL 文。たとえば、このパラメーターを古いデータを削除するために使用される SQL 文に設定できます。コードレス UI では 1 つの SQL 文のみを実行でき、コードエディタでは複数の SQL 文を実行できます。

postSql

同期タスクが実行された後に実行する SQL 文。たとえば、このパラメーターをタイムスタンプを追加するために使用される SQL 文に設定できます。コードレス UI では 1 つの SQL 文のみを実行でき、コードエディタでは複数の SQL 文を実行できます。

maxBatchRows

一度に宛先テーブルに書き込むことができる最大行数。デフォルト値: 500000。

loadProps

インポートするデータの形式を指定するために使用される COPY INTO リクエストのパラメーター。デフォルト値: json。[loadprops] パラメーターが空のままになっているか、{} に設定されている場合、デフォルトで JSON 形式が使用されます。JSON 形式が使用される場合、ApsaraDB for SelectDB インスタンスに対して以下の設定のみを構成できます。strip_outer_array パラメーターは true に設定されています。

"loadProps": {
   "format": "json",
   "strip_outer_array":true
}

CSV 形式でデータをインポートする場合は、次の設定を構成して CSV 形式を指定し、行と列の区切り文字を構成できます。行と列の区切り文字を指定しない場合、インポートされたデータはデフォルトで文字列に変換されます。\t は列区切り文字として使用され、\n は行区切り文字として使用され、ApsaraDB for SelectDB インスタンスにデータをインポートするための CSV ファイルが形成されます。

"loadProps": {
   "format":"csv",
   "column_separator": "\\x01",
   "line_delimiter": "\\x02"
}

サポートされているデータ型

次の表に、ApsaraDB for SelectDB でサポートされているデータ型を示します。

データ型

SelectDB Writer のオフラインデータ書き込み

INT

サポートされています

BIGINT

サポートされています

LARGEINT

サポートされています

SMALLINT

サポートされています

TINYINT

サポートされています

BOOLEAN

サポートされています

DECIMAL

サポートされています

DOUBLE

サポートされています

FLOAT

サポートされています

CHAR

サポートされています

VARCHAR

サポートされています

STRING

サポートされています

DATE

サポートされています

DATEV2

サポートされています

DATETIME

サポートされています

DATETIMEV2

サポートされています

ARRAY

サポートされています

JSONB

サポートされています

BITMAP

サポートされていません

HLL

サポートされていません

QUANTILE_STATE

サポートされていません

参照

DataWorks とは