通過數據同步功能同步SLS至湖倉版(推薦)
SLS同步鏈路支持從指定時間位點將日志服務LogStore中的數據實時同步至云原生數據倉庫 AnalyticDB MySQL 版集群,以滿足近實時產出、全量歷史歸檔、彈性分析等需求。本文介紹如何添加SLS數據源,新建SLS同步鏈路并啟動任務,以及數據同步后如何進行數據分析和數據源管理。
前提條件
AnalyticDB for MySQL集群的產品系列為企業版、基礎版或湖倉版。
已在AnalyticDB for MySQL集群中創建Job型資源組。具體操作,請參見新建資源組。
已創建AnalyticDB for MySQL集群的數據庫賬號。
如果是通過阿里云賬號訪問,只需創建高權限賬號。具體操作,請參見創建高權限賬號。
如果是通過RAM用戶訪問,需要創建高權限賬號和普通賬號并且將RAM用戶綁定到普通賬號上。具體操作,請參見創建數據庫賬號和綁定或解綁RAM用戶與數據庫賬號。
已開通日志服務,并在AnalyticDB for MySQL集群所在地域,創建日志服務Project和Logstore。詳細信息,請參見快速入門。
注意事項
目前AnalyticDB for MySQL集群中的一張表僅支持同步日志服務中的一個LogStore。
計費說明
通過AnalyticDB for MySQL數據遷移功能遷移數據至OSS會產生以下費用。
AnalyticDB for MySQL的ACU彈性資源費用,計費項詳情,請參見湖倉版計費項和企業版和基礎版計費項。
OSS的存儲費用、GET類請求次數以及PUT類和其他請求次數的費用。計費項詳情,請參見計費概述。
使用流程
配置RAM授權
跨賬號同步SLS數據到AnalyticDB for MySQL時,您需要在源端創建RAM角色,并為RAM角色精確授權、修改RAM角色的信任策略。如果您僅同步當前賬號下的SLS數據,可跳過該步驟,直接新建數據源,詳情請參見新建數據源。
創建RAM角色。具體操作,請參見創建阿里云賬號的RAM角色。
說明配置選擇信任的云賬號參數時,選擇其他云賬號,填寫AnalyticDB for MySQL集群所屬的阿里云賬號ID。您可以登錄賬號中心,在概覽頁面查看賬號ID。
為RAM角色授予AliyunAnalyticDBAccessingLogRolePolicy權限。具體操作,請參見為RAM角色精確授權。
修改RAM角色的信任策略。具體操作,請參見修改RAM角色的信任策略。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云賬號ID>:root" ], "Service": [ "<阿里云賬號ID>@ads.aliyuncs.com" ] } } ], "Version": "1" }
說明阿里云賬號ID為步驟1中填寫的阿里云賬號ID,配置時無需填寫尖括號(<>)。
新建數據源
如果您需要在已有的數據源管理任務中進行數據同步,可跳過該步驟,直接新建同步鏈路,詳情請參見創建同步鏈路。
登錄云原生數據倉庫AnalyticDB MySQL控制臺,在左上角選擇集群所在地域。在左側導航欄,單擊集群列表,在企業版、基礎版或湖倉版頁簽下,單擊目標集群ID。
在左側導航欄,單擊數據接入>數據源管理。
單擊右上角新建數據源。
在新建數據源頁面進行參數配置。參數說明如下表所示:
參數名稱
參數說明
數據源類型
選擇數據源類型SLS。
數據源名稱
系統默認按數據源類型與當前時間生成名稱,可按需修改。
數據源描述
數據源備注描述,例如湖倉應用場景、應用業務限制等。
部署模式
目前僅支持阿里云實例。
SLS Project所在地域
SLS Project所在地域。
是否跨阿里云主賬號
SLS數據源支持跨阿里云賬號同步SLS數據到AnalyticDB for MySQL。
不跨賬號:同步當前賬號下的SLS數據到AnalyticDB for MySQL。
跨賬號:同步非當前賬號下的SLS數據到AnalyticDB for MySQL。選擇跨賬號同步數據時,需要填寫跨阿里云主賬號和跨阿里云主賬號角色名。
說明跨阿里云主賬號:源端所屬的阿里云賬號ID。
跨阿里云主賬號角色名:源端創建的RAM角色名。即步驟一中創建的RAM角色。
SLS Project
源端SLS的Project。
重要SLS Project列表中會展示阿里云賬號(主賬號)與RAM用戶(子賬號)下所有的Project。若選擇阿里云賬號的Project,請確保RAM用戶有該Project的權限,否則數據無法同步到中AnalyticDB for MySQL。
SLS Logstore
源端SLS的Logstore。
參數配置完成后,單擊創建。
創建同步鏈路
在左側導航欄,單擊SLS/Kafka數據同步。
在右上角,單擊新建同步鏈路。
在新建同步鏈路頁面,進行數據源的數據源及目標端配置、目標庫表配置和同步配置。
數據源及目標端配置的參數說明如下:
參數名稱
參數說明
數據鏈路名稱
數據鏈路名稱。系統默認按數據源類型與當前時間生成名稱,可按需修改。
數據源
選擇已有的SLS數據源,也可新建數據源。
目標端類型
目前僅支持數據湖-OSS存儲。
OSS路徑
AnalyticDB for MySQL湖倉數據在OSS中的存儲路徑。
重要展示的Bucket是與AnalyticDB for MySQL集群同地域的所有Bucket,您可以任意選擇其中一個。請謹慎規劃存儲路徑,創建后不允許修改。
建議選擇一個空目錄,且不能與其他任務的OSS路徑有相互前綴關系,防止數據覆蓋。例如,兩個數據同步任務的OSS路徑分別為oss://adb_demo/test/sls1/和oss://adb_demo/test/,OSS路徑有相互前綴關系,數據同步過程中會有數據覆蓋。
目標庫表配置的參數說明如下:
參數名稱
參數說明
庫名
同步到AnalyticDB for MySQL的數據庫名稱。如果不存在同名數據庫,將新建庫;如果已存在同名數據庫,數據會同步到已存在的數據庫中。庫名命名規則,詳見使用限制。
表名
同步到AnalyticDB for MySQL的表名稱。如果庫中不存在同名表,將新建表;如果庫中已存在同名表,數據同步會失敗。表名命名規則,詳見使用限制。
Schema字段映射
默認會從日志服務的投遞任務配置中獲取字段,如LogStore沒有配置投遞任務,會默認根據最近的日志數據獲取字段。
支持的數據類型:BOOLEAN、INT、BIGINT、FLOAT、DOUBLE、STRING。
支持同步SLS保留字段,詳情請參見保留字段。
重要暫不支持修改目標端字段名。
若任務啟動運行過(包含啟動運行中和已啟動運行完成),不支持修改已有列信息,但支持添加新列。若任務僅創建但未啟動運行,則可正常修改。
分區鍵設置
為目標表設置分區鍵。建議按日志時間或者業務邏輯配置分區,以保證入湖與查詢性能。如不設置,則目標表默認沒有分區。
目標端分區鍵的格式處理方法分為:時間格式化和指定分區字段。
按日期時間分區,分區字段名請選擇一個日期時間字段。格式處理方法選擇時間格式化,選擇源端字段格式和目標分區格式。AnalyticDB for MySQL會按源端字段格式識別分區字段的值,并將其轉換為目標分區格式進行分區。例如,源字段為gmt_created,值為1711358834,源端字段格式為秒級精度時間戳,目標分區格式為yyyyMMdd,則會按20240325進行分區。
按字段值分區,格式處理方法請選擇指定分區字段。
同步配置的參數說明如下:
參數名稱
參數說明
增量同步起始消費位點
同步任務啟動時會從選擇的時間點開始消費SLS數據。取值說明:
最早位點(begin_cursor):自動從SLS數據中最開始的時間點消費數據。
最近位點(end_cursor):自動從SLS數據中最近的時間點獲取數據。
自定義點位:您可以選擇任意一個時間點,系統則會從SLS中第一條大于等于該時間點的數據開始消費。
Job型資源組
指定任務運行的Job型資源組。
增量同步所需ACU數
指定任務運行的Job型資源組ACU數。最小ACU數為2,最大ACU數為Job型資源組可用計算最大資源數。建議多指定一些ACU數,可以提升入湖性能及任務穩定性。
說明創建數據同步任務時,使用Job型資源組中的彈性資源。數據同步任務會長期占用資源,因此系統會從資源組中扣除該任務占用的資源。例如,Job型資源組的計算最大資源為48 ACU,已創建了一個8 ACU的同步任務,在該資源組中創建另一個同步任務時,可選的最大ACU數為40。
高級配置
高級配置可以讓您對同步任務進行個性化的配置。如需進行個性化配置,請聯系技術支持。
上述參數配置完成,單擊提交。
啟動數據同步任務
在SLS/Kafka數據同步頁面,選擇創建成功的數據同步任務,在操作列單擊啟動。
單擊右上角查詢,狀態變為正在啟動即數據同步任務啟動成功。
數據分析
同步任務成功后,您可以通過Spark Jar開發對同步到AnalyticDB MySQL的數據進行分析。Spark開發的相關操作,請參見Spark開發編輯器和Spark離線應用開發。
在左側導航欄,單擊 。
在默認模板中輸入示例語句,并單擊立即執行。
-- Here is just an example of SparkSQL. Modify the content and run your spark program. conf spark.driver.resourceSpec=medium; conf spark.executor.instances=2; conf spark.executor.resourceSpec=medium; conf spark.app.name=Spark SQL Test; conf spark.adb.connectors=oss; -- Here are your sql statements show tables from lakehouse20220413156_adbTest;
可選:在應用列表頁簽中,單擊操作列的日志,查看Spark SQL運行的日志。
管理數據源
在數據源管理頁面,您可以在操作列執行以下操作。
操作按鈕 | 說明 |
新建鏈路 | 快捷跳轉到創建此數據源下的數據同步或數據遷移任務。 |
查看 | 查看數據源的詳細配置。 |
編輯 | 編輯數據源屬性,如更新數據源名稱、描述等。 |
刪除 | 刪除當前數據源。 說明 當數據源下存在數據同步或數據遷移任務時,此數據源無法直接刪除,需先在SLS/Kafka數據同步頁面,單擊目標同步任務操作列的刪除,刪除數據同步或數據遷移任務。 |