日志服务将日志投递到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查看帮助。