全部產品
Search
文件中心

Simple Log Service:關聯託管的CSV資料來源

更新時間:Aug 24, 2024

Log Service支援通過SDK方式將本地CSV檔案上傳到Log Service進行託管,並建立Logstore與CSV檔案的關聯。本文介紹如何在Log ServiceLogstore中聯合託管的CSV檔案進行資料分析。

前提條件

  • 已採集日誌。更多資訊,請參見資料擷取

  • 已配置索引。更多資訊,請參見建立索引

  • 已建立CSV檔案。

  • 已安裝Log ServicePython SDK。更多資訊,請參見安裝Python 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__:1637737306
  • CSV檔案CSV檔案

操作步驟

  1. 通過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

    用於定義虛擬表的屬性,包括表的列名及格式。例如下述指令碼表示表的Schema,請根據實際情況替換。

    [
         {"name" : "userid", "type" : "bigint"},
         {"name" : "nick", "type" : "varchar"},
         {"name" : "gender", "type" : "varchar"},
         {"name" : "province", "type" : "varchar"},
         {"name" : "age", "type" : "bigint"}
    ]
  2. 登入Log Service控制台

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

    image

  4. 在控制台左側,單擊日誌儲存,在日誌庫列表中單擊目標Logstore。

    image

  5. 執行如下語句,驗證是否成功建立外部儲存。

    其中user_meta為外部儲存的名稱,請根據實際情況替換。

    * | SELECT * FROM user_meta

    如果返回結果為CSV檔案的內容,則表示建立外部儲存成功。關聯CSV

  6. 執行如下語句,建立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

    關聯查詢