Log Service支援通過SDK方式將本地CSV檔案上傳到Log Service進行託管,並建立LogStore與CSV檔案的關聯。本文介紹如何在Log ServiceLogStore中聯合託管的CSV檔案進行資料分析。
前提條件
已採集日誌。更多資訊,請參見資料擷取。
已配置索引。更多資訊,請參見建立索引。
已建立CSV檔案。
已安裝Log ServicePython SDK。更多資訊,請參見安裝Log ServicePython SDK。
支援aliyun-log-python-sdk 0.7.3及以上版本,您可以通過pip install aliyun-log-python-sdk -U命令進行升級。
使用限制
僅支援關聯一個CSV檔案。
最大支援50 MB的CSV檔案。CSV檔案經SDK壓縮後被上傳至Log Service,壓縮後的大小需小於9.9 MB。
資料範例
例如LogStore用於記錄使用者的登入操作,CSV檔案用於記錄使用者的基本資料(性別、年齡等)。關聯LogStore和CSV檔案後,可用於分析與使用者屬性相關的指標。
LogStore
userid:100001 action:login __time__:1637737306CSV檔案使用者資料表包含
userid、nick、gender、province、age五個欄位,樣本資料為:100001/User_A/male/Liaoning/24、100002/User_B/male/Beijing/23、100003/User_C/female/Zhejiang/22、100004/User_D/female/Jiangxi/21、100005/User_E/male/Guangxi/20。
操作步驟
通過Python SDK建立外部儲存(ExternalStore)。
關於Python SDK的更多資訊,請參見Python SDK概述。
from aliyun.log import * endpoint='cn-shanghai.log.aliyuncs.com' accessKeyId='test-project' accessKey='TAI****YDw' project='lr****VM' ext_logstore='user_meta' csv_file='./user.csv' client = LogClient(endpoint, accessKeyId, accessKey) res = client.create_external_store(project, ExternalStoreCsvConfig(ext_logstore, csv_file, [ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ])) res.log_print()參數
說明
endpoint
Log Service的網域名稱。更多資訊,請參見服務入口。
accessKeyId
阿里雲存取金鑰AccessKey ID。更多資訊,請參見存取金鑰。
警告建議您使用RAM使用者的AccessKey進行操作,有效降低AccessKey泄露的風險。
accessKey
阿里雲存取金鑰AccessKey Secret。更多資訊,請參見存取金鑰。
project
目標LogStore所在的Project。
ext_LogStore
外部儲存名稱,即虛擬表的名稱。命名規則如下:
僅支援小寫字母、數字、短劃線(-)和底線(_)。
必須以小寫字母或數字開頭和結尾。
名稱長度為3~63個字元。
csv_file
本地CSV檔案所在路徑及檔案名稱。
表的Schema
用於定義虛擬表的屬性,包括表的列名及格式。支援的column type為bigint、boolean、double和varchar。例如下述指令碼表示表的Schema,請根據實際情況替換。
[ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ]在Project列表地區,單擊目標Project。
在頁簽中,單擊目標Logstore。
執行如下語句,驗證是否成功建立外部儲存。
其中
user_meta為外部儲存的名稱,請根據實際情況替換。* | SELECT * FROM user_meta如果返回結果為CSV檔案的內容,則表示建立外部儲存成功。執行該查詢語句後,返回 user_meta 表的關聯資料,包含
userid、nick、gender、province、age等欄位。執行如下語句,建立LogStore與CSV檔案的聯集查詢。
本案例中通過LogStore中的userid欄位和CSV檔案中的userid欄位,建立聯集查詢。其中,website_log為LogStore名稱,user_meta為您定義的外部儲存,請根據實際情況替換。
* | SELECT * FROM website_log JOIN user_meta ON website_log.userid = user_meta.userid執行上述JOIN語句後,查詢結果將展示
website_log與user_meta合并後的欄位,包括action、userid、__time__、nick、gender、province、age等列。