全部產品
Search
文件中心

Simple Log Service:關聯LogStore與OSS外表進行查詢和分析

更新時間:Jan 06, 2026

在進行日誌資料查詢和分析時,經常需要結合外部表格對日誌資料進行分析。本文介紹如何在Log Service中聯合OSS外表進行資料分析。

前提條件

背景資訊

某支付公司,想要分析使用者年齡、地區、性別等因素對支付習慣的影響。該公司已通過Log Service即時採集使用者支付行為(支付方式、支付費用等)日誌,並將使用者屬性(地區、年齡、性別等)資訊儲存在OSS中。針對該情境,Log Service查詢和分析引擎提供LogStore和外部資料源(ExternalStore,例如MySQL資料庫、OSS等)聯集查詢和分析功能。您可以使用SQL的JOIN文法把使用者屬性資料和行為資料進行聯合,分析與使用者屬性相關的指標。

與OSS進行關聯查詢和分析,具有如下優勢:

  • 節省費用:將更新頻率低的資料儲存在OSS上,只需要支付少量的儲存費用,並且可以通過內網讀資料,免去流量費用。

  • 降低營運工作:在輕量級的聯合分析平台中,不需要將資料搬遷到同一個儲存系統中。

  • 節省時間:使用SQL分析資料,分析結果秒級可見,並可以將常用的分析結果定義為報表,開啟即可看到結果。

操作步驟

  1. 建立CSV檔案並上傳到OSS。

    重要

    支援關聯多個OSS檔案,單個檔案最大為50M,不支援壓縮,參數不支援Regex。

    1. 建立一個名為user.csv的檔案,並粘貼以下內容。

      userid,nick,gender,province,age
      1,使用者A,male,上海,18
      2,使用者B,female,浙江,19
      3,使用者C,male,廣東,18
    2. 上傳user.csv檔案到OSS。具體操作,請參見控制台上傳檔案

  2. 登入Log Service控制台

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

    image

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

    image

  5. 輸入查詢和分析語句,然後選擇時間範圍。

    通過SQL定義虛擬外部儲存(此處以user_meta1為例),映射到OSS檔案。

    * | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou.aliyuncs.com',accessid='<your accessid>',accesskey='<your accesskey>',bucket='testoss',objects=ARRAY['user.csv'],type='oss')

    如果執行結果中的resulttrue,表示執行成功

    外部儲存

    在查詢分析語句中定義外部儲存名稱External storage、表的Schema等資訊,並通過WITH文法指定OSS訪問資訊及檔案資訊,詳細資料如下表所示。

    配置項

    說明

    樣本

    外部儲存名稱External storage

    外部儲存名稱,即虛擬表的名稱。

    user_meta1

    表的Schema

    定義表的屬性,包括表的列名及格式。

    (userid bigint, nick varchar, gender varchar, province varchar, age bigint)

    endpoint

    OSS訪問網域名稱。更多資訊,請參見地區和Endpoint

    重要

    請使用內網訪問網域名稱,不支援使用公網訪問。

    oss-cn-hangzhou-internal.aliyuncs.com

    accessid

    阿里雲帳號AccessKey ID和AccessKey Secret。建議使用具備OSS資料來源存取權限的RAM使用者的AccessKey。授予RAM使用者權限的具體操作,請參見管理RAM使用者的許可權。如何擷取AccessKey的具體操作,請參見存取金鑰

    LTAI****************

    accesskey

    yourAccessKeySecret

    bucket

    CSV檔案所在的OSS Bucket名稱。

    examplebucket

    objects

    支援CSV檔案和OSS目錄。objects為array類型,可以包含多個檔案或目錄。需要注意:

    • 指定目錄時需要以 '/' 結尾。若指定了一個目錄,如 test_dir/ 就相當於這個外表關聯了對應的bucket下這個oss目錄裡的所有的csv檔案。

    • 使用限制:所有類型的檔案數總和不超過100個。

    • 'user.csv'

    • 'test_dir/'

    • 'user.csv','test_dir/','my_dir/'

    type

    固定為oss,表示外部儲存類型為OSS。

    oss

  6. 驗證是否成功定義外部儲存。

    執行如下語句,如果返回結果為您之前定義的表內容,則表示定義外部儲存成功。其中,user_meta1為您定義的外部儲存,請根據實際情況替換。

    * | select * from user_meta1

    驗證結果

  7. 通過JOIN文法完成LogStore和OSS外表的聯集查詢。

    執行如下查詢和分析語句關聯Log Service中日誌的ID和OSS檔案中的userid,補全日誌資訊。其中,test_accesslog為LogStore名稱,l為LogStore別名,user_meta1為您定義的外部儲存表,請根據實際情況替換。

    * | select * from test_accesslog l join user_meta1 u on l.userid = u.userid

    聯集查詢樣本:

    • 統計不同性別使用者的訪問情況。

      * | select u.gender, count(1) from test_accesslog l join user_meta1 u on l.userid = u.userid group by u.gender

      性別訪問

    • 統計不同年齡段使用者的訪問情況。

      * | select u.age, count(1) from test_accesslog l join user_meta1 u on l.userid = u.userid group by u.age

      年齡訪問

    • 統計不同年齡段在時間維度上的訪問趨勢。

      * | select date_trunc('minute',__time__) as minute, count(1) ,u.age from test_accesslog l join user_meta1 u on l.userid = u.userid group by u.age,minute

      時間訪問