全部產品
Search
文件中心

Simple Log Service:通過Log Service訪問RDS MySQL進行資料富化

更新時間:Jun 05, 2026

當資料分別儲存在Log Service的LogStore和RDS MySQL資料庫中時,您可以使用Log Service的資料加工功能,通過RDS的內網地址訪問RDS MySQL資料庫以擷取資料,進而實現資料富化。

工作原理

使用Log Service資料加工功能,通過RDS內網地址訪問RDS MySQL擷取資料進行資料富化的過程如圖所示:

方案概覽

使用Log Service資料加工功能,通過RDS內網地址訪問RDS MySQL擷取資料進行資料富化,只需三步:

  1. 擷取資料加工任務中進階參數配置資訊:先登入RDS控制台擷取RDS MySQL執行個體資訊,再通過OpenAPI調試頁面調用介面擷取進階參數配置資訊。

  2. 在源LogStore中開啟資料加工任務:然後配置資料加工規則進行資料富化。

  3. 將加工結果儲存到目標LogStore中:最後將加工結果資料儲存到目標LogStore。

前提條件

  • 已擷取原始日誌資料。

  • RDS MySQL執行個體與Log ServiceProject需處於同一地區。

步驟一:擷取資料加工任務中進階參數配置資訊

  1. 登入雲資料庫RDS控制台

  2. 設定IP位址區段白名單。有關白名單更多操作,請參見設定白名單

    1. 在左側功能表列,單擊白名單與安全性群組 > 新增白名單分組,填入分組名稱以及組內白名單,組內白名單需固定設定為100.104.0.0/16

    在左側功能表列,單擊執行個體列表找到目標執行個體並單擊進入。

  3. 擷取目標執行個體ID、內網連接埠。

    1. 在左側功能表列,單擊基本資料,在基本資料頁面找到執行個體ID並複製。

    2. 在左側功能表列,單擊資料庫連接,在資料庫連接頁面查看內網連接埠:並複製。

  4. 擷取目標執行個體VpcIdVpcCloudInstanceId

    1. 開啟OpenAPI調試頁面,在參數配置 > 輸入參數頁面找到DBInstanceId執行個體ID文字框並填入複製好的目標執行個體ID。關於調用的介面方法。具體詳情,請參見查詢執行個體詳情

    2. 點擊調用,在調用結果頁面複製VpcIdVpcCloudInstanceId

      "VSwitchId": "xxx",
      "TipsLevel": 0,
      "PayType": "Postpaid",
      "LockMode": "Unlock",
      "DeletionProtection": false,
      "DBInstanceStorageType": "general_essd",
      "InsId": 1,
      "VpcId": "xxx",
      "ConnectionMode": "Standard",
      "VpcCloudInstanceId": "xxx",
      "RegionId": "cn-hangzhou",
      "ConnectionString": "xxx",
      "ExpireTime": ""

