當資料分別儲存在Log Service的Logstore和RDS MySQL資料庫中時,您可以使用Log Service的資料加工功能,通過RDS的內網地址訪問RDS MySQL資料庫以擷取資料,進而實現資料富化。
工作原理
使用Log Service資料加工功能,通過RDS內網地址訪問RDS MySQL擷取資料進行資料富化的過程如圖所示:
方案概覽
使用Log Service資料加工功能,通過RDS內網地址訪問RDS MySQL擷取資料進行資料富化,只需三步:
擷取資料加工任務中進階參數配置資訊:先登入RDS控制台擷取RDS MySQL執行個體資訊,再通過OpenAPI調試頁面調用介面擷取進階參數配置資訊。
在源Logstore中開啟資料加工任務:然後配置資料加工規則進行資料富化。
將加工結果儲存到目標Logstore中:最後將加工結果資料儲存到目標Logstore。
前提條件
已擷取原始日誌資料。
RDS MySQL執行個體與Log ServiceProject需處於同一地區。
步驟一:擷取資料加工任務中進階參數配置資訊
登入雲資料庫RDS控制台。
在左側功能表列,單擊執行個體列表找到目標執行個體並單擊進入。
設定IP位址區段白名單。有關白名單更多操作,請參見設定白名單。
在左側功能表列,單擊
,填入分組名稱以及組內白名單,組內白名單需固定設定為100.104.0.0/16
。
擷取目標執行個體ID、內網連接埠。
在左側功能表列,單擊基本資料,在基本資料頁面找到執行個體ID並複製。
在左側功能表列,單擊資料庫連接,在資料庫連接頁面查看內網連接埠並複製。
擷取目標執行個體
VpcId
和VpcCloudInstanceId
。開啟OpenAPI調試頁面,在 頁面找到DBInstanceId執行個體ID文字框並填入複製好的目標執行個體ID。關於調用的介面方法。具體詳情,請參見DescribeDBInstanceAttribute - 查詢執行個體詳情。
點擊調用,在調用結果頁面複製
VpcId
和VpcCloudInstanceId
。
步驟二:在源Logstore中開啟資料加工任務
進入資料加工頁面。
在Project列表地區,單擊目標Project。
在
頁簽中,單擊目標Logstore。在查詢與分析頁面,單擊資料加工。
在資料加工頁面,單擊切換至資料加工(舊版)。
添加進階參數配置。
在頁面右上方選擇進階,單擊預覽資料。
在添加預覽配置頁面,單擊進階選項,添加如下配置。
重要表格裡所有配置參數中的
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。
config.vpc.instance_port.your_name
3306
目標執行個體內網地址連接埠號碼。
如何擷取請參見,擷取目標執行個體內網連接埠。
添加配置樣本如圖所示:
配置無誤後單擊右下角確定完成配置。
編輯加工規則。
在編輯框中添加如下語句。
文法格式樣本如下,有關資料富化函數以及資源函數具體介紹,請參見,從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資料庫表中model
和purchase_price
欄位及其欄位值,與Logstore中的資料拼接,產生新的資料。
單擊右上方預覽資料進行資料加工。
查看加工結果。
加工規則未匹配成功結果資料如圖所示:
加工規則匹配成功結果資料如圖所示:
步驟三:將加工結果儲存到目標Logstore中
單擊右下角儲存資料加工(舊版),依次填入圖中所需資訊後點擊確定儲存。
在左側日誌庫中單擊儲存了加工結果的目標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,如下圖所示,其餘配置參考此文檔即可。
PolarDB MySQL資料庫相關配置參考此文檔即可。