通過資料同步APS(AnalyticDB Pipeline Service)功能,您可以將SLS中指定時間點之後產生的資料即時同步至AnalyticDB for MySQL叢集,以滿足日誌資料即時分析的需求。
前提條件
AnalyticDB for MySQL叢集與Log ServiceSLS的Project和Logstore位於同一地區。具體操作,請參見建立叢集和建立Project和Logstore。
已建立AnalyticDB for MySQL叢集的資料庫帳號。
如果是通過阿里雲帳號訪問,只需建立高許可權帳號。
如果是通過RAM使用者訪問,需要建立高許可權帳號和普通帳號並且將RAM使用者綁定到普通帳號上。
AnalyticDB for MySQL叢集中已建立目標庫表。
企業版、基礎版或湖倉版已在AnalyticDB for MySQL叢集中建立Job型資源群組。
注意事項
目前AnalyticDB for MySQL叢集中的一張表僅支援同步處理記錄服務中的一個Logstore。若您需要同步多個Logstore,請建立多個資料表。
費用說明
按照資料同步鏈路使用的ACU數按量收取ACU彈性資源費用。計費詳情,請參見產品定價。
操作步驟
您可以通過Log Service控制台和AnalyticDB for MySQL控制台建立同步任務,其區別如下:
通過Log Service控制台建立同步任務:僅支援匯入同一阿里雲帳號的SLS資料,您只需手動建立資料同步鏈路,系統將根據建立同步鏈路時填寫的
SLS Project及SLS logstore參數自動建立SLS資料來源。通過AnalyticDB for MySQL控制台建立同步任務:支援跨阿里雲帳號匯入SLS資料,您需按順序操作,首先建立SLS資料來源,然後基於該資料來源再建立同步鏈路。
Log Service控制台建立同步任務
步驟一:建立資料來源及同步鏈路
在Project列表地區,單擊目標Project,在左側導覽列單擊
,進入日誌庫頁簽,依次展開目標Logstore下的頁簽。單擊,單擊AnalyticDB右側的+。
在彈出的投遞提示對話方塊中選擇前往ADB控制台建立。