步驟二:在源LogStore中開啟資料加工任務

  1. 登入Log Service控制台

  2. 進入資料加工頁面。

    1. 在Project列表地區,單擊目標Project。

    2. 日誌存儲 > 日誌庫頁簽中,單擊目標LogStore。

    3. 在查詢與分析頁面,單擊數據加工

    4. 在資料加工頁面,單擊切換至資料加工(舊版)。

  3. 添加進階參數配置。

    1. 在頁面右上方選擇進階,單擊預覽數據

    2. 添加預覽配置頁面,單擊高級選項,添加如下配置。

      重要

      表格裡所有配置參數中的your_name可自訂但需保持一致,並且與加工規則your_name也需保持一致。

      參數

      參數值

      說明

      config.vpc.vpc_id.your_name

      vpc-uf6mskb0b****n9yj

      目標執行個體VpcId。

      如何擷取請參見,擷取目標執行個體VpcId

      config.vpc.instance_id.your_name

      rm-uf6e61k****ahd7-2024091513

      目標執行個體ID。

      如何擷取請參見,擷取目標執行個體VpcCloudInstanceId

      對於阿里雲同地區自建MySQL資料庫,使用參數config.vpc.instance_ip.your_name指定資料庫在VPC內的IP。

      config.vpc.instance_port.your_name

      3306

      目標執行個體內網地址連接埠號碼。

      如何擷取請參見,擷取目標執行個體內網連接埠

    3. 配置無誤後單擊右下角確定完成配置。

  4. 編輯加工規則。

    1. 在編輯框中添加如下語句。

      文法格式樣本如下,有關資料富化函數以及資源函數具體介紹,請參見,從RDS MySQL資料庫擷取資料進行資料富化資源函數

      /*
      e_table_map()     資料富化函數。
      res_rds_mysql()   拉取函數,從RDS MySQL資料庫中拉取資料庫表內容或SQL執行結果。
      str_format()      字串格式化函數,res_local()中的your_name需和進階參數配置中your_name保持一致。
      field             匹配欄位,在Logstore中的日誌資料與RDS MySQL資料庫表中的資料之間進行匹配時的依據欄位,只有當這個欄位在兩者中的值相同時,才能匹配成功。
      output_fields     輸出欄位集合,當匹配成功後,會返回這些欄位的值,進而產生一條新的日誌。
      */
      e_table_map(
          res_rds_mysql(
              str_format("{}:{}", 
                         res_local("config.vpc.instance_id.your_name"), 
                         res_local("config.vpc.instance_port.your_name")), 
              "資料庫帳號", 
              "資料庫密碼", 
              "資料庫名稱",
              table="資料庫表名"
          ), 
          "field", 
          "output_fields"
      )

      加工語句如下:

      以下規則通過Log ServiceLogStore中process_time_in_ms欄位和RDS MySQL資料庫表process_time_in_ms欄位進行匹配,只有process_time_in_ms欄位的值完全相同,才能匹配成功。匹配成功後,返回RDS MySQL資料庫表中modelpurchase_price欄位及其欄位值,與LogStore中的資料拼接,產生新的資料。

      e_table_map(
        res_rds_mysql(
          str_format("{}:{}",
              res_local("config.vpc.instance_id.test"),
              res_local("config.vpc.instance_port.test")),
          "xxx",
          "xxx","xxx xxx",
          "database",
          table="bicycles",
          primary_keys="process_time_in_ms"),
        "process_time_in_ms",
        ["model","purchase_price"]
      )
  5. 查看加工結果

    加工結果頁簽右側運行結果資訊匯總顯示:源日誌總數 2000、丟棄條數 0、分發條數 2000、失敗 0。主表格中日誌的輸出目標均為 __default__,內容包含原始索引值對欄位(如 remote_addrrequest_methodrequest_uristatusbody_bytes_sent 等),表明加工規則未對日誌進行匹配轉換,資料保持原始狀態分發至預設目標。

    加工規則匹配成功的日誌記錄中包含 model(XTC 800)、purchase_price(3000.00)和 process_time_in_ms(788)等關鍵字段,完整結構化日誌內容:

    __source__ :127.0.0.1
    __tag__:__receive_time__ :1725962982
    __tag__:_container_ip_ :183.227.33.184
    __tag__:_container_name_ :container3
    __tag__:_image_name_ :image3
    __tag__:_path_ :/home/local
    __topic__ :tomcat_access_log
    body_bytes_sent :6344
    model :XTC 800
    process_time_in_ms :788
    purchase_price :3000.00
    referer :www.phn.mock.com
    remote_addr :202.92.0.182
    remote_user :v-0
    request_method :GET
    request_protocol :HTTP/2.0
    request_uri :/request/path-3/file-1
    status :200
    time :10/Sep/2024:09:09:35
    user_agent :Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24

    單擊右上方預覽數據進行資料加工。

步驟三:將加工結果儲存到目標LogStore中

  1. 單擊右下角儲存資料加工(舊版),依次填入圖中所需資訊後點擊確定儲存。

    建立資料加工任務對話方塊中,填寫任務名稱(以etl-為首碼)、顯示名稱任務描述授權方式選擇預設角色。在儲存目標地區,配置目標名稱目標Region目標Project目標庫授權方式選擇預設角色。在加工範圍(資料接收時間)地區選取項目時間範圍,可選所有某時間開始特定時間範圍

  2. 在左側日誌庫中單擊儲存了加工結果的目標LogStore,在頁面右上方,選擇資料的時間範圍。

    選擇時間範圍後,請確認原始日誌頁簽中是否成功儲存加工結果資料。

    加工後的日誌中包含新增的 model(值為 XTC 800)和 purchase_price(值為 3000.00)欄位,表明資料加工結果已寫入目標 LogStore。

附錄:使用內網地址訪問AnalyticDB MySQL或PolarDB MySQL資料庫

Log Service除了支援通過阿里雲內網地址訪問RDS MySQL資料庫外,還支援通過內網地址訪問AnalyticDB MySQL和PolarDB MySQL資料庫。相關配置如下所示:

  • AnalyticDB MySQL資料庫

    設定進階參數配置時,config.vpc.instance_id.your_name的值需配置為AnalyticDB MySQL執行個體ID加-controller,其餘配置參考此文檔即可。

    同時需配置 config.vpc.vpc_id.test1 的值為對應 VPC ID,config.vpc.instance_port 的值為 3306

  • PolarDB MySQL資料庫相關配置參考此文檔即可。