全部產品
Search
文件中心

Simple Log Service:從Hologres資料庫擷取資料進行富化

更新時間:Jun 30, 2024

本文介紹如何通過資源函數從Hologres資料庫擷取資料進行資料富化。

前提條件

  • 已擷取串連Hologres資料庫的訪問地址、使用者名稱、密碼、資料庫名和資料庫表等。

  • Hologres資料庫執行個體與Log ServiceProject處於同一地區。

背景資訊

某電商平台將所有物品的銷量、購買人的身份資訊儲存在Hologres資料庫中。當新註冊的使用者登入電商平台時,電商平台根據新使用者的性別,在首頁為使用者推薦相應的商品。面對此類現象,您可以通過Log Service資料加工功能從Hologres資料庫擷取資料,並通過富化函數將資料富化後,將推薦商品儲存到Log ServiceLogstore中,便於其它服務在Logstore中使用推薦的資料。

在該情境中,使用res_rds_mysql函數從Hologres資料庫擷取資料,然後使用e_search_table_map函數進行資料富化。

使用e_search_table_map函數進行資料富化

  • 未經處理資料

    • Hologres資料庫表中的資料範例如下表所示。

      product_id

      product_name

      product_price

      product_sales_number

      sex

      2

      lipstick

      288

      2219

      girl

      5

      watch

      1399

      265

      boy

      6

      mac

      4200

      265

      boy

      3

      mouse

      20

      2583

      boy

      1

      basketball

      35

      3658

      boy

      4

      notebook

      9

      5427

      girl

    • Log ServiceLogstore中的日誌範例如下所示。

      __source__:192.168.2.100
      __tag__:__client_ip__:192.168.1.100
      age:22
      name:xiaoli
      profession:students
      sex:girl
      
      __source__:192.168.2.200
      __tag__:__client_ip__:192.168.1.200
      age:21
      name:xiaoming
      profession:students
      sex:boy
  • 加工規則

    通過Log ServiceLogstore中的sex欄位和Hologres資料庫表中sex欄位進行匹配,只有sex欄位的值相同時,才能匹配成功。匹配成功後,返回Hologres資料庫表中product_name,與Logstore中的資料拼接,產生新的資料。

    情境一:通過公網網域名稱訪問Hologres資料庫。

    e_search_table_map(res_rds_mysql(address="rds-host", 
                                     username="mysql-username",
                                     password="yourpassword",
                                     database="yourdatabasename",
                                     table="yourtablename",
                                     refresh_interval=60,
                                     connector='pgsql'),
                        inpt="sex",output_fields="product_name", multi_match=True, multi_join=",")
    說明

    您可以在Hologres執行個體的網路資訊中,擷取Hologres資料庫的公網網域名稱,將address配置為該值即可。

    情境二:通過VPC方式訪問Hologres資料庫。建議您使用該方式,可以提高訪問Hologres執行個體的安全性和穩定性。您可以在進階預覽中添加進階參數配置config.vpc.vpc_id.name、config.vpc.instance_id.name、config.vpc.instance_port.name(三個參數名中的name必須保持一致,支援使用者自訂),然後您可以在hologress執行個體的網路資訊中,擷取Hologres資料庫的vpc id、vpc執行個體 id和連接埠號碼,填入對應的參數值中。

    e_search_table_map(res_rds_mysql("{}:{}",res_local("config.vpc.instance_id.name"),res_local("config.vpc.instance_port.name")), 
                                     username="mysql-username",
                                     password="yourpassword",
                                     database="yourdatabasename",
                                     table="yourtablename",
                                     refresh_interval=60,
                                     connector='pgsql'),
                       inpt="sex",output_fields="product_name", multi_match=True, multi_join=",")

    進階參數配置:image

  • 加工結果

    __source__:192.168.2.100
    __tag__:__client_ip__:192.168.1.100
    __tag__:__receive_time__:1615518043
    __topic__:
    age:22
    name:xiaoli
    product_name:lipstick,notebook
    profession:students
    sex:girl
    
    __source__:192.168.2.200
    __tag__:__client_ip__:192.168.1.200
    __tag__:__receive_time__:1615518026
    __topic__:
    age:21
    name:xiaoming
    product_name:basketball,watch,mac,mouse
    profession:students
    sex:boy