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

DataWorks:Amazon Redshift データソース

最終更新日:Jan 11, 2025

DataWorks は、Amazon Redshift データソースとのデータの読み取りおよび書き込みを行うための Amazon Redshift Reader と Amazon Redshift Writer を提供しています。コードレスユーザーインターフェース(UI)またはコードエディターを使用して、Amazon Redshift データソースの同期タスクを設定できます。このトピックでは、Amazon Redshift データソースとのデータ同期機能について説明します。

サポートされている Amazon Redshift のバージョン

Amazon Redshift で使用されるドライバーは、redshift-jdbc4.2 Driver 2.1.0.1 です。ドライバーの機能については、Amazon Redshift 用の JDBC ドライバーバージョンの設定を参照してください。

データ型のマッピング

Amazon Redshift データ型と SQL データ型間のマッピング、および Amazon Redshift データ型と 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

Amazon Redshift データソースのネットワーク接続を確立する

Amazon Redshift データソース用に設定された同期タスクを実行してデータを同期する前に、内部ネットワーク経由でデータソースと Data Integration 専用リソースグループ間のネットワーク接続を確立する必要があります。詳細については、「リソースグループとデータソース間のネットワーク接続を確立する」をご参照ください。

同期タスクを開発する

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

データソースを追加する

特定のデータソースとのデータ同期を行う同期タスクを設定する前に、DataWorks にデータソースを追加する必要があります。詳細については、「データソースを追加および管理する」をご参照ください。 DataWorks に Amazon Redshift データソースを追加する際には、次のパラメーターを設定する必要があります。

  • [JDBC URL]:IP アドレス、ポート番号、データベース名、および接続パラメーターを含む JDBC 接続文字列を指定します。パブリック IP アドレスまたはプライベート IP アドレスを指定できます。パブリック IP アドレスを指定する場合は、Data Integration 専用リソースグループが Amazon Redshift データソースがデプロイされているホストにアクセスできることを確認してください。

  • [ユーザー名]:接続先の Amazon Redshift データベースのユーザー名を指定します。

  • [パスワード]:接続先の Amazon Redshift データベースのパスワードを指定します。

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

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

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

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

Amazon Redshift Reader のコードと Amazon Redshift Reader のコードのパラメーター

Amazon Redshift Reader のコード

{
  "stepType": "redshift" // プラグイン名
  "parameter":
  {
    "datasource":"redshift_datasource", // データソース名
    "table": "redshift_table_name", // テーブル名
    "where": "xxx=3", // where句
    "splitPk": "id", // データシャーディングに使用されるフィールド
    "column": // 読み取るカラム名
    [
      "id",
      "table_id",
      "table_no",
      "table_name",
      "table_status"
    ]
  },
  "name": "Reader",
  "category": "reader"
}

Amazon Redshift Reader のコードのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

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

はい

デフォルト値なし

table

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

はい

デフォルト値なし

column

データを読み取る列の名前。"column":["id","name","age"] のように、名前をカンマ(,)で区切ります。

ソーステーブルのすべての列からデータを読み取る場合は、このパラメーターをアスタリスク(*)に設定します(例:"column":["*"])。

はい

デフォルト値なし

where

WHERE 句。バッチ同期タスクは、columntable、および where パラメーターの値を連結して SQL ステートメントを形成し、その SQL ステートメントを実行してソーステーブルからデータを読み取ります。テストを実行する場合は、where パラメーターを limit 10 に設定できます。

現在の日付に生成されたデータを読み取るには、where パラメーターを gmt_create > $bizdate に設定できます。

  • WHERE 句を使用して、増分データを読み取ることができます。

  • where パラメーターが指定されていないか空の場合、Amazon Redshift Reader はソーステーブルからすべてのデータを読み取ります。

いいえ

デフォルト値なし

splitPk

データシャーディングに使用されるフィールド。このパラメーターを設定すると、ソーステーブルはこのパラメーターの値に基づいてシャーディングされます。その後、Data Integration は並列スレッドを実行してデータを読み取ります。これにより、データの同期をより効率的に行うことができます。

いいえ

デフォルト値なし

Amazon Redshift Writer のコードと Amazon Redshift Writer のコードのパラメーター

Amazon Redshift Writer のコード

{
  "stepType": "redshift",// プラグイン名。
  "parameter":
  {
    "postSql":["delete from XXX;"], // バッチ同期タスクの実行後に実行する SQL ステートメント
    "preSql":["delete from XXX;"], // バッチ同期タスクの実行前に実行する SQL ステートメント
    "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"
}

Amazon Redshift Writer のコードのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

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

はい

デフォルト値なし

table

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

はい

デフォルト値なし

column

データを書き込む列の名前。"column":["id","name","age"] のように、名前をカンマ(,)で区切ります。

宛先テーブルのすべての列にデータを書き込む場合は、このパラメーターをアスタリスク(*)に設定します(例:"column":["*"])。

はい

デフォルト値なし

preSql

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

いいえ

デフォルト値なし

postSql

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

いいえ

デフォルト値なし

batchSize

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

いいえ

2048

writeMode

書き込みモード。値を insert に設定します。

いいえ

insert