全部產品
Search
文件中心

AnalyticDB:通過資料同步功能同步SLS至湖倉版(推薦)

更新時間:Aug 21, 2024

SLS同步鏈路支援從指定時間位點將Log ServiceLogStore中的資料即時同步至AnalyticDB for MySQL叢集,以滿足近即時產出、全量歷史歸檔、彈性分析等需求。本文介紹如何添加SLS資料來源,建立SLS同步鏈路並啟動任務,以及資料同步後如何進行資料分析和資料來源管理。

前提條件

  • AnalyticDB for MySQL叢集的產品系列為湖倉版

  • 已在AnalyticDB for MySQL叢集中建立Job型資源群組。具體操作,請參見建立資源群組

  • 已建立AnalyticDB for MySQL叢集的資料庫帳號。

  • 已開通Log Service,並在AnalyticDB for MySQL叢集所在地區,建立Log ServiceProject和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資料,可跳過該步驟,直接建立資料來源,詳情請參見建立資料來源

  1. 建立RAM角色。具體操作,請參見建立阿里雲帳號的RAM角色

    說明

    配置選擇信任的雲帳號參數時,選擇其他雲帳號,填寫AnalyticDB for MySQL叢集所屬的阿里雲帳號ID。您可以登入帳號中心,在概覽頁面查看帳號ID

  2. 為RAM角色授予AliyunAnalyticDBAccessingLogRolePolicy許可權。具體操作,請參見為RAM角色精確授權

  3. 修改RAM角色的信任策略。具體操作,請參見修改RAM角色的信任策略

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
                "acs:ram::<阿里雲帳號ID>:root"
            ],
            "Service": [
                "<阿里雲帳號ID>@ads.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
    說明

    阿里雲帳號ID為步驟1中填寫的阿里雲帳號ID,配置時無需填寫角括弧(<>)。

建立資料來源

說明

如果您需要在已有的資料來源管理工作中進行資料同步,可跳過該步驟,直接建立同步鏈路,詳情請參見建立同步鏈路

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。

  2. 在左側導覽列,單擊資料接入>資料來源管理

  3. 單擊右上方新建數據源

  4. 建立資料來源頁面進行參數配置。參數說明如下表所示:

    參數名稱

    參數說明

    數據源類型

    選擇資料來源類型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。

  5. 參數配置完成後,單擊建立

建立同步鏈路

  1. 在左側導覽列,單擊SLS/Kafka數據同步

  2. 在右上方,單擊新建同步鏈路

  3. 新建同步鏈路頁面,進行資料來源的數據源及目標端配置目標庫表配置同步配置

    • 資料來源及目標端配置的參數說明如下:

      參數名稱

      參數說明

      數據鏈路名稱

      資料鏈路名稱。系統預設按資料來源類型與目前時間產生名稱,可按需修改。

      資料來源

      選擇已有的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字段映射

      預設會從Log Service的投遞任務配置中擷取欄位,如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。

      高級配置

      進階配置可以讓您對同步任務進行個人化的配置。如需進行個人化配置,請聯絡支援人員。

  4. 上述參數配置完成,單擊提交

啟動資料同步任務

  1. SLS/Kafka數據同步頁面,選擇建立成功的資料同步任務,在操作列單擊啟動

  2. 單擊右上方查詢,狀態變為正在啟動即資料同步任務啟動成功。

資料分析

同步任務成功後,您可以通過Spark Jar開發對同步到AnalyticDB MySQL的資料進行分析。Spark開發的相關操作,請參見Spark開發編輯器Spark離線應用開發

  1. 在左側導覽列,單擊作業開發 > Spark Jar 開發

  2. 在預設範本中輸入樣本語句,並單擊運行

    -- 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;
  3. 可選:應用列表頁簽中,單擊操作列的日誌,查看Spark SQL啟動並執行日誌。

管理資料來源

資料來源管理頁面,您可以在操作列執行以下操作。

操作按鈕

說明

新建鏈路

快捷跳轉到建立此資料來源下的資料同步或資料移轉任務。

查看

查看資料來源的詳細配置。

編輯

編輯資料來源屬性,如更新資料來源名稱、描述等。

刪除

刪除當前資料來源。

說明

當資料來源下存在資料同步或資料移轉任務時,此資料來源無法直接刪除,需先在SLS/Kafka數據同步頁面,單擊目標同步任務操作列的删除,刪除資料同步或資料移轉任務。