全部產品
Search
文件中心

ApsaraDB for SelectDB:通過DataWorks匯入資料

更新時間:Jul 06, 2024

ApsaraDB for SelectDB支援使用DataWorks的Data Integration功能,通過SelectDB Writer匯入表資料。本文以MySQL資料來源為例,介紹如何通過DataWorks同步資料至ApsaraDB for SelectDB

使用限制

  • DataWorks的Data Integration功能僅支援離線寫入ApsaraDB for SelectDB

  • 不支援寫入BITMAP、HLL(HyperLogLog)和QUANTILE_STATE類型的欄位。

資料同步任務開發

新增資料來源

在進行資料同步任務開發時,您需要在DataWorks上分別建立MySQL和SelectDB資料來源。

  1. 建立MySQL資料來源,詳情請參見MySQL資料來源

  2. 建立SelectDB資料來源,詳情請參見建立並管理資料來源。SelectDB資料來源的部分配置參數如下所示:

    參數

    說明

    資料來源名稱

    資料來源的名稱。

    MySQL串連地址

    請填寫JDBC串連串jdbc:mysql://<ip>:<port>/<dbname>

    您可以從ApsaraDB for SelectDB控制台的執行個體詳情 > 網路資訊中擷取VPC地址(或公網地址)和MySQL協議連接埠

    樣本:jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_db

    說明

    當MySQL執行個體和ApsaraDB for SelectDB執行個體屬於同一VPC時,使用VPC地址;不屬於同一個VPC時,使用公網地址

    HTTP串連地址

    請填寫HTTP協議訪問地址<ip>:<port>

    您可以從ApsaraDB for SelectDB控制台的執行個體詳情 > 網路資訊中擷取VPC地址(或公網地址)和HTTP協議連接埠

    樣本:selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080

    說明

    當MySQL執行個體和ApsaraDB for SelectDB執行個體屬於同一VPC時,使用VPC地址;不屬於同一個VPC時,使用公網地址

    使用者名稱

    請填寫ApsaraDB for SelectDB執行個體的使用者名稱。

    密碼

    請填寫ApsaraDB for SelectDB執行個體對應使用者的密碼。

    重要

    為了保證添加資料來源成功,需要將DataWorks資源群組的IP添加到SelectDB等資料來源的白名單,具體操作流程請參考添加白名單。添加白名單時需要區分獨享Data Integration資源群組和公用Data Integration資源群組。

配置單表離線同步任務

您可以選擇嚮導模式或者指令碼模式配置離線同步任務,操作流程請參見:

指令碼模式樣本與參數說明

離線任務指令碼配置方式

使用指令碼模式配置離線任務時,需要按照統一的指令碼格式要求編寫指令碼。指令碼格式要求請參見通過指令碼模式配置離線同步任務

MySQL Reader與SelectDB Writer指令碼樣本

{
	"type":"job",
	"version":"2.0",
	"steps":[
		{
			"stepType":"mysql",
			"parameter":{
				"column":[
          "<id>",
          "<table_id>",
          "<table_no>",
          "<table_name>",
          "<table_status>"
				],
				"connection":[
					{
						"datasource":"<mysql_datasource>",
						"table":[
							"<mysql_table_name>"
						]
					}
				],
				"where":"",
				"splitPk":"",
				"encoding":"UTF-8"
			},
			"name":"Reader",
			"category":"reader"
		},
		{
			"stepType":"selectdb",
			"parameter":{
        "postSql":[
        ],
        "preSql":[
        ],
        "username": "<selectdb_username>",
        "password": "<selectdb_password>",
        "loadUrl":[
          "<ip:port>"
        ],
        "column":[
          "<id>",
          "<table_id>",
          "<table_no>",
          "<table_name>",
          "<table_status>"
				],
        "connection":[
					{
						"datasource":"<selectdb_datasource>",
						"table":[
							"<selectdb_table_name>"
						]
					}
				],
        "maxBatchRows":1000000,
        "loadProps":{
          "format":"csv",
          "column_separator": "\\x01",
          "line_delimiter": "\\x02"
        }
      },
			"name":"Writer",
			"category":"writer"
		}
	],
	"setting":{
		"errorLimit":{
			"record":"0"
		},
		"speed":{
			"throttle":false,
			"concurrent":1
		}
	},
	"order":{
		"hops":[
			{
				"from":"Reader",
				"to":"Writer"
			}
		]
	}
}

指令碼參數

參數

描述

datasource

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

table

需要同步的表名稱。必選參數。

column

目標表需要寫入資料的欄位,欄位之間用英文逗號分隔。必選參數。例如"column":["id","name","age"]。如果要依次寫入全部列,使用(*)表示,例如"column":["*"]

loadUrl

SelectDB的串連地址。必選參數。格式為ip:port。其中ip是SelectDB的VPC地址port是SelectDB叢集的HTTP協議連接埠。例如:selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080

username

訪問SelectDB資料庫的使用者名稱。必選參數。

password

訪問SelectDB資料庫的密碼。必選參數。

preSql

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

postSql

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

maxBatchRows

每批次匯入資料的最大行數。預設為500000。

loadProps

COPY INTO的請求參數,主要用於配置匯入的資料格式。預設JSON格式匯入。如果loadProps沒有配置,或者配置為"loadProps":{},都採用預設的JSON格式。使用JSON格式時,SelectDB僅支援配置為如下模式,其中strip_outer_array=true

"loadProps": {
   "format": "json",
   "strip_outer_array":true
}

如果您需要指定為CSV格式匯入,則可以按照如下方式指定為CSV格式,並配置行、資料行分隔符號。如果您沒有指定行、資料行分隔符號,則預設傳入的資料均會被轉為字串,並以\t作為資料行分隔符號,\n作為行分隔字元,組成CSV檔案進行SelectDB匯入操作。

"loadProps": {
   "format":"csv",
   "column_separator": "\\x01",
   "line_delimiter": "\\x02"
}

支援的欄位類型

ApsaraDB for SelectDB支援的欄位類型如下表所示:

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