帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 消费与投递
  6. 数据投递
  7. 投递日志到OSS(新版)
  8. Parquet格式

Parquet格式

  • 投递日志到OSS(新版)
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

日志服务将日志投递到OSS后,支持存储为不同的文件格式。本文介绍Parquet格式。

参数配置

在创建OSS投递任务(新版)时,选择存储格式为parquet,对应的参数配置如下所示。Parquet字段配置

相关参数说明如下表所示。

参数

说明

Key名称

您可以在原始日志页签中查看日志字段,将需要投递到OSS的字段名有序填入。OSS投递任务将按照此顺序组织Parquet数据,并使用该字段名作为Parquet数据的列名。

日志服务还提供保留字段__time__、__topic__、__source__。保留字段的更多信息,请参见保留字段。

如果遇到如下两种情况时,Parquet数据的列值为null。

  • 此处配置的字段名在Logstore中不存在。

  • 将string类型字段设置为非string类型(如double、int64等),导致投递时,转换数据类型失败。

说明
  • 同一个字段名在Parquet字段中只能配置一次,不支持多次使用。

  • 如果您的日志中存在同名字段(例如都为request_time),则日志服务会将其中一个字段名显示为request_time_0,底层存储的字段名仍为request_time。因此您在投递时,只能使用原始字段名request_time。

    存在同名字段时,系统只随机投递其中一个字段的值。请尽量避免日志中使用同名字段。

类型

Parquet格式支持存储string、boolean、int32、int64、float、double这6种类型的数据。其中, 日志投递后,string类型会以Parquet中的byte_array类型进行存储,且系统不会设置Parquet数据中logical_type字段的值。

OSS文件地址

投递到OSS后,OSS文件地址示例如下表所示。

说明
  • 在创建OSS投递任务时,如果您自定义了文件后缀,则文件后缀由您自定义的后缀决定。

  • 在创建OSS投递任务时,如果您未自定义文件后缀,则文件后缀由压缩类型决定。

压缩类型

文件后缀

OSS文件地址示例

说明

不压缩

如果您自定义了文件后缀,则以您的设置为准,例如.suffix。

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

下载到本地,使用数据消费方式打开 。具体操作,请参见数据消费。

如果未自定义文件后缀,则文件后缀为.parquet。

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

压缩(snappy)

如果您自定义了文件后缀,则以您的设置为准,例如.suffix。

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

如果未自定义文件后缀,则文件后缀为.snappy.parquet

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

压缩(gzip)

如果您自定义了文件后缀,则以您的设置为准,例如.suffix。

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

如果未自定义文件后缀,则文件后缀为.gz.parquet

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

压缩(zstd)

如果您自定义了文件后缀,则以您的设置为准,例如.suffix。

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

如果未自定义文件后缀,则文件后缀为.zst.parquet

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

数据消费

  • 通过E-MapReduce、Spark 、Hive消费数据。更多信息,请参见社区文档。

  • 通过单机校验工具消费数据。

    Python的parquet-tools可以用于验证Parquet格式的文件、查看详细信息、读取数据内容。您可以自行安装或者使用如下命令安装。

    pip3 install parquet-tools
    • 查看Parquet文件指定列的内容。

      • 命令

        例如查看remote_addr、body_bytes_sent列。

        parquet-tools show -n 2 -c remote_addr,body_bytes_sent 44_1693464263000000000_2288ff590970d092.parquet
      • 返回结果

        +----------------+-------------------+
        | remote_addr    |   body_bytes_sent |
        |----------------+-------------------|
        | 61.243.1.63    |           b'1904' |
        | 112.235.74.182 |           b'4996' |
        +----------------+-------------------+
    • 查看Parquet文件内容,也可以使用转成CSV格式的命令。

      • 命令

        parquet-tools csv -n 2 44_1693464263000000000_2288ff590970d092.parquet
      • 返回结果

        remote_addr,body_bytes_sent,time_local,request_method,request_uri,http_user_agent,remote_user,request_time,request_length,http_referer,host,http_x_forwarded_for,upstream_response_time,status
        b'61.**.**.63',b'1904',b'31/Aug/2023:06:44:01',b'GET',b'/request/path-0/file-7',"b'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1'",b'uh2z',b'49',b'4082',b'www.kwm.mock.com',b'www.ap.mock.com',b'222.**.**.161',b'2.63',b'200'
        b'112.**.**.182',b'4996',b'31/Aug/2023:06:44:01',b'GET',b'/request/path-1/file-5',b'Mozilla/5.0 (Windows NT 6.1; de;rv:12.0) Gecko/20120403211507 Firefox/12.0',b'tix',b'71',b'1862',b'www.gx.mock.com',b'www.da.mock.com',b'36.**.**.237',b'2.43',b'200'
    • 查看Parquet文件的详细信息的命令。

      • 命令

        parquet-tools inspect 44_1693464263000000000_2288ff590970d092.parquet
      • 返回结果

        ############ file meta data ############
        created_by: SLS version 1
        num_columns: 14
        num_rows: 4661
        num_row_groups: 1
        format_version: 1.0
        serialized_size: 2345
        
        
        ############ Columns ############
        remote_addr
        body_bytes_sent
        time_local
        request_method
        request_uri
        http_user_agent
        remote_user
        request_time
        request_length
        http_referer
        host
        http_x_forwarded_for
        upstream_response_time
        status
        
        ############ Column(remote_addr) ############
        name: remote_addr
        path: remote_addr
        max_definition_level: 1
        max_repetition_level: 0
        physical_type: BYTE_ARRAY
        logical_type: None
        converted_type (legacy): NONE
        compression: UNCOMPRESSED (space_saved: 0%)
        ......

相关文章

稳定性说明与使用限制 2025-04-22 10:49

本文介绍OSS投递(新版)的稳定性与使用限制。 稳定性说明 读日志服务

授权 2025-04-22 10:49

您使用OSS投递(新版)功能时,涉及OSS投递操作权限和数据访问权限。 如果您使用的是阿里云账号,只需完成OSS投递任务访问数据的授权。

授权RAM用户操作OSS投递 2025-04-22 10:48

当您使用RAM用户操作OSS投递(新版)功能时,需参见本文中的步骤完成授权。 前提条件 已创建RAM用户。具体操作,请参见创建RAM用户。

通过默认角色访问数据 2025-04-22 10:48

阿里云系统角色AliyunLogDefaultRole具备读取Logstore数据及将数据投递到OSS Bucket中的权限。您可以授予OSS投递任务(新版)使用AliyunLogDefaultRole角色来读取源Logstore中的数据并将数据投递到OSS Bucket中。

通过自定义角色访问数据(同账号场景) 2025-04-22 10:48

OSS投递任务(新版)运行时,将拉取Logstore中的数据并投递到OSS Bucket中,您可以使用自定义角色来完成以上操作。本文介绍如何对自定义角色进行授权。 前提条件 已创建RAM角色。

通过自定义角色访问数据(跨账号场景) 2025-04-22 10:48

假设有这样一个场景,您的日志服务位于阿里云账号A,

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1