赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 消费与投递
  6. 数据投递
  7. 投递日志到OSS(新版)
  8. 创建OSS投递任务(新版)

创建OSS投递任务(新版)

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

日志服务采集到数据后,支持将数据投递至OSS Bucket中进行存储与分析。本文介绍创建OSS投递任务(新版)的操作步骤。

前提条件

  • 已创建Project和Logstore。具体操作,请参见创建Project和Logstore。

  • 已采集到数据。具体操作,请参见数据采集。

  • 已在日志服务Project所在的地域创建Bucket。具体操作,请参见控制台创建存储空间。

支持的地域说明

日志服务投递数据到OSS为同地域投递,即日志服务Project所在的地域和OSS Bucket所在地域相同。

重要

目前只支持华东1(杭州)、华东2(上海)、华东5(南京-本地地域)、华东1金融云、华东2金融云、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5 (呼和浩特)、华北6(乌兰察布)、西南1(成都)、华南1(深圳)、华南2(河源)、华南3(广州)、中国香港、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、日本(东京)、美国(硅谷)、美国(弗吉尼亚)。

其中,华东1金融云仅支持OSS华东1金融云公网的Bucket;华东2金融云仅支持OSS华东2金融云的Bucket。

创建投递任务

  1. 登录日志服务控制台。

  2. 在Project列表区域,单击目标Project。

    image

  3. 在日志存储 > 日志库页签中,单击目标Logstore左侧的>,选择数据处理 > 导出 > OSS(对象存储)。

  4. 将鼠标悬浮OSS(对象存储)上,单击+。

  5. 在OSS投递功能面板,配置如下参数,然后单击确定。

    选择投递版本为新版,重要参数配置说明如下所示。

    重要
    • 创建OSS投递任务后,每个Shard都会根据投递大小、投递时间决定投递的频率。当任一条件满足时,即会执行一次投递。

    • 创建OSS投递任务后,您可以通过投递任务的状态和投递到OSS的数据确认该投递任务是否符合预期结果。

    参数

    说明

    任务名称

    投递任务的唯一名称。

    显示名称

    投递任务的显示名称。

    任务描述

    OSS的任务描述。

    OSS Bucket

    OSS Bucket名称。

    重要
    • 必须是已存在且未开启WORM的Bucket,且该Bucket与日志服务Project位于相同地域。关于WORM的更多信息,请参见保留策略(WORM)。

    • 支持投递到标准、低频访问、归档、冷归档、深度冷归档存储类型的Bucket中。投递后,生成的OSS Object的存储类型默认与Bucket一致。更多信息,请参见存储类型。

    • 非标准存储的Bucket存在最低存储时间和最小计量单位限制,请根据需求合理设置目标Bucket存储类型。更多信息,请参见存储类型对比。

    文件投递目录

    OSS Bucket中的目录。目录名不能以正斜线(/)或者反斜线(\)开头。

    创建OSS投递任务后,Logstore中的数据将投递到目标OSS Bucket的此目录中。

    文件后缀

    如果您未设置文件后缀,则日志服务会根据存储格式和压缩类型自动生成后缀。例如.suffix。

    分区格式

    按照投递时间动态生成OSS Bucket的目录,不能以正斜线(/)开头,默认值为%Y/%m/%d/%H/%M,相关示例请参见分区格式,参数详情请参见strptime API。

    写OSS RAM角色

    授予OSS投递任务将数据写入到OSS Bucket的权限。

    • 默认角色:授权OSS投递任务使用阿里云系统角色AliyunLogDefaultRole将数据写入到OSS Bucket中。即输入AliyunLogDefaultRole的ARN。如何获取ARN,请参见通过默认角色访问数据。

    • 自定义角色:授权OSS投递任务使用自定义角色将数据写入到OSS Bucket中。

      您需先授予自定义角色将数据写入到OSS Bucket的权限,然后在写OSS RAM角色中输入您自定义角色的ARN。如何获取ARN,请参见如下说明:

      • 如果Logstore和OSS Bucket属于同一阿里云账号,请参见步骤二:授予RAM角色写OSS Bucket的权限。

      • 如果Logstore和OSS Bucket属于不同的阿里云账号,请参见步骤二:授予阿里云账号B下的RAM角色role-b写OSS Bucket的权限。

    读Logstore RAM角色

    授予OSS投递任务读取Logstore数据的权限。

    • 默认角色:授权OSS投递任务使用阿里云系统角色AliyunLogDefaultRole来读取Logstore中的数据。即输入AliyunLogDefaultRole的ARN。如何获取ARN,请参见通过默认角色访问数据。

    • 自定义角色:授权OSS投递任务使用自定义角色来读取Logstore中的数据。

      您需先授予自定义角色读取Logstore数据的权限,然后在读Logstore RAM角色中输入您自定义角色的ARN。如何获取ARN,请参见如下说明:

      • 如果Logstore和OSS Bucket属于同一阿里云账号,请参见步骤一:授予RAM角色读取Logstore数据的权限。

      • 如果Logstore和OSS Bucket属于不同的阿里云账号,请参见步骤一:授予阿里云账号A下的RAM角色role-a读取Logstore数据的权限。

    存储格式

    数据被投递到OSS后,支持存储为不同的文件格式。更多信息,请参见CSV格式、JSON格式、Parquet格式和ORC格式。

    是否压缩

    OSS数据存储的压缩方式。

    • 不压缩(none):不压缩数据。

    • 压缩(snappy):使用snappy算法压缩数据,减少OSS Bucket的空间。更多信息,请参见snappy。

    • 压缩(zstd):使用zstd算法压缩数据,减少OSS Bucket的空间。

    • 压缩(gzip):使用gzip算法压缩数据,减少OSS Bucket的空间。

    是否投递tag

    tag字段为日志服务的保留字段,更多信息,请参见保留字段。

    攒批大小

    每个Shard积攒日志量达到该值指定的大小开始投递。通过该值控制OSS Object大小(以未压缩计算),取值范围为5~256,单位为MB。

    说明

    攒批大小是指开始读取到数据之后的攒批大小,不是已经写入到SLS的数据大小。 在满足攒批时间配置之后才会开始读取并投递数据。

    攒批时间

    Shard处理日志的投递规则,即从第一条日志到达服务端到第n条日志到达的时间差大于等于设定值(默认300秒,范围300~900秒)时开始投递。

    延迟投递

    投递数据的延迟时间。例如设置为3600,则表示数据被延迟1小时投递,即2023/06/05 10:00:00的数据不会早于2023/06/05 11:00:00写入到指定的OSSBucket中。相关的限制说明,请参见配置项限制。

    开始时间范围

    指定OSS投递任务的时间范围,此处的时间范围依赖日志的接收时间。详细说明如下:

    • 所有:从Logstore接收到第一条日志的时间点开始数据投递,直到投递任务被手动停止。

    • 某时间开始:指定OSS投递任务的开始时间,从该时间点开始数据投递,直到投递任务被手动停止。

    • 特定时间范围:指定OSS投递任务的起止时间,投递任务执行到指定结束时间后自动停止。

    说明

    时间范围是指__tag__:__receive_time__,更多详情请参考保留字段。

    时区选择

    该时区用于格式化时间。

    如果您设置了时区选择和分区格式,系统将根据您的设置生成OSS Bucket的目录。