在ADB for MySQL 日誌同步頁面配置資料來源及目標端配置、目標庫表配置和同步配置。
資料來源及目標端配置的參數說明如下:
參數名稱
參數說明
資料鏈路名稱
資料鏈路名稱。系統預設按資料來源類型與目前時間產生名稱,可按需修改。
SLS Project
SLS的Project。
SLS Logstore
SLS的Logstore。
目標ADB執行個體
選擇AnalyticDB for MySQL叢集。
ADB帳號
AnalyticDB for MySQL叢集的資料庫帳號。
ADB密碼
AnalyticDB for MySQL叢集資料庫帳號的密碼。
目標庫表配置的參數說明如下:
參數名稱
參數說明
庫名
AnalyticDB for MySQL叢集的資料庫名稱。
表名
AnalyticDB for MySQL叢集的資料表名稱。
源端資料預覽
單擊點擊查看最近10條LogStore資料,可以查看源端SLS的10條資料。
Schema欄位對應
AnalyticDB for MySQL叢集表的欄位自動填滿目標欄位和源欄位。如果目標欄位與源欄位的映射關係不正確,請手動修改。
例如:AnalyticDB for MySQL叢集資料表的欄位名為name,源端SLS資料欄位名為user_name,系統會自動以name填充源欄位和目標欄位,此時您需要手動修改源欄位為user_name。
同步配置的參數說明如下:
參數名稱
參數說明
投遞起始位點
同步任務啟動時會從選擇的時間點開始消費SLS資料。
例如:投遞起始位點選擇為2024-04-09 13:10,系統則會從2024年4月9日13:10之後的第一條資料開始消費。
髒資料處理模式
同步資料時,若目標表中的欄位類型與源端實際同步的SLS資料類型不匹配,則會導致同步失敗。例如源端的資料是
abc,而目標表中的欄位類型是int,此時會因為無法轉換而導致同步異常。髒資料處理模式取值如下:
中斷同步(預設值):資料同步終止,您需修改目標表的欄位類型或修改為其他髒資料處理模式,再重啟同步任務。
按NULL處理:髒資料按NULL值寫入目標表,並丟棄髒資料。
例如:SLS一行資料有3個欄位(col1、col2、col3),其中col2欄位為髒資料,則col2欄位資料轉為NULL值寫入,col1、col3欄位資料正常寫入。
Unix時間戳記轉datetime
若SLS源欄位是Unix時間戳記(例如1710604800),而目標欄位類型是DATETIME或TIMESTAMP,需開啟此功能進行轉換。開啟後,您可根據SLS資料的時間戳記精度選擇秒級精度時間戳記、毫秒級精度時間戳記和微秒級精度時間戳記。
Job型資源群組
選擇執行增量同步處理任務的Job型資源群組。
重要僅AnalyticDB for MySQL叢集為企業版、基礎版或湖倉版時,填寫該參數。
增量同步處理所需ACU數
初始情況下,執行增量同步處理任務所使用的ACU數。固定取值為1 ACU,取值範圍為[1,Job型資源計算最大資源]。
同步鏈路建立後,AnalyticDB for MySQL會根據業務負載,自動彈性調整執行增量同步處理任務所使用的ACU數,最大為64 ACU,最小為1 ACU。
重要僅AnalyticDB for MySQL叢集為企業版、基礎版或湖倉版時,填寫該參數。
參數配置完成後,單擊提交。
此時,系統會自動在AnalyticDB for MySQL中建立SLS資料來源和資料同步鏈路,並自動跳轉至AnalyticDB for MySQL控制台的SLS/Kafka資料同步頁面。
步驟二:啟動同步任務
單擊目標資料鏈路操作列的啟動。
啟動後,單擊右上方查詢,狀態變為正在運行即資料同步任務啟動成功。
步驟三:管理同步任務
您可以在操作列執行以下操作:
操作按鈕 | 說明 |
啟動 | 啟動資料同步作業。 |
執行詳情 | 查看資料同步作業的詳情,包括源和目的配置資訊,作業記錄以及運行監控。 |
編輯 | 可以編輯作業的起始位點,欄位對應等。 |
暫停 | 暫停資料同步作業。暫停後的作業可以再次點擊啟動恢複同步,恢複同步會自動從暫停時所處的位點繼續同步。 |
刪除 | 刪除資料同步作業。刪除後無法恢複,請謹慎操作。 |
AnalyticDB for MySQL控制台建立同步任務
步驟一:配置RAM授權(可選)
如果您僅同步當前阿里雲帳號下的SLS資料,可跳過該步驟,直接建立資料來源。具體操作,請參見步驟二:建立資料來源。
跨帳號同步SLS資料到AnalyticDB for MySQL時,您需要在源端建立RAM角色,並為RAM角色精確授權、修改RAM角色的信任策略。
建立RAM角色。具體操作,請參見建立可信實體為阿里雲帳號的RAM角色。
說明配置選擇信任的雲帳號參數時,選擇其他雲帳號,填寫AnalyticDB for MySQL叢集所屬的阿里雲帳號ID。您可以登入帳號中心,在概覽頁面查看帳號ID。
通過精確授權,為RAM角色授予AliyunAnalyticDBAccessingLogRolePolicy許可權。
修改RAM角色的信任策略,允許指定阿里雲帳號下的AnalyticDB for MySQL叢集可以扮演該RAM角色。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里雲帳號ID>:root" ], "Service": [ "<阿里雲帳號ID>@ads.aliyuncs.com" ] } } ], "Version": "1" }說明阿里雲帳號ID為步驟1中填寫的AnalyticDB for MySQL叢集所屬的阿里雲帳號ID,配置時無需填寫角括弧(<>)。
步驟二:建立資料來源
如果您已添加了SLS資料來源,可跳過該步驟,直接建立同步鏈路,詳情請參見步驟三:建立同步鏈路。
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,然後單擊目的地組群ID。
在左側導覽列,單擊。
單擊右上方的建立資料來源。
在建立資料來源頁面進行參數配置。參數說明如下表所示:
參數名稱
參數說明
資料來源類型
選擇資料來源類型SLS。
資料來源名稱
系統預設按資料來源類型與目前時間產生名稱,可按需修改。
資料來源描述
資料來源備忘描述,例如應用情境、應用業務限制等。
部署模式
目前僅支援阿里雲執行個體。
SLS Project所在地區
SLS Project所在地區。
說明目前僅支援選擇AnalyticDB for MySQL叢集所在地區。
是否跨阿里雲主帳號
AnalyticDB for MySQL叢集支援同步相同阿里雲帳號或其他阿里雲帳號(跨帳號)的SLS資料。
SLS Project
源端SLS的Project。
SLS Logstore
源端SLS的Logstore。
參數配置完成後,單擊建立。
步驟三:建立同步鏈路
在左側導覽列,單擊。
單擊右上方的建立同步鏈路。
在建立同步鏈路頁面,配置資料來源及目標端配置、目標庫表配置和同步配置,參數說明如下表:
資料來源及目標端配置的參數說明如下:
參數名稱
參數說明
資料鏈路名稱
資料鏈路名稱。系統預設按資料來源類型與目前時間產生名稱,可按需修改。
資料來源
選擇已有的SLS資料來源,也可建立資料來源。
目標端類型
企業版、基礎版及湖倉版叢集此處選擇數倉-ADB儲存。
數倉版叢集無需填寫該參數。
ADB帳號
AnalyticDB for MySQL叢集的資料庫帳號。
ADB密碼
AnalyticDB for MySQL叢集資料庫帳號的密碼。
目標庫表配置的參數說明如下:
參數名稱
參數說明
庫名
AnalyticDB for MySQL叢集的資料庫名稱。
表名
AnalyticDB for MySQL叢集的資料表名稱。
源端資料預覽
單擊點擊查看最近10條LogStore資料,可以查看源端SLS的10條資料。
Schema欄位對應
AnalyticDB for MySQL叢集表的欄位自動填滿目標欄位和源欄位。如果目標欄位與源欄位的映射關係不正確,請手動修改。
例如:AnalyticDB for MySQL叢集資料表的欄位名為name,源端SLS資料欄位名為user_name,系統會自動以name填充源欄位和目標欄位,此時您需要手動修改源欄位為user_name。
同步配置的參數說明如下:
參數名稱
參數說明
投遞起始位點
同步任務啟動時會從選擇的時間點開始消費SLS資料。
例如:投遞起始位點選擇為2024-04-09 13:10,系統則會從2024年4月9日13:10之後的第一條資料開始消費。
髒資料處理模式
同步資料時,若目標表中的欄位類型與源端實際同步的SLS資料類型不匹配,則會導致同步失敗。例如源端的資料是
abc,而目標表中的欄位類型是int,此時會因為無法轉換而導致同步異常。髒資料處理模式取值如下:
中斷同步(預設值):資料同步終止,您需修改目標表的欄位類型或修改為其他髒資料處理模式,再重啟同步任務。
按NULL處理:髒資料按NULL值寫入目標表,並丟棄髒資料。
例如:SLS一行資料有3個欄位(col1、col2、col3),其中col2欄位為髒資料,則col2欄位資料轉為NULL值寫入,col1、col3欄位資料正常寫入。
Unix時間戳記轉datetime
若SLS源欄位是Unix時間戳記(例如1710604800),而目標欄位類型是DATETIME或TIMESTAMP,需開啟此功能進行轉換。開啟後,您可根據SLS資料的時間戳記精度選擇秒級精度時間戳記、毫秒級精度時間戳記和微秒級精度時間戳記。
上述參數配置完成,單擊提交。
步驟四:啟動資料同步任務
在資料同步頁面,選擇建立成功的資料同步任務,在操作列單擊啟動。
單擊右上方查詢,狀態變為正在運行即資料同步任務啟動成功。
步驟五:管理資料來源
在資料同步頁面,您可以在操作列執行以下操作。
操作按鈕 | 說明 |
啟動 | 啟動資料同步作業。 |
執行詳情 | 查看資料同步作業的詳情,包括源和目的配置資訊,作業記錄以及運行監控。 |
編輯 | 可以編輯作業的起始位點,欄位對應等。 |
暫停 | 暫停資料同步作業。暫停後的作業可以再次點擊啟動恢複同步,恢複同步會自動從暫停時所處的位點繼續同步。 |
刪除 | 刪除資料同步作業。刪除後無法恢複,請謹慎操作。 |