StarRocks數(shù)據(jù)源
StarRocks數(shù)據(jù)源為您提供讀取和寫入StarRocks的雙向通道,本文為您介紹DataWorks的StarRocks數(shù)據(jù)同步的能力支持情況。
支持的版本
支持EMR Serverless StarRocks 2.5和3.1版本。
支持EMR on ECS:StarRocks 2.1版本。詳情請參見:StarRocks概述。
支持社區(qū)版StarRocks。社區(qū)版StarRocks請參見:StarRocks官方網(wǎng)站。
說明社區(qū)版StarRocks的開放性較強(qiáng),若在數(shù)據(jù)源使用過程中出現(xiàn)適配性問題,歡迎提交工單反饋。
支持的字段類型
支持大部分StarRocks類型,包括數(shù)值類型、字符串類型、日期類型。
數(shù)據(jù)同步前準(zhǔn)備
為保證資源組網(wǎng)絡(luò)連通性,您需要提前將后續(xù)要使用的DataWorks資源組的IP地址添加至EMR Serverless StarRocks實(shí)例的內(nèi)網(wǎng)白名單中,同時,還需要允許該網(wǎng)段訪問9030、8030、8040端口。
DataWorks資源組的白名單IP地址請參見:添加白名單。
添加EMR Serverless StarRocks實(shí)例白名單的操作入口如下。
創(chuàng)建數(shù)據(jù)源
在進(jìn)行數(shù)據(jù)同步任務(wù)開發(fā)時,您需要在DataWorks上創(chuàng)建一個對應(yīng)的數(shù)據(jù)源,操作流程請參見創(chuàng)建并管理數(shù)據(jù)源,詳細(xì)的配置參數(shù)解釋可在配置界面查看對應(yīng)參數(shù)的文案提示。
創(chuàng)建數(shù)據(jù)源時JDBC URL拼接方式如下:
如果使用的是阿里云emr starrocks Serverless,則JDBC URL的拼接方式是:
jdbc:mysql://<FE URL>:<FE查詢端口>/<數(shù)據(jù)庫名稱>,其中:
FE信息:您可以在實(shí)例詳情頁獲取。
數(shù)據(jù)庫:使用EMR StarRocks Manager連接實(shí)例后,可以在SQL Editor或者元數(shù)據(jù)管理查看到對應(yīng)的數(shù)據(jù)庫。
如果需要創(chuàng)建數(shù)據(jù)庫,可以直接在SQL Editor里執(zhí)行SQL命令進(jìn)行創(chuàng)建。
數(shù)據(jù)同步任務(wù)開發(fā)
數(shù)據(jù)同步任務(wù)的配置入口和通用配置流程可參見下文的配置指導(dǎo)。
單表離線同步任務(wù)配置指導(dǎo)
腳本模式配置的全量參數(shù)和腳本Demo請參見下文的附錄:腳本Demo與參數(shù)說明。
附錄:腳本Demo與參數(shù)說明
離線任務(wù)腳本配置方式
如果您配置離線任務(wù)時使用腳本模式的方式進(jìn)行配置,您需要按照統(tǒng)一的腳本格式要求,在任務(wù)腳本中編寫相應(yīng)的參數(shù),詳情請參見通過腳本模式配置離線同步任務(wù),以下為您介紹腳本模式下數(shù)據(jù)源的參數(shù)配置詳情。
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腳本參數(shù)
參數(shù) | 描述 | 是否必選 | 默認(rèn)值 |
datasource | StarRocks數(shù)據(jù)源名稱。 | 是 | 無 |
selectedDatabase | StarRocks數(shù)據(jù)庫名稱。 | 否 | StarRocks數(shù)據(jù)源內(nèi)配置的數(shù)據(jù)庫名稱。 |
column | 所配置的表中需要同步的列名集合。 | 是 | 無 |
where | 篩選條件,在實(shí)際業(yè)務(wù)場景中,往往會選擇當(dāng)天的數(shù)據(jù)進(jìn)行同步,將where條件指定為
| 否 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
splitPk | StarRocks Reader進(jìn)行數(shù)據(jù)抽取時,如果指定splitPk,表示您希望使用splitPk代表的字段進(jìn)行數(shù)據(jù)分片,數(shù)據(jù)同步因此會啟動并發(fā)任務(wù)進(jìn)行數(shù)據(jù)同步,提高數(shù)據(jù)同步的效能。推薦splitPk用戶使用表主鍵,因?yàn)楸碇麈I通常情況下比較均勻,因此切分出來的分片也不容易出現(xiàn)數(shù)據(jù)熱點(diǎn)。 | 否 | 無 |
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": [
],
"maxBatchRows": 500000,
"maxBatchSize": 5242880
},
"name": "Writer",
"category": "writer"
}
Writer腳本參數(shù)
參數(shù) | 描述 | 是否必選 | 默認(rèn)值 |
datasource | StarRocks數(shù)據(jù)源名稱。 | 是 | 無 |
selectedDatabase | StarRocks數(shù)據(jù)庫名稱。 | 否 | StarRocks數(shù)據(jù)源內(nèi)配置的數(shù)據(jù)庫名稱。 |
loadProps | StarRocks StreamLoad請求參數(shù)。使用StreamLoad CSV導(dǎo)入,此處可選擇配置導(dǎo)入?yún)?shù)。如果無特殊配置則使用{}??膳渲脜?shù)包括:
| 是 | 無 |
column | 所配置的表中需要同步的列名集合。 | 是 | 無 |
loadUrl | 填寫StarRocks FrontEnd IP、Http Port(一般默認(rèn)是8030),如果有多個FrontEnd節(jié)點(diǎn),可全部配置上,并使用逗號(,)分隔。 | 是 | 無 |
table | 選取的需要同步的表名稱。 | 是 | 無 |
preSql | 執(zhí)行數(shù)據(jù)同步任務(wù)之前率先執(zhí)行的SQL語句。例如,執(zhí)行前清空表中的舊數(shù)據(jù)(truncate table tablename)。 | 否 | 無 |
postSql | 執(zhí)行數(shù)據(jù)同步任務(wù)之后執(zhí)行的SQL語句。 | 否 | 無 |
maxBatchRows | 最大每次寫入行數(shù)。 | 否 | 500000 |
maxBatchSize | 最大每次寫入字節(jié)數(shù)。 | 否 | 5242880 |