DataWorks では、Amazon Redshift データソースからデータを読み取るための Amazon Redshift Reader および Amazon Redshift にデータを書き込むための Amazon Redshift Writer を提供しています。コードレス UI またはコードエディタを使用して、Amazon Redshift データソースの同期タスクを構成できます。
サポートされる Amazon Redshift のバージョン
Amazon Redshift は redshift-jdbc4.2 ドライバー 2.1.0.1 を使用します。ドライバーの機能の詳細については、「Amazon Redshift の JDBC ドライバーのバージョンを設定する」をご参照ください。
データの型マッピング
次の表では、Amazon Redshift のデータの型と SQL/Java のデータの型との間のマッピングについて説明します。詳細については、「Amazon Redshift の公式ドキュメント」をご参照ください。
|
Amazon Redshift のデータの型 |
SQL のデータの型 |
Java のデータの型 |
|
BIGINT |
SQL_BIGINT |
LONG |
|
BOOLEAN |
SQL_BIT |
Boolean |
|
CHAR |
SQL_CHAR |
STRING |
|
DATE |
SQL_TYPE_DATE |
java.sql.Date |
|
DECIMAL |
SQL_NUMERIC |
BigDecimal |
|
DOUBLE PRECISION |
SQL_DOUBLE |
Double |
|
GEOMETRY |
SQL_ LONGVARBINARY |
byte[] |
|
INTEGER |
SQL_INTEGER |
INTEGER |
|
OID |
SQL_BIGINT |
LONG |
|
SUPER |
SQL_LONGVARCHAR |
STRING |
|
REAL |
SQL_REAL |
Float |
|
SMALLINT |
SQL_SMALLINT |
SHORT |
|
TEXT |
SQL_VARCHAR |
STRING |
|
TIME |
SQL_TYPE_TIME |
java.sql.Time |
|
TIMETZ |
SQL_TYPE_TIME |
java.sql.Time |
|
TIMESTAMP |
SQL_TYPE_ TIMESTAMP |
java.sql.Timestamp |
|
TIMESTAMPTZ |
SQL_TYPE_ TIMESTAMP |
java.sql.Timestamp |
|
VARCHAR |
SQL_VARCHAR |
STRING |
データ同期の事前準備
DataWorks でデータを同期する前に、データソースと サーバーレスリソースグループ または Data Integration の専用リソースグループとの間にネットワーク接続を確立し、リソースグループが内部ネットワーク経由でデータソースにアクセスできるようにする必要があります。データ同期にはサーバーレスリソースグループの使用を推奨します。ネットワーク接続の確立方法については、「ネットワーク接続性ソリューション」をご参照ください。
データソースの作成
DataWorks で同期タスクを開発する前に、「データソース管理」の手順に従って、必要なデータソースを DataWorks に追加する必要があります。DataWorks コンソールでパラメーターの説明を確認し、データソース追加時の各パラメーターの意味を理解してください。
以下は、Amazon Redshift データソースの主なパラメーターです。
-
JDBC URL:IP アドレス、ポート番号、データベース、接続パラメーターを含む JDBC 接続文字列です。パブリック IP アドレスおよびプライベート IP アドレスの両方がサポートされています。パブリック IP アドレスを使用する場合は、Data Integration のリソースグループがご利用の Amazon Redshift インスタンスが配置されているホストにアクセスできることを確認してください。
-
ユーザー名:ご利用の Amazon Redshift データベースのユーザー名です。
-
パスワード:指定されたユーザー名のパスワードです。
データ同期タスクの開発
同期タスクの構成エントリポイントおよび手順については、以下の構成ガイドをご参照ください。
単一テーブルのデータを同期するバッチ同期タスクの構成
-
構成手順の詳細については、「コードレス UI を使用したバッチ同期タスクの構成」および「コードエディタを使用したバッチ同期タスクの構成」をご参照ください。
-
コードエディタ用のパラメーター一覧およびスクリプト例については、「付録:スクリプト例およびパラメーターの説明」をご参照ください。
付録:スクリプト例およびパラメーターの説明
コードエディタを使用したバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合は、統一されたスクリプトフォーマット要件に基づき、スクリプト内で関連パラメーターを構成する必要があります。詳細については、「スクリプトモードの構成」をご参照ください。以下は、コードエディタを使用してバッチ同期タスクを構成する際にデータソースで設定が必要なパラメーターについて説明しています。
Reader スクリプト例
{
"stepType": "redshift"
"parameter":
{
"datasource":"redshift_datasource",
"table": "redshift_table_name",
"where": "xxx=3",
"splitPk": "id",
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Reader",
"category": "reader"
}
Reader パラメーター
|
パラメーター |
説明 |
必須 |
デフォルト値 |
|
datasource |
データソースの名前です。DataWorks に追加したデータソースの名前と一致している必要があります。 |
はい |
なし |
|
table |
データを読み取るソーステーブルの名前です。 |
はい |
なし |
|
column |
同期するカラムをカンマ区切りで指定します。例: すべてのカラムを同期する場合は、アスタリスク (*) を使用します。例: |
はい |
なし |
|
where |
WHERE 句です。タスクは column、table、where パラメーターを連結して SQL ステートメントを生成し、ソーステーブルからデータを読み取ります。テスト目的で limit 10 を設定することも可能です。 当日に生成されたデータを読み取るには、where パラメーターを gmt_create > $bizdate に設定します。
|
いいえ |
なし |
|
splitPk |
データシャーディングに使用するカラムです。指定すると、システムは並列スレッドを使用してデータを同期し、効率が向上します。 |
いいえ |
なし |
Writer スクリプト例
{
"stepType": "redshift",// プラグイン名。
"parameter":
{
"postSql":["delete from XXX;"],
"preSql":["delete from XXX;"],
"datasource":"redshift_datasource",// データソース名。
"table": "redshift_table_name",// テーブル名。
"writeMode": "insert",
"batchSize": 2048,
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Writer",
"category": "writer"
}
Writer パラメーター
|
パラメーター |
説明 |
必須 |
デフォルト |
|
datasource |
データソースの名前です。DataWorks で構成した名前と一致している必要があります。 |
はい |
N/A |
|
table |
送信先テーブルの名前です。 |
はい |
N/A |
|
column |
データを書き込む送信先カラムをカンマ区切りで指定します。例: 順序通りにすべてのカラムに書き込む場合は、アスタリスク (*) を使用します。例: |
はい |
N/A |
|
preSql |
同期タスク開始前に実行する SQL ステートメントです。たとえば、ターゲットテーブルから古いデータを削除できます。コードレス UI では 1 つの文を、コードエディタでは複数の文を指定できます。 |
いいえ |
N/A |
|
postSql |
同期タスク完了後に実行する SQL ステートメントです。たとえば、タイムスタンプを追加できます。コードレス UI では 1 つの文を、コードエディタでは複数の文を指定できます。 |
いいえ |
N/A |
|
batchSize |
1 バッチあたりに書き込むレコード数です。 |
いいえ |
2048 |
|
writeMode |
書き込みモードです。 |
いいえ |
insert |