全部產品
Search
文件中心

DataWorks:Amazon Redshift資料來源

更新時間:Oct 24, 2024

Amazon Redshift資料來源為您提供讀取和寫入Amazon Redshift的雙向通道,方便您後續可以通過嚮導模式和指令碼模式配置資料同步任務。本文為您介紹Amazon Redshift資料同步能力支援情況。

支援的Amazon Redshift版本

Amazon Redshift使用的驅動版本是redshift-jdbc4.2 Driver 2.1.0.1,驅動能力詳情請參見為Amazon Redshift配置JDBC驅動程式版本

支援的欄位類型

Amazon Redshift的欄位類型請參見Amazon Redshift官方文檔。下面為您羅列當前主要欄位的支援情況。

Amazon Redshift類型

SQL類型

Java類型

BIGINT

SQL_BIGINT

長整型

BOOLEAN

SQL_BIT

Boolean

CHAR

SQL_CHAR

字串

DATE

SQL_TYPE_DATE

java.sql.Date

DECIMAL

SQL_NUMERIC

BigDecimal

DOUBLE PRECISION

SQL_DOUBLE

Double

GEOMETRY

SQL_ LONGVARBINARY

byte[]

INTEGER

SQL_INTEGER

整數

OID

SQL_BIGINT

長整型

SUPER

SQL_LONGVARCHAR

字串

REAL

SQL_REAL

Float

SMALLINT

SQL_SMALLINT

短型

TEXT

SQL_VARCHAR

字串

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

字串

資料同步前準備

在DataWorks上進行資料同步前,您需要將資料來源的網路與Data Integration使用的Serverless資源群組(推薦)或獨享Data Integration資源群組打通,使之通過內網地址進行訪問。網路打通的具體方法可參考:網路連通方案

建立資料來源

在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源詳細的配置參數解釋可在配置介面查看對應參數的文案提示

以下對Amazon Redshift資料來源的幾個配置項進行說明。

  • JDBC URL:請填寫JDBC串連串,包含IP、連接埠號碼、資料庫和串連參數。支援公網IP和私網IP,如果使用公網IP,請確保Data Integration資源群組能夠正常訪問Amazon Redshift所在的主機。

  • 使用者名稱:請填寫Amazon Redshift資料庫的使用者名稱。

  • 密碼:請填寫Amazon Redshift資料庫對應使用者的密碼。

資料同步任務開發

資料同步任務的配置入口和通用配置流程可參見下文的配置指導。

單表離線同步任務配置指導

附錄:指令碼Demo與參數說明

離線任務指令碼配置方式

如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下資料來源的參數配置詳情。

Reader指令碼Demo

{
  "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

資料來源名稱,指令碼模式支援添加資料來源,此配置項填寫的內容必須與添加的資料來源名稱保持一致。

table

選取的需要同步的表名稱。

column

需要同步的欄位列表,欄位之間用英文逗號分隔。例如"column":["id","name","age"]

如果要同步全部列,使用(*)表示,例如"column":["*"]

where

篩選條件,根據指定的columntablewhere條件拼接SQL,並根據該SQL進行資料幫浦。例如在做測試時,可以將where條件指定為limit 10。

在實際業務情境中,通常會選擇當天的資料進行同步,可以將where條件指定為gmt_create>$bizdate

  • where條件可以有效地進行業務增量同步處理。

  • where條件不配置或為空白時,則視作全表同步資料。

splitPk

如果指定splitPk,表示您希望使用splitPk代表的欄位進行資料分區。資料同步系統會啟動並發任務進行資料同步,以提高資料同步的效能。

Writer指令碼Demo

{
  "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

資料來源名稱,指令碼模式支援添加資料來源,此配置項填寫的內容必須與添加的資料來源名稱保持一致。

table

需要寫入的表名稱。

column

目標表需要寫入資料的欄位,欄位之間用英文逗號分隔。例如"column":["id","name","age"]

如果要依次寫入全部列,使用(*)表示,例如"column":["*"]

preSql

執行資料同步任務之前率先執行的SQL語句。目前嚮導模式僅允許執行一條SQL語句,指令碼模式可以支援多條SQL語句,例如清除舊資料。

postSql

執行資料同步任務之後執行的SQL語句。目前嚮導模式僅允許執行一條SQL語句,指令碼模式可以支援多條SQL語句,例如加上某一個時間戳記。

batchSize

每批次匯入的最巨量資料條數。

2048

writeMode

目前只支援insert。

insert