全部產品
Search
文件中心

Simple Log Service:ORC格式

更新時間:Jun 30, 2024

Log Service將日誌投遞到OSS後,支援儲存為不同的檔案格式。本文介紹ORC格式。

參數配置

建立OSS投遞任務(新版)時,選擇儲存格式orc,對應的參數配置如下所示。orc

相關參數說明如下表所示。

參數

說明

Key名稱

您可以在原始日誌頁簽中查看日誌欄位,將需要投遞到OSS的欄位名有序填入。OSS投遞任務將按照此順序組織ORC資料,並使用該欄位名作為ORC資料的列名。

Log Service還提供保留欄位__time____topic____source__。保留欄位的更多資訊,請參見保留欄位

如果遇到如下兩種情況時,ORC資料的列值為null。

  • 此處配置的欄位名在Logstore中不存在。

  • 欄位的資料類型由string類型轉換非string類型(如double、int64等)失敗。

說明
  • 同一個欄位名在Orc欄位中只能配置一次,不支援多次使用。

  • 如果您的日誌中存在同名欄位(例如都為request_time),則Log Service會將其中一個欄位名顯示為request_time_0,底層儲存的欄位名仍為request_time。因此您在投遞時,只能使用原始欄位名request_time

    存在同名欄位時,系統只隨機投遞其中一個欄位的值。請盡量避免日誌中使用同名欄位。

類型

ORC儲存支援6種類型:string、boolean、int32、int64、float、double。

日誌投遞過程中,會將Log Service中的日誌欄位由string類型轉換為ORC目標類型。如果轉換到非string類型失敗,則該列資料為null。

OSS檔案地址

投遞到OSS後,OSS檔案地址樣本如下表所示。

說明
  • 在建立OSS投遞任務時,如果您自訂了檔案尾碼,則檔案尾碼由您自訂的尾碼決定。

  • 在建立OSS投遞任務時,如果您未自訂檔案尾碼,則檔案尾碼由壓縮類型決定。

壓縮類型

檔案尾碼

OSS檔案地址樣本

說明

不壓縮

如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。

oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix

下載到本地,使用orc-tools工具開啟。

如果未自訂檔案尾碼,則檔案尾碼為.orc。

oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.orc

壓縮(snappy)

如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。

oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix

如果未自訂檔案尾碼,則檔案尾碼為.snappy.orc

oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.snappy.orc

壓縮(zstd)

如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。

oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix

如果未自訂檔案尾碼,則檔案尾碼為.zst.orc

oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.zst.orc

資料消費

  • 通過E-MapReduce、Spark 、Hive消費資料。更多資訊,請參見社區文檔

  • 通過單機校正工具消費資料。

    orc tool可用於查看ORC檔案的Meta資訊、讀取資料等。您可以通過maven repo下載orc-tools-1.7.2-uber.jar進行驗證。

    • 查看Meta資訊

      • 命令

        java -jar ~/Downloads/orc-tools-1.7.2-uber.jar meta -p file.orc
      • 返回結果

        Processing data file /Users/xx/file.orc [length: 200779]
        Structure for /Users/xx/file.orc
        File Version: 0.12 with ORC_CPP_ORIGINAL by ORC C++ 1.7.2
        Rows: 124022
        Compression: ZSTD
        Compression size: 65536
        Calendar: Julian/Gregorian
        Type: struct<bucket:string,bucket_region:string>
        
        Stripe Statistics:
          Stripe 1:
            Column 0: count: 124022 hasNull: false
            Column 1: count: 124022 hasNull: false min: bucket0 max: sls-training-data sum: 1468133
            Column 2: count: 0 hasNull: true
        
        File Statistics:
          Column 0: count: 124022 hasNull: false
          Column 1: count: 124022 hasNull: false min: bucket0 max: sls-training-data sum: 1468133
          Column 2: count: 0 hasNull: true
        
        Stripes:
          Stripe: offset: 3 data: 199856 rows: 124022 tail: 97 index: 578
            Stream: column 0 section ROW_INDEX start: 3 length 102
            Stream: column 1 section ROW_INDEX start: 105 length 367
            Stream: column 2 section ROW_INDEX start: 472 length 109
            Stream: column 0 section PRESENT start: 581 length 25
            Stream: column 1 section PRESENT start: 606 length 25
            Stream: column 1 section LENGTH start: 631 length 38989
            Stream: column 1 section DATA start: 39620 length 160794
            Stream: column 2 section PRESENT start: 200414 length 23
            Stream: column 2 section LENGTH start: 200437 length 0
            Stream: column 2 section DATA start: 200437 length 0
            Encoding column 0: DIRECT
            Encoding column 1: DIRECT_V2
            Encoding column 2: DIRECT_V2
        
        File length: 200779 bytes
        Padding length: 0 bytes
        Padding ratio: 0%
    • 讀取資料

      • 命令

        java -jar ~/Downloads/orc-tools-1.7.2-uber.jar data -n 5 file.orc
      • 返回結果

        Processing data file /Users/xx/file.orc [length: 200779]
        {"bucket":"bucket3","bucket_region":"cn-hangzhou"}
        {"bucket":"bucket3","bucket_region":"cn-hangzhou"}
        {"bucket":"bucket4","bucket_region":"cn-hangzhou"}
        {"bucket":"dashboard-bucket","bucket_region":"cn-hangzhou"}
        {"bucket":"bucket2","bucket_region":null}

    更多用法請執行java -jar orc-tools-1.7.2-uber.jar命令或者參見orc tool查看協助。