DataWorks の Data Integration を使用すると、単一テーブルまたはデータベース全体のオフライン同期を介して Alibaba Cloud SelectDB にデータを書き込むことができます。このトピックでは、サポートされている機能と設定プロセスについて概説します。
サポートされている SelectDB のバージョン
SelectDB ライターは MySQL ドライバー 5.1.47 を使用します。ドライバーの機能に関する詳細については、「MySQL コネクタ」をご参照ください。このドライバーは、以下のバージョンをサポートしています。
標準 SelectDB バージョン:2.2.31 および 2.2.22
Alibaba Cloud SelectDB バージョン:2.4、3.0、および 4.0
制限事項
BITMAP、HLL (HyperLogLog)、または QUANTILE_STATE タイプのフィールドへのデータ書き込みはサポートされていません。
サポートされているフィールドタイプ
各 SelectDB バージョンのフィールドタイプの完全なリストについては、SelectDB の公式ドキュメントをご参照ください。次の表は、例として SelectDB 2.2.22 でサポートされているフィールドタイプの一覧です。
SelectDB フィールドタイプ | オフライン書き込み (SelectDB ライター) |
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 コンソールでパラメーターの説明を表示して、パラメーターの意味を理解できます。
以下に、SelectDB データソースのいくつかの設定項目について説明します。
[MySQL 接続アドレス]:Java Database Connectivity (JDBC) 接続文字列を入力します。SelectDB コンソールの セクションから [JDBC 接続文字列] をコピーできます。パブリック IP とプライベート IP の両方がサポートされています。
[HTTP 接続アドレス]:HTTP プロトコルエンドポイントを入力します。SelectDB コンソールの セクションから [HTTP プロトコルエンドポイント] をコピーできます。パブリック IP とプライベート IP の両方がサポートされています。
[ユーザー名]:SelectDB データウェアハウスのユーザー名を入力します。
[パスワード]:指定した SelectDB データウェアハウスのユーザー名のパスワードを入力します。
データ同期タスクの開発
同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。
単一テーブルのオフライン同期タスクの設定ガイド
手順については、「コードレス UI を使用したオフライン同期タスクの設定」および「コードエディタを使用したオフライン同期タスクの設定」をご参照ください。
コードエディタのパラメーターの完全なリストとスクリプトデモについては、「付録:SelectDB のスクリプトデモとパラメーターの説明」をご参照ください。
データベース全体のオフライン同期タスクの設定
サポートされているデータソース:MySQL および PostgreSQL
手順については、「データベース全体のオフライン同期タスクの設定」をご参照ください。
付録: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 |