單表實時ETL任務根據來源的Hologres表結構在目標Hologres數據源中創建目標表,并寫入來源表的數據。本文為您介紹如何將Hologres單表數據實時ETL至另一個Hologres任務。
使用限制
僅支持使用Serverless資源組,詳情請參見新增和使用Serverless資源組。
Hologres版本必須在2.1以上。
不支持Hologres分區表的增量同步。
不支持Hologres表DDL變更消息同步。
Hologres增量同步支持的數據類型包括以下類型:
INTEGER、BIGINT、TEXT、CHAR(n)、VARCHAR(n)、REAL、JSON、SERIAL、OID、INT4[]、INT8[]、FLOAT8[]、BOOLEAN[]、TEXT[]。
準備環境
在進行Hologres單表實時同步至Hologres數據集成任務需要基于Serverless資源組,并確保資源組與需要同步的數據源連通性正常。
準備資源組。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的資源組列表,進入資源組列表頁面。
在資源組列表頁面單擊新建資源組,創建Serverless資源組,創建詳情請參見使用Serverless資源組。
準備數據庫。(可選)
若您已擁有Hologres數據庫,則可跳過此步驟。
登錄Hologres控制臺,切換至目標地域后,單擊左側實例列表,進入Hologres引擎實例列表頁面。
單擊新增引擎實例,增購實時數倉Hologres獨享實例。詳情請參見購買Hologres。
步驟一:新建數據源(可選)
DataWorks數據集成功能基于數據源與資源組,在創建同步任務之前,需要提前創建好對應的數據源,在當前最佳實踐中需要新增兩個Hologres數據源,作為數據集成的來源數據源與目標數據源。
進入數據源頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的管理中心,在下拉框中選擇對應工作空間后單擊進入管理中心。
進入工作空間管理中心頁面后,單擊左側導航欄的
,進入數據源頁面。
在數據源列表頁面,單擊新增數據源。在新增數據源彈窗內單擊Hologres數據源,進入創建Hologres數據源頁面。
Hologres數據源創建配置參數詳情如下表:
配置參數
參數詳情
數據源名稱
自定義數據源名稱。
認證方式
默認為阿里云賬號及阿里云RAM角色。
說明當前不支持通過AccessID、AccessKey認證方式創建數據源,如您存在特殊場景請提交工單咨詢。
所屬云賬號
當前案例選擇當前阿里云主賬號。
地域
選擇Hologres引擎實例所在區域。
Hologres實例
選擇對應的來源或去向引實例名。
數據庫名稱
填寫相應的數據庫名。
默認訪問身份
當前實例開發環境默認為執行者。
當前實例生產環境選擇阿里云主賬號。
說明如您當前登錄的為主賬號:可以選擇所有身份。
如您當前登錄的為子賬號/RAM角色。
具備AdministratorAccess:可以選擇所有身份。
不具備AdministratorAccess:僅能選擇自己的身份。
認證選項
無認證
完成參數配置后,資源組進行連通性測試成功后單擊完成創建即可正常創建數據源,若連通性測試失敗,則需參考網絡連通方案對資源組網絡進行配置。
步驟二:創建同步任務
進入數據集成頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的數據集成,在下拉框中選擇對應工作空間后單擊進入數據集成。
在數據集成頁面的創建同步任務模塊進行配置數據集成的來源與去向。
來源:下拉選擇Hologres。
去向:下拉選擇Hologres。
配置完成數據的來源與去向后,單擊開始創建,進入數據集成的新建同步任務頁面。
在新建同步任務頁面的配置如下表所示:
模塊
配置項
配置說明
圖示
基本配置
數據來源與去向
默認為Hologres至Hologres。
新任務名稱
可自定義任務名。
說明如果生成實時任務,此名稱等同于實時任務名稱
同步類型
下拉選擇單表實時類型。
同步步驟
保持默認勾選:
結構遷移
全量同步
增量同步
網絡與資源配置
數據來源
選擇Hologres對應的來源數據源。
同步資源組
選擇準備環境階段創建的資源組。
數據去向
選擇Hologres對應的去向數據源。
配置完成后,單擊下一步,繼續配置同步任務。
配置來源節點。
單擊來源組件Hologres,編輯Hologres來源信息。
選擇需要同步的Hologres的Schema和表名。
單擊右上角的數據采樣,在數據輸出預覽對話框中指定好采樣條數,單擊開始采集按鈕,可以對指定的Hologres進行數據采樣,預覽Hologres中的數據,為后續數據處理節點的數據預覽和可視化配置提供輸入。
配置數據處理節點。
單擊按鈕可以增加數據處理節點,目前提供五種可選數據處理方式,您可根據需求進行順序編排,在任務運行時會按照編排的先后順序及逆行數據處理,這五種組件配置詳情可參見:數據脫敏、字符串替換、數據過濾、JSON解析、字段編輯與賦值。
配置數據去向節點。
單擊頁面上返回的Hologres,編輯Hologres去向源信息。
配置基本信息。
Schema:選擇需要寫入的Hologres Schema。
目標表:選擇需要寫入的Hologres表是自動建表還是使用已有表,當前案例選擇自動建表。
表名:填寫或者選擇要寫入的Hologres表名。
作業類型:可選擇重放或插入,當前案例選擇重放。
說明重放是表示鏡像功能,即源端INSERT一條記錄,Hologres里也INSERT一條,源端UPDATE或者DELETE,Hologres里也相應UPDATE或者DELETE。
插入是表示把Hologres當作流存儲一樣對待,全部使用insert保存源端過來的數據。
寫入沖突策略:可選擇覆蓋或忽略,當前案例選擇覆蓋。
編輯表結構。當選擇自動建表時,您需要單擊編輯表結構按鈕,在彈框中編輯表結構。同時,支持您單擊根據上游節點輸出列重新生成表結構按鈕,自動根據上游節點輸出列,生成表結構。您可以在自動生成的表結構中選擇一列配置為主鍵。您可根據需要選擇分區列(分區表會使用每一個分區值創建一個物理子表,一般情況下不需要選擇分區字段),根據需要調整建表屬性,單擊保存按鈕即可保存建表配置。
說明Hologres表必須有主鍵,否則無法保存配置。
配置字段映射。
保存建表結構或選擇已有表時,會自動按照同名映射原則生成上游列與Hologres表列之間的映射,可根據同名映射、同行映射進行自動映射,也可在取消映射后根據需要手動調整映射規則。
說明不允許上游多列映射至下游同一列。
當上游某列沒有映射下游時,對應列的數據不會寫入下游Hologres數據源之中。
配置上游流入動態字段處理策略。
上游流入動態字段處理策略用于控制當訂閱到的源端Hologres表增量數據識別到有新增列時,目標端Hologres表的處理策略。同步任務根據源端輸入數據內容的不同,能夠解析出不同列名和列值,并輸出到Hologres節點的列。
高級參數配置。
單擊右上角的高級參數配置,對同步任務運行時并行度進行配置,您可以根據Hologres表數據量和變更頻率以及分片數量確定對應配置項取值。
自動設置運行時配置:當需要自定義任務并行度時該配置項選擇false。
Worker數:任務啟動進程數。
單Worker并發數:每個進程包含的線程數。
模擬運行。
完成上述所有任務配置后,您可以通過模擬運行功能,模擬整個任務針對少量采樣數據的處理,都得到數據寫入Hologres表后的結果。當任務存在配置錯誤、模擬運行過程中異常或者產生臟數據時會實時反饋出異常信息,能夠幫助您快速評估任務配置的正確性和是否能得到預期結果。
單擊頁面右上角模擬運行,在彈出對話框中設置針對Hologres的采樣參數(開始時間和采樣條數)。
單擊開始采樣得到采樣數據。
單擊預覽按鈕,模擬整個任務針對少量采樣數據的處理。
完成上述所有任務配置后,并完成模擬運行驗證配置正確、寫入結果符合預期,單擊完成配置按鈕,完成同步任務配置。
步驟三:運維同步任務
啟動同步任務。
完成配置之后,界面會自動跳轉到任務列表,您可以單擊對應任務的啟動按鈕,啟動同步任務。
查看同步任務運行狀態
創建完成同步任務后,您可以在同步任務頁面,找到已創建的同步任務,單擊任務名稱,查看任務的運行詳情。任務詳情分為以下三個部分:
基本信息:您可以看到同步任務的數據源信息、綁定的資源組以及同步方案等信息。
執行狀態:Hologres到Hologres的實時同步任務分為結構遷移、全量初始化以及實時數據同步三個步驟,您可以查看任務執行狀態,以下為執行狀態的詳細信息:
結構遷移:包含目標表的創建方式(已有表或自動建表),如果是自動建表,將會為您展示建表的DDL。
全量初始化:包含對來源表與目標表數據的全量進度、已寫入數據條數、全量啟動時間、全量完成時間的展示。
實時同步:包含實時同步的統計信息,包含實時的集成進度、DDL記錄、DML記錄和報警信息的展示。
運行日志:數據同步采取了主從架構(master-worker架構),其中包含了Master和Worker,一個同步解決方案任務對應一個master和一個或多個worker,您可以到對應日志中查看相關步驟的詳細信息。
Master:任務初始化、數據分片、worker的協調。
Worker:具體數據分片的讀寫、轉換。
Failover:包含了數據同任務中出現的Failover事件的詳細時間與報錯信息,您可以查看同步任務在最近一次啟動以來的異常恢復記錄。
資源利用率:對數據集成任務占用的資源狀況進行監控及查看,可以根據實際使用率對資源占用做調整。
Hologres單表實時同步至Hologres時,需開啟源端的Hologres數據庫的表Hologres Binlog,詳情可參見訂閱Hologres Binlog。
任務重跑
直接重跑。
不修改任務配置,直接單擊同步任務操作列的更多>重跑,重新運行一次從結構遷移到啟動實時同步的流程。
修改后重跑。
編輯任務,進行修改操作后,單擊完成。這個時候任務的操作會變成應用更新,點擊應用更新會直接觸發修改后的任務重跑,實時同步任務會按照新的配置運行。