支援的版本
支援EMR Serverless StarRocks 2.5和3.1版本。
支援EMR on ECS:StarRocks 2.1版本。
支援社區版StarRocks。社區版StarRocks請參見:StarRocks官方網站。
說明 社區版StarRocks的開放性較強,若在資料來源使用過程中出現適配性問題,歡迎提交工單反饋。
支援的欄位類型
支援大部分StarRocks類型,包括數實值型別、字串類型、日期類型。
資料同步前準備
為保證資源群組網路連通性,您需要提前將後續要使用的DataWorks資源群組的IP地址添加至EMR Serverless StarRocks執行個體的內網白名單中,同時,還需要允許該網段訪問9030、8030、8040連接埠。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
建立資料來源時JDBC URL拼接方式如下:
如果使用的是阿里雲emr starrocks Serverless,則JDBC URL的拼接方式是:
jdbc:mysql://<FE URL>:<FE查詢連接埠>/<資料庫名稱>,其中:
說明 如果需要建立資料庫,可以直接在SQL Editor裡執行SQL命令進行建立。
資料同步任務開發
資料同步任務的配置入口和通用配置流程可參見下文的配置指導。
附錄:指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要按照統一的指令碼格式要求,在任務指令碼中編寫相應的參數,詳情請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下資料來源的參數配置詳情。
Reader指令碼Demo
{
"stepType": "starrocks",
"parameter": {
"selectedDatabase": "didb1",
"datasource": "starrocks_datasource",
"column": [
"id",
"name"
],
"where": "id>100",
"table": "table1",
"splitPk": "id"
},
"name": "Reader",
"category": "reader"
}
Reader指令碼參數
參數 | 描述 | 是否必選 | 預設值 |
datasource | StarRocks資料來源名稱。 | 是 | 無 |
selectedDatabase | StarRocks資料庫名稱。 | 否 | StarRocks資料來源內配置的資料庫名稱。 |
column | 所配置的表中需要同步的列名集合。 | 是 | 無 |
where | 篩選條件,在實際業務情境中,往往會選擇當天的資料進行同步,將where條件指定為gmt_create>$bizdate 。 | 否 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
splitPk | StarRocks Reader進行資料幫浦時,如果指定splitPk,表示您希望使用splitPk代表的欄位進行資料分區,資料同步因此會啟動並發任務進行資料同步,提高資料同步的效能。推薦splitPk使用者使用表主鍵,因為表主鍵通常情況下比較均勻,因此切分出來的分區也不容易出現資料熱點。 | 否 | 無 |
Writer指令碼Demo
{
"stepType": "starrocks",
"parameter": {
"selectedDatabase": "didb1",
"loadProps": {
"row_delimiter": "\\x02",
"column_separator": "\\x01"
},
"datasource": "starrocks_public",
"column": [
"id",
"name"
],
"loadUrl": [
"1.1.1.1:8030"
],
"table": "table1",
"preSql": [
"truncate table table1"
],
"postSql": [
]
},
"name": "Writer",
"category": "writer"
}
Writer指令碼參數
參數 | 描述 | 是否必選 | 預設值 |
datasource | StarRocks資料來源名稱。 | 是 | 無 |
selectedDatabase | StarRocks資料庫名稱。 | 否 | StarRocks資料來源內配置的資料庫名稱。 |
loadProps | StarRocks StreamLoad請求參數。使用StreamLoad CSV匯入,此處可選擇配置匯入參數。如果無特殊配置則使用{}。可配置參數包括: column_separator:CSV匯入資料行分隔符號,預設\t。 row_delimiter:CSV導行分隔字元,預設\n。 如果您的資料中本身包含\t、\n,則需自訂使用其他字元作為分隔字元,使用特殊字元樣本如下: { "column_separator": "\\x01", "row_delimiter": "\\x02"}
| 是 | 無 |
column | 所配置的表中需要同步的列名集合。 | 是 | 無 |
loadUrl | 填寫StarRocks FrontEnd IP、Http Port(一般預設是8030),如果有多個FrontEnd節點,可全部配置上,並使用逗號(,)分隔。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
preSql | 執行資料同步任務之前率先執行的SQL語句。例如,執行前清空表中的舊資料(truncate table tablename)。 | 否 | 無 |
postSql | 執行資料同步任務之後執行的SQL語句。 | 否 | 無 |