實時ETL同步方案根據來源Kafka指定Topic的內容結構對目的StarRocks表結構做初始化,然后將Kafka指定Topic的存量數(shù)據同步至StarRocks,同時也持續(xù)將增量數(shù)據實時同步至StarRocks。本文為您介紹如何創(chuàng)建Kafka實時ETL同步至StarRocks任務。
使用限制
Kafka的版本需要大于等于0.10.2小于等于2.2.0。
本實踐僅支持使用通用型資源組(新版資源組)。
添加數(shù)據源
新建Kafka數(shù)據源
您可以手動添加Kafka數(shù)據源至DataWorks,詳情請參見:Kafka數(shù)據源。
新建StarRocks數(shù)據源
獲取StarRocks數(shù)據源信息
進入StarRocks產品控制臺。找到您要進行數(shù)據同步的StarRocks集群,在實例詳情界面獲取到StarRocks的集群ID、連接地址、QueryPort、HttpPort信息。
手動添加StarRocks數(shù)據源
詳情請參見StarRocks數(shù)據源。
準備通用型資源組并與數(shù)據源網絡連通
在進行數(shù)據同步前,需要完成您的通用型資源組和數(shù)據源的網絡連通,詳情請參見配置網絡連通。
Kafka與StarRocks支持的網絡類型如下:
Kafka: VPC網絡、公網。
StarRocks: VPC網絡。
創(chuàng)建同步任務
進入數(shù)據集成頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的數(shù)據集成,在下拉框中選擇對應工作空間后單擊進入數(shù)據集成。
在數(shù)據集成同步任務頁面的創(chuàng)建同步任務區(qū)域,選擇來源類型Kafka、去向類型StarRocks,然后點擊開始創(chuàng)建。
配置同步任務基本信息。
新任務名稱:配置同步任務名稱。
同步類型:選擇單表實時。
網絡與資源配置:在下拉框中分別選擇已創(chuàng)建的Kafka數(shù)據源、StarRocks數(shù)據源、通用型資源組,單擊測試所有連通性,保障資源組與數(shù)據源之間的網絡連通性。
單擊下一步。
配置Kafka來源信息。
單擊頁面上方的Kafka來源,編輯Kafka來源信息。
配置Kafka基本信息。
選擇Kafka集群中需要同步的Topic。
其他配置可使用任務創(chuàng)建時生成的默認值,也可根據需要進行修改。
單擊右上角的數(shù)據采樣。
在彈出對話框中指定好開始時間和采樣條數(shù)后,單擊開始采集按鈕,可以對指定的Kafka Topic進行數(shù)據采樣,同時您可以預覽Topic中的數(shù)據,為后續(xù)數(shù)據處理節(jié)點的數(shù)據預覽和可視化配置提供輸入。
編輯數(shù)據處理節(jié)點。
單擊圖標可以增加數(shù)據處理方式。
目前提供5種數(shù)據處理方式,您可根據需要做順序編排,在任務運行時會按照編排的數(shù)據處理先后順序執(zhí)行數(shù)據處理,5種數(shù)據處理方式包括:數(shù)據脫敏、字符串替換、數(shù)據過濾、JSON解析和字段編輯與賦值。
每完成一個數(shù)據處理節(jié)點配置,可以單擊右上角的數(shù)據輸出預覽按鈕,在彈出對話框中,單擊重新獲取上游輸出,模擬得到Kafka Topic采樣數(shù)據經過當前數(shù)據處理節(jié)點處理后的結果。
在數(shù)據輸出預覽窗口,您可以根據需要修改輸入數(shù)據,或者單擊手工構造數(shù)據按鈕自定義輸入數(shù)據,然后單擊預覽按鈕,查看當前數(shù)據處理節(jié)點對數(shù)據的處理結果,當數(shù)據處理節(jié)點處理異常,或者產生臟數(shù)據時,也會實時反饋異常信息,能夠幫助您快速評估數(shù)據處理節(jié)點配置的正確性,以及是否能得到預期結果。
說明數(shù)據輸出預覽強依賴Kafka來源的數(shù)據采樣,在執(zhí)行數(shù)據輸出預覽前需要先在Kafka來源表單中完成數(shù)據采樣。
配置StarRocks去向信息。
單擊頁面上方的StarRocks,編輯StarRocks去向源信息。
配置基本信息。
選擇要寫入的StarRocks表是自動建表還是使用已有表。
填寫或者選擇要寫入的StarRocks表名。
編輯建表結構。
當選擇自動建表時,您需要單擊編輯表結構按鈕,在彈框中編輯建表結構。同時,支持您單擊根據上游節(jié)點輸出列重新生成表結構按鈕,自動根據上游節(jié)點輸出列,生成表結構。您可以在自動生成的表結構中選擇一列配置為主鍵。
說明目前自動建表可視化模式要求StarRocks表必須為有主鍵表,且設置為分桶列,否則無法保存配置
如您想同步到的StarRocks表無主鍵,可使用SQL模式建表或已有表。
配置字段映射。
保存建表結構或者選擇使用已有表時,系統(tǒng)會自動按照同名映射原則生成上游列與StarRocks表列之間的映射,您可根據需要進行調整,支持一個上游列映射到多個StarRocks表列,不允許多個上游列映射到一個StarRocks表列,當上游列未配置到StarRocks表列的映射時,對應列不會寫入StarRocks表。
配置上游流入動態(tài)字段處理策略。
上游流入動態(tài)字段處理策略用于控制上游數(shù)據處理節(jié)點(目前可以生成動態(tài)列的數(shù)據處理節(jié)點只有JSON解析)生成動態(tài)列的處理方式。如果在JSON解析節(jié)點配置了動態(tài)輸出字段,則在StarRocks節(jié)點中會出現(xiàn)上游流入動態(tài)字段處理策略表單。
動態(tài)列指在任務配置中未明確定義列名,而是根據源端輸入數(shù)據內容的不同,能夠解析出不同列名和列值,并輸出到StarRocks節(jié)點的列。對上游流入動態(tài)字段處理策略如下表所示:
參數(shù)
描述
忽略
如果在StarRocks表中無與動態(tài)列同名的列,則忽略該動態(tài)列,將其他配置了映射關系的列寫入StarRocks表。
報錯
如果在StarRocks表中無與動態(tài)列同名的列,則同步任務報錯停止。
高級參數(shù)配置。
單擊頁面右上角的高級參數(shù)配置,對同步任務運行時的并行度和資源進行配置。
參數(shù)
說明
自動設置運行時配置
根據任務配置自動為所有運行時配置項賦值,默認為
true
。Worker數(shù)
任務啟動的Worker總數(shù),默認值:1。
最小值:1
最大值:100
單Worker并發(fā)數(shù)
每個Worker啟動的線程總數(shù),默認值:1。
最小值:1
最大值:100
數(shù)據格式
導入中使用的數(shù)據格式,支持
json
和csv
,默認為json
。報警配置。
為了能夠及時感知到同步任務的異常并做出響應和處理,您可以對同步任務設置不同的報警策略。
單擊右上角的報警配置,進入實時子任務報警設置頁面。
單擊新增報警,配置報警規(guī)則。報警規(guī)則設置可以參考實時同步任務告警設置最佳實踐。
管理報警規(guī)則。對于已創(chuàng)建的報警規(guī)則,您可以通過報警開關控制報警規(guī)則是否開啟,同時,您可以根據報警級別將報警發(fā)送給不同的接收人。
資源組配置。
您可以在右上角的資源組配置處修改任務運行使用的通用型資源組。
模擬運行。
完成上述所有任務配置后,您可以通過模擬運行功能,模擬整個任務針對少量采樣數(shù)據的處理,查看數(shù)據寫入StarRocks表后的結果。當任務配置錯誤、模擬運行過程中異?;蛘弋a生臟數(shù)據時,會實時反饋出異常信息,能夠幫助您快速評估任務配置的正確性,以及是否能得到預期結果。
單擊頁面右上角的模擬運行,在彈出的對話框中設置針對Kafka Topic的采樣參數(shù)(開始時間和采樣條數(shù))。
單擊開始采集得到采樣數(shù)據。
單擊預覽按鈕,模擬整個任務針對少量采樣數(shù)據的處理。
完成上述所有任務配置后,單擊完成配置,完成同步任務的配置。
任務運維
啟動同步任務
完成配置之后,界面會自動跳轉到任務列表頁面,您可以單擊對應任務的操作列的啟動按鈕,啟動同步任務。
查看任務運行狀態(tài)
創(chuàng)建完成同步任務后,您可以在同步任務頁面找到已創(chuàng)建的同步任務,單擊任務名稱或執(zhí)行概況空白處,查看任務的運行詳情。任務詳情分為三個部分:
基本信息:您可以查看同步任務的數(shù)據源信息、綁定的資源組等信息。
執(zhí)行狀態(tài):Kafka到StarRocks的同步任務分為結構遷移和實時數(shù)據同步兩個步驟,您可以查看任務執(zhí)行狀態(tài)。
詳細信息:您可以查看結構遷移以及實時同步的執(zhí)行詳情。
結構遷移中包含目標表的創(chuàng)建方式(已有表或自動建表),如果是自動建表,將會為您展示建表的DDL。
實時同步中包含實時同步的統(tǒng)計信息,包含實時的讀寫流量、臟數(shù)據、Failover和運行日志。
任務重跑
直接重跑
不修改任務配置,直接單擊同步任務操作列的
操作,重跑一次性任務。修改后重跑
編輯任務,進行修改操作后,單擊完成。此時任務的操作會變成應用更新,單擊應用更新會直接觸發(fā)修改后的任務重跑。實時同步任務會按照新的配置運行。