Log Service將日誌投遞到OSS後,支援儲存為不同的檔案格式。本文介紹ORC格式。
參數配置
在建立OSS投遞任務(新版)時,選擇儲存格式為orc,對應的參數配置如下所示。
相關參數說明如下表所示。
參數 | 說明 |
Key名稱 | 您可以在原始日誌頁簽中查看日誌欄位,將需要投遞到OSS的欄位名有序填入。OSS投遞任務將按照此順序組織ORC資料,並使用該欄位名作為ORC資料的列名。 Log Service還提供保留欄位__time__、__topic__、__source__。保留欄位的更多資訊,請參見保留欄位。 如果遇到如下兩種情況時,ORC資料的列值為null。
說明
|
類型 | 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查看協助。