StarRocks資料來源為您提供讀取和寫入StarRocks的雙向通道,本文為您介紹DataWorks的StarRocks資料同步的能力支援情況。
支援的版本
支援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獨享資源群組的白名單IP地址可查看以下文檔擷取:
添加EMR Serverless StarRocks執行個體白名單的操作入口如下。
資料同步任務開發
StarRocks資料同步任務的配置入口和通用配置流程指導可參見下文的配置指導,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源。建立資料來源時JDBC URL拼接方式如下:
如果使用的是阿里雲emr starrocks Serverless,則JDBC URL的拼接方式是:
jdbc:mysql://<FE URL>:<FE查詢連接埠>/<資料庫名稱>,其中:
FE資訊:您可以在執行個體詳情頁擷取。
資料庫:使用EMR StarRocks Manager串連執行個體後,可以在SQL Editor或者中繼資料管理查看到對應的資料庫。
如果需要建立資料庫,可以直接在SQL Editor裡執行SQL命令進行建立。
單表離線同步任務配置指導
操作流程請參見通過嚮導模式配置離線同步任務、通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:指令碼Demo與參數說明。
附錄:指令碼Demo與參數說明
附錄:離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要在任務指令碼中按照指令碼的統一格式要求編寫指令碼中的reader參數和writer參數,指令碼模式的統一要求請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下的資料來源的Reader參數和Writer參數的指導詳情。
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條件指定為
| 否 | 無 |
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 | 所配置的表中需要同步的列名集合。 | 是 | 無 |
loadUrl | 填寫StarRocks FrontEnd IP、Http Port(一般預設是8030),如果有多個FrontEnd節點,可全部配置上,並使用逗號(,)分隔。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
preSql | 執行資料同步任務之前率先執行的SQL語句。例如,執行前清空表中的舊資料(truncate table tablename)。 | 否 | 無 |
postSql | 執行資料同步任務之後執行的SQL語句。 | 否 | 無 |