查看OSS数据

将数据投递到OSS成功后,您可以通过OSS控制台、API、SDK或其他方式访问OSS数据。更多信息,请参见文件管理。

OSS Object地址格式如下所示:

oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID

其中,OSS-BUCKET为OSS Bucket名称,OSS-PREFIX为目录前缀,PARTITION-FORMAT为分区格式(由投递时间通过strptime API计算得到),RANDOM-ID是一次投递行为的唯一标识。

说明

OSS投递是攒批进行,每次写一个文件,文件内包括一批数据,文件路径由该批数据中最小的receive_time(数据到达日志服务的时间)决定。投递时需注意如下两种情况:

  • 投递实时数据时(假设5分钟投递一次),例如在2022-01-22 00:00:00进行一次投递,其投递的是2022-01-21 23:55后写入日志服务某Shard的数据。因此,如果您要分析2022-01-22全天的数据,需要查看OSS Bucket中2022/01/22目录下的全部Object,并确定2022/01/21目录下最后几个Object中是否包含2022-01-22的数据。

  • 投递历史数据时,如果Logstore中的数据量比较少,那么投递任务拉取一次数据,可能包含多天的数据,导致2022/01/22目录下的文件包含了2022-01-23全天的数据,2022/01/23目录下没有文件。

分区格式

一次投递对应一个OSS Object地址,其格式为oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID。以创建时间为2022/01/20 19:50:43的投递任务为例,介绍分区格式,如下表所示。

OSS Bucket

OSS Prefix

分区格式

文件后缀

OSS文件路径

test-bucket

test-table

%Y/%m/%d/%H/%M

.suffix

oss://test-bucket/test-table/2022/01/20/19/50_1484913043351525351_2850008.suffix

test-bucket

log_ship_oss_example

year=%Y/mon=%m/day=%d/log_%H%M

.suffix

oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_1950_1484913043351525351_2850008.suffix

test-bucket

log_ship_oss_example

ds=%Y%m%d/%H

.suffix

oss://test-bucket/log_ship_oss_example/ds=20220120/19_1484913043351525351_2850008.suffix

test-bucket

log_ship_oss_example

%Y%m%d/

.suffix

oss://test-bucket/log_ship_oss_example/20220120/_1484913043351525351_2850008.suffix

说明

此格式会导致Hive等平台无法解析对应的OSS内容,建议您不要使用该格式。

test-bucket

log_ship_oss_example

%Y%m%d%H

.suffix

oss://test-bucket/log_ship_oss_example/2022012019_1484913043351525351_2850008.suffix

使用Hive、MaxCompute等大数据平台或阿里云DLA产品分析OSS数据时,如果您希望使用Partition信息,可将文件名中的PARTITION-FORMAT设置为key=value格式。例如:oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet,设置为三层分区列,分别为:year、mon、day。

SDK示例

export_oss_sink_demo.py

相关文章

稳定性说明与使用限制 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备14022346号-15
gongan beian 京公网安备11010802041014号