全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
日志服务

OSS投递Parquet存储

更新时间:2017-10-19 16:07:08

本文档主要介绍日志服务投递OSS使用Parquet存储的相关配置,关于投递日志到OSS的其它内容请参考投递日志到 OSS

Parquet存储字段配置

数据类型

Parquet存储支持6种类型:string、boolean、int32、int64、float、double。

日志投递过程中,会将日志服务数据由字符串转换为Parquet目标类型。如果转换到非String类型失败,则该列数据为null。

列配置

请依次填写Parquet中需要的日志服务数据字段名和目标数据类型,在投递时将按照该字段顺序组织Parquet数据,并使用日志服务的字段名称作为Parquet数据列名,以下两种情况发生时将置数据列值为null:

  • 该字段名在日志服务数据中不存在。
  • 改字段由string转换非string(如double、int64等)失败。

    字段配置页面:

    oss投递parquet

可配置的保留字段

在投递OSS过程中,除了使用日志本身的Key-Value外,日志服务保留同时提供以下几个保留字段可供选择:

保留字段 语义
__time__ 日志的 Unix 时间戳(是从 1970 年 1 月 1 日开始所经过的秒数),由用户日志字段的 time 计算得到。
__topic__ 日志的 topic。
__source__ 日志来源的客户端 IP。

JSON格式存储会默认带上以上字段内容。

Parquet、CSV存储可以根据您的需求自行选择。例如您需要日志的topic,那么可以填写字段名:__topic__,字段类型string。

OSS存储地址

压缩类型 文件后缀 OSS文件地址举例
无外部压缩 .parquet oss://oss-shipper-shenzhen/ecs_test/2016/01/26/20/54_1453812893059571256_937.parquet
snappy .snappy.parquet oss://oss-shipper-shenzhen/ecs_test/2016/01/26/20/54_1453812893059571256_937.snappy.parquet

数据消费

E-MapReduce / Spark / Hive

参考社区文档

单机校验工具

开源社区提供的parquet-tools可以用来文件级别验证Parquet格式、查看schema、读取数据内容。

您可以自行编译该工具或者点击下载日志服务提供的版本。

  • 查看Parquet文件schema
  1. $ java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar schema -d 00_1490803532136470439_124353.snappy.parquet | head -n 30
  2. message schema {
  3. optional int32 __time__;
  4. optional binary ip;
  5. optional binary __source__;
  6. optional binary method;
  7. optional binary __topic__;
  8. optional double seq;
  9. optional int64 status;
  10. optional binary time;
  11. optional binary url;
  12. optional boolean ua;
  13. }
  14. creator: parquet-cpp version 1.0.0
  15. file schema: schema
  16. --------------------------------------------------------------------------------
  17. __time__: OPTIONAL INT32 R:0 D:1
  18. ip: OPTIONAL BINARY R:0 D:1
  19. .......
  • 查看Parquet文件全部内容
  1. $ java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar head -n 2 00_1490803532136470439_124353.snappy.parquet
  2. __time__ = 1490803230
  3. ip = 10.200.98.220
  4. __source__ = 11.164.232.106
  5. method = POST
  6. __topic__ =
  7. seq = 1667821.0
  8. status = 200
  9. time = 30/Mar/2017:00:00:30 +0800
  10. url = /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1
  11. __time__ = 1490803230
  12. ip = 10.200.98.220
  13. __source__ = 11.164.232.106
  14. method = POST
  15. __topic__ =
  16. seq = 1667822.0
  17. status = 200
  18. time = 30/Mar/2017:00:00:30 +0800
  19. url = /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1

更多用法请执行:java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar -h,参考帮助。

本文导读目录