创建OSS投递任务(旧版)

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

前提条件

背景信息

日志服务支持将Logstore中的数据自动归档到OSS,以发挥更多的数据价值。

  • OSS支持自由设置生命周期,可以长期存储数据。

  • 您可以通过数据处理平台(例如E-MapReduce和DLA)或自建程序消费OSS数据。

支持的地域说明

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

重要
  • 目前华东1(杭州)、华东2(上海)、华东5(南京-本地地域)、华东1金融云、华东2金融云、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5 (呼和浩特)、华北6(乌兰察布)、西南1(成都)、华南1(深圳)、华南2(河源)、华南3(广州)、中国香港、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、日本(东京)、美国(硅谷)、美国(弗吉尼亚)地域支持OSS投递(新版)。更多信息,请参见创建OSS投递任务(新版)。此处旧版投递以华东2(上海)地域的界面为例。

  • 如果Project属于杭州金融云,则只支持投递到杭州金融云公网地域(oss-cn-hzfinance),不支持华东1金融云地域(oss-cn-hzjbp)。

投递数据

重要
  • 开启投递后,日志服务并发执行投递实例。每个Shard都会根据投递大小、投递时间决定实例的生成频率,任一条件满足时,即会生成实例。

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

  1. 登录日志服务控制台

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

    image

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

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

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

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

    参数

    说明

    OSS投递名称

    投递任务的名称。

    OSS Bucket

    OSS Bucket名称。

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

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

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

    文件投递目录

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

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

    分区格式

    按照投递任务的创建时间动态生成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,请参见如下说明:

    投递大小

    每个Shard的投递大小。通过该值控制OSS Object大小(以未压缩计算),取值范围为5~256,单位为MB。

    当每个Shard投递数据大小达到此处设置的大小时,会自动创建一个新的投递任务。

    存储格式

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

    是否压缩

    OSS数据存储的压缩方式。

    • 不压缩:不压缩数据。

    • 压缩(snappy):使用snappy算法压缩数据,可减少OSS Bucket存储空间。

    投递时间

    每个Shard的投递周期。取值范围为300~900,默认值为300,单位为秒。

    当每个Shard投递周期达到此处设置的大小时,会自动创建一个新的投递实例。

查看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 Bucket目录是按照投递任务创建时间设置的。例如:2016-06-23 00:00:00创建投递任务,投递的是2016-06-22 23:55后写入日志服务的数据,假设5分钟投递一次数据到OSS。如果您要分析2016-06-22全天的数据,除了查看2016/06/22目录下的全部object以外,还需要检查2016/06/23/00/目录下前十分钟的Object是否包含2016-06-22的数据。

分区格式

一个投递任务对应一个OSS Bucket目录,目录格式为oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID。PARTITION-FORMAT是根据投递任务的创建时间格式化而得到的,以创建时间为2017/01/20 19:50:43的投递任务为例,介绍分区格式,如下表所示。

OSS Bucket

OSS Prefix

分区格式

OSS文件路径

test-bucket

test-table

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

oss://test-bucket/test-table/2017/01/20/19/50_1484913043351525351_2850008

test-bucket

log_ship_oss_example

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

oss://test-bucket/log_ship_oss_example/year=2017/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet

test-bucket

log_ship_oss_example

ds=%Y%m%d/%H

oss://test-bucket/log_ship_oss_example/ds=20170120/19_1484913043351525351_2850008.snappy

test-bucket

log_ship_oss_example

%Y%m%d/

oss://test-bucket/log_ship_oss_example/20170120/_1484913043351525351_2850008

说明

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

test-bucket

log_ship_oss_example

%Y%m%d%H

oss://test-bucket/log_ship_oss_example/2017012019_1484913043351525351_2850008

使用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。

相关操作

创建投递任务后,您可以在OSS投递管理页面,执行修改投递任务、关闭投递、查看投递任务状态及错误信息、重试投递任务等操作。

  • 修改投递任务

    单击投递配置,修改投递任务。参数详情,请参见本文中的投递数据

  • 关闭投递

    单击关闭投递,即可关闭投递。

  • 查看投递任务状态及错误信息

    日志服务支持查看过去两天内的所有投递任务及其投递状态。

    • 任务状态

      状态

      说明

      成功

      投递任务正常运行。

      进行中

      投递任务进行中,请稍后查看是否投递成功。

      失败

      因外部原因而无法重试的错误导致投递任务失败,请根据错误信息进行排查并重试。

    • 错误信息

      如果投递任务出现错误,控制台上会显示相应的错误信息。

      错误信息

      错误原因

      处理方法

      UnAuthorized

      没有权限。

      请确认以下配置:

      • OSS Bucket拥有者是否已创建AliyunLogDefaultRole角色。

      • 角色描述中配置的阿里云账号ID是否正确。

      • AliyunLogDefaultRole角色是否被授予OSS Bucket写权限。

      • RAM角色标识是否配置正确。

      ConfigNotExist

      配置不存在。

      一般是由于关闭投递导致的。请在重新开启投递任务后,通过重试解决。

      InvalidOssBucket

      OSS Bucket不存在。

      请确认以下配置:

      • OSS Bucket所在地域与日志服务Project所在地域是否相同。

      • Bucket名称是否配置正确。

      InternalServerError

      日志服务内部错误。

      通过重试解决。

    • 重试任务

      日志服务会按照策略默认为您重试,您也可以手动重试。日志服务默认重试最近两天之内所有失败的任务,重试等待的最小间隔是15分钟。当任务执行失败时,第一次失败需要等待15分钟再进行重试,第二次失败需要等待30分钟再进行重试,第三次失败需要等待60分钟再进行重试,以此类推。

      如果您需要立即重试失败任务,请单击重试全部失败任务、目标任务右侧的重试或通过API、SDK指定任务进行重试。