日志服務將日志投遞到OSS后,支持存儲為不同的文件格式。本文介紹ORC格式。
參數配置
在創建OSS投遞任務(新版)時,選擇存儲格式為orc,對應的參數配置如下所示。
相關參數說明如下表所示。
參數 | 說明 |
Key名稱 | 您可以在原始日志頁簽中查看日志字段,將需要投遞到OSS的字段名有序填入。OSS投遞任務將按照此順序組織ORC數據,并使用該字段名作為ORC數據的列名。 日志服務還提供保留字段__time__、__topic__、__source__。保留字段的更多信息,請參見保留字段。 如果遇到如下兩種情況時,ORC數據的列值為null。
說明
|
類型 | ORC存儲支持6種類型:string、boolean、int32、int64、float、double。 日志投遞過程中,會將日志服務中的日志字段由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查看幫助。