DataWorks Data Integration の SelectDB Writer を使用して、データを SelectDB テーブルにインポートできます。このトピックでは、DataWorks の SelectDB に対するデータ同期機能について説明します。
サポートされている SelectDB バージョン
SelectDB Writer は MySQL Driver 5.1.47 を使用します。ドライバーの機能の詳細については、「MySQL Connectors」をご参照ください。このドライバーは、次のバージョンをサポートしています:
標準 SelectDB バージョン: 2.2.31 および 2.2.22。
Alibaba Cloud SelectDB バージョン: 2.4、3.0、および 4.0。
制限事項
Data Integration は、SelectDB へのオフライン書き込みのみをサポートします。
BITMAP、HLL (HyperLogLog)、または QUANTILE_STATE タイプのフィールドへのデータ書き込みはサポートされていません。
サポートされているフィールドタイプ
各 SelectDB バージョンのフィールドタイプの完全なリストについては、公式 SelectDB ドキュメントをご参照ください。次の表は、例として SelectDB 2.2.22 でサポートされているフィールドタイプの一覧です。
SelectDB フィールドタイプ | オフライン書き込み (SelectDB Writer) |
INT | サポート済み |
BIGINT | サポート済み |
LARGEINT | サポート済み |
SMALLINT | サポート済み |
TINYINT | サポート済み |
BOOLEAN | サポート済み |
DECIMAL | サポート済み |
DOUBLE | サポート済み |
FLOAT | サポート済み |
CHAR | サポート済み |
VARCHAR | サポート済み |
STRING | サポート済み |
DATE | サポート済み |
DATEV2 | サポート済み |
DATETIME | サポート済み |
DATETIMEV2 | サポート済み |
ARRAY | サポート済み |
JSONB | サポート済み |
BITMAP | サポートされていません |
HLL (HyperLogLog) | サポートされていません |
QUANTILE_STATE | サポートされていません |
準備
DataWorks でデータを同期する前に、このトピックで説明されているように SelectDB 環境を準備する必要があります。これにより、SelectDB データ同期タスクを構成して実行するときに、サービスが期待どおりに実行されるようになります。以下のセクションでは、必要な準備について説明します。
準備 1: SelectDB バージョンの確認
Data Integration には SelectDB のバージョン要件があります。詳細については、「サポートされている SelectDB バージョン」をご参照ください。SelectDB コンソールで SelectDB のバージョンが要件を満たしているかどうかを確認できます。
準備 2: アカウントの作成と権限の構成
DataWorks がデータソースにアクセスするには、専用の SelectDB アカウントを作成する必要があります。SelectDB データウェアハウスのデフォルトの admin ユーザーを使用してログインする場合は、admin ユーザーのパスワードを設定する必要があります。
準備 3: SelectDB のネットワーク接続の構成
SelectDB は、プライベートネットワークまたはインターネット経由の接続をサポートします。Data Integration では、どちらのネットワークタイプでも SelectDB に接続できます。
プライベートネットワーク経由で接続: プライベートネットワーク接続は、より高い帯域幅とより安定した接続を提供します。この方法を推奨します。プライベートネットワーク接続を使用する前に、ネットワーク設定ドキュメントで説明されているようにエンドポイントを作成する必要があります。エンドポイントが作成され、そのステータスが [作成中] から [利用可能] に変わり、接続ステータスが [接続中] から [接続済み] に変わったら、エンドポイントが存在する VPC をリソースグループの VPC にアタッチする必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
インターネット経由で接続: リソースグループの EIP を SelectDB ホワイトリストに追加する必要があります。構成の詳細については、「ホワイトリストを追加する」をご参照ください。
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の手順に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際、DataWorks コンソールでパラメーターの infotip を表示して、パラメーターの意味を理解できます。
次のセクションでは、SelectDB データソースのいくつかの設定項目について説明します:
[MySQL 接続アドレス]: Java Database Connectivity (JDBC) 接続文字列を入力します。SelectDB コンソールの セクションから [JDBC 接続文字列] をコピーできます。パブリック IP とプライベート IP の両方がサポートされています。
[HTTP 接続アドレス]: HTTP プロトコルエンドポイントを入力します。SelectDB コンソールの セクションから [HTTP プロトコルエンドポイント] をコピーできます。パブリック IP とプライベート IP の両方がサポートされています。
[ユーザー名]: SelectDB データウェアハウスのユーザー名を入力します。
[パスワード]: SelectDB データウェアハウスの指定されたユーザー名のパスワードを入力します。
データ同期タスクの開発
同期タスクの構成のエントリポイントと手順については、次の構成ガイドをご参照ください。
単一テーブルのオフライン同期タスクの構成ガイド
手順については、「コードレス UI を使用してオフライン同期タスクを構成する」および「コードエディタを使用してオフライン同期タスクを構成する」をご参照ください。
コードエディタのパラメーターとスクリプトデモの完全なリストについては、「付録: SelectDB スクリプトデモとパラメーターの説明」をご参照ください。
付録: SelectDB スクリプトデモとパラメーターの説明
コードエディタを使用したバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合は、統一されたスクリプトフォーマット要件に基づいてスクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタでタスクを構成する」をご参照ください。以下の情報では、コードエディタを使用してバッチ同期タスクを構成する際にデータソースに対して構成する必要があるパラメーターについて説明します。
Writer スクリプトデモ
{
"stepType": "selectdb",// プラグイン名。
"parameter":
{
"postSql":// データ同期タスクの実行後に実行される SQL 文。
[],
"preSql":
[],// データ同期タスクの実行前に実行される SQL 文。
"datasource":"selectdb_datasource",// データソース名。
"table": "selectdb_table_name",// テーブル名。
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
],
"loadProps":{
"format":"csv",// CSV フォーマットを指定します。
"column_separator": "\\x01",// 列区切り文字を指定します。
"line_delimiter": "\\x02"// 行区切り文字を指定します。
}
},
"name": "Writer",
"category": "writer"
}Writer スクリプトパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
datasource | データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じである必要があります。 | はい | なし |
table | 同期するテーブルの名前。 | はい | なし |
column | データを書き込むターゲットテーブルの列。列名をコンマ (,) で区切ります。例: | はい | なし |
preSql | データ同期タスクの実行前に実行される SQL 文。コードレス UI は 1 つの SQL 文のみをサポートします。コードエディタは複数の SQL 文をサポートします。たとえば、タスクの実行前にテーブルから古いデータをクリアできます。 | いいえ | なし |
postSql | データ同期タスクの実行後に実行される SQL 文。コードレス UI は 1 つの SQL 文のみをサポートします。コードエディタは複数の SQL 文をサポートします。たとえば、タスクの実行後にタイムスタンプを追加できます。 | いいえ | なし |
maxBatchRows | インポートされる各データバッチの最大行数。このパラメーターと batchSize パラメーターは、各バッチのインポートサイズを制御します。バッチ内のデータがいずれかのしきい値に達すると、そのバッチのインポートが開始されます。 | いいえ | 500000 |
batchSize | インポートされる各データバッチの最大データ量。このパラメーターと maxBatchRows パラメーターは、各バッチのインポートサイズを制御します。バッチ内のデータがいずれかのしきい値に達すると、そのバッチのインポートが開始されます。 | いいえ | 94371840 |
maxRetries | データバッチのインポートに失敗した後の再試行回数。 | いいえ | 3 |
labelPrefix | アップロードされる各ファイルのラベルプレフィックス。最終的なラベルは、 | いいえ | datax_selectdb_writer_ |
loadProps | COPY INTO のリクエストパラメーター。このパラメーターは、主にインポートされるデータのフォーマットを構成するために使用されます。デフォルトでは、データは JSON フォーマットでインポートされます。loadProps が構成されていないか、 CSV フォーマットでデータをインポートするには、次の例に示すように、フォーマットを CSV として指定し、行と列のデリミタを構成できます。行と列のデリミタを指定しない場合、インポートされたすべてのデータは文字列に変換されます。タブ文字 ( | いいえ | なし |
clusterName | SelectDB Cloud クラスターの名前。SelectDB コンソールで名前を表示できます。 | いいえ | なし |
flushInterval | データバッチを書き込む時間間隔 (ミリ秒単位)。maxBatchRows および batchSize パラメーターの値が大きい場合、システムは指定されたデータ量に達する前に書き込み間隔に基づいてデータをインポートすることがあります。 | いいえ | 30000 |