本文以网站访问日志为例,为您介绍完整的数据加工流程,帮助您快速熟悉数据加工功能及其操作。
前提条件
已创建名为web-project的Project。具体操作,请参见创建项目Project。
在Project(web-project)中创建名为website_log的源Logstore。具体操作,请参见创建Logstore。
已采集网站访问日志到源Logstore(website_log)。具体操作,请参见数据采集。
在Project(web-project)中创建目标Logstore,具体说明如下:
目标Logstore
说明
website-success
将访问成功的日志存储到存储目标target-success对应的Logstore(website-success)中。
website-fail
将访问失败的日志存储到存储目标target-fail对应的Logstore(website-fail)中。
website-etl
将其他访问日志存储到存储目标target0对应的Logstore(website-etl)中。
如果您使用的是RAM用户,则需要先授予RAM用户数据加工操作权限。具体操作,请参见授予RAM用户数据加工操作权限。
已配置源Logstore和目标Logstore的索引。具体操作,请参见创建索引。
重要数据加工任务不依赖索引,但若不配置索引,将无法执行查询和分析操作。
背景信息
某网站将其所有的访问日志存储在一个Logstore中,现希望为访问成功的日志和访问失败的日志设置不同的日志主题,并分发到不同的Logstore中,便于分析。日志样例如下:
body_bytes_sent:1061
http_user_agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
remote_addr:192.0.2.2
remote_user:vd_yw
request_method:DELETE
request_uri:/request/path-1/file-5
status:207
time_local:10/Jun/2021:19:10:59
步骤一:创建数据加工任务
登录日志服务控制台。
进入数据加工页面。
在Project列表区域,单击目标Project。
在 页签中,单击目标Logstore。
在查询和分析页面,单击数据加工。
在页面右上角,选择数据的时间范围。
选择时间范围后,请确认原始日志页签中存在日志。
在编辑框中,输入加工语句。
e_if(e_search("status:[200,299]"),e_compose(e_set("__topic__","access_success_log"),e_output(name="target-success"))) e_if(e_search("status:[400,499]"),e_compose(e_set("__topic__","access_fail_log"),e_output(name="target-fail")))
e_if函数表示当条件为真时,执行对应的操作。更多信息,请参见e_if。
条件:
e_search("status:[200,299]")
当status字段值满足条件时,执行操作1和操作2。更多信息,请参见e_search。
操作1:
e_set("__topic__","access_success_log")
新增__topic__字段,并赋值access_success_log。更多信息,请参见e_set。
操作2:
e_output(name="target-success", project="web-project", logstore="website-success")
将加工后的数据保存到存储目标中,即存储到名为website-success的Logstore中。更多信息,请参见e_output。
预览数据。
单击快速。
日志服务支持快速预览和高级预览。更多信息,请参见预览调试概述。
单击预览数据。
查看预览结果。
重要预览时不会输出日志到目标Logstore中,而是输出到名为internal-etl-log的Logstore中。internal-etl-log Logstore是您首次执行数据加工预览时,系统在当前Project下自动创建的专属Logstore,不支持修改配置及写入其他数据,不收取任何费用。
创建数据加工任务。
单击保存数据加工。
在创建数据加工任务面板,配置如下参数。
参数
说明
任务名称
数据加工任务的名称。
授权方式
您可以通过如下方式授予数据加工任务读取源Logstore中数据的权限。
默认角色:授予数据加工任务使用阿里云系统角色AliyunLogETLRole来读取源Logstore中的数据。
自定义角色:授予数据加工任务使用自定义角色来读取源Logstore中的数据。
您需先授予自定义角色读取源Logstore数据的权限,然后在角色ARN中输入您自定义角色的ARN。如何授权,请参见通过自定义角色访问数据。
密钥:授予数据加工任务使用阿里云账号或RAM用户的访问密钥来读取源Logstore中的数据。
阿里云账号:阿里云账号的访问密钥具备源Logstore数据读取权限,您在AccessKey ID和AccessKey Secret中输入阿里云账号的访问密钥即可。如何获取访问密钥,请参见访问密钥。
RAM用户:您需先授予RAM用户读取源Logstore数据的权限,然后在AccessKey ID和AccessKey Secret中输入RAM用户的访问密钥。如何授权,请参见通过访问密钥访问数据。
存储目标
目标名称
存储目标的名称。存储目标中包括Project、Logstore等配置。
需与步骤4中所配置的name一致。
说明日志服务默认以序号1中配置的存储目标(本案例中为target0)为默认存储目标,用来存储其他未符合条件的日志。
目标Region
选择目标Project所在地域。
跨地域数据加工使用HTTPS协议传输,确保日志数据的私密性。
跨地域数据加工使用公网传输数据,可能因为公网传输网络的不确定性导致加工任务出现延迟。您可以选中DCDN加速复选框,加快跨地域传输速度。在使用DCDN加速时,需确保对应的Project已开启加速功能。更多信息,请参见采集加速。
重要从日志服务公网域名所在接口拉取数据时,会产生外网读取流量(按照压缩后的数据量计算)。更多信息,请参见按使用功能计费模式计费项。
目标Project
用于存储数据加工结果的目标Project名称。
目标库
用于存储数据加工结果的目标Logstore名称。
授权方式
您可以通过如下方式授予数据加工任务写目标Logstore的权限。
默认角色:授予数据加工任务使用阿里云系统角色AliyunLogETLRole将数据加工结果写入目标Logstore。
自定义角色:授予数据加工任务使用自定义角色将数据加工结果写入目标Logstore。
您需先授予自定义角色写数据到目标Logstore的权限,然后在角色ARN中输入您自定义角色的ARN。如何授权,请参见通过自定义角色访问数据。
密钥:授予数据加工任务使用阿里云账号或RAM用户的访问密钥将数据加工结果写入目标Logstore。
阿里云账号:阿里云账号的访问密钥具备写数据到目标Logstore的权限,您在AccessKey ID和AccessKey Secret中输入阿里云账号的访问密钥即可。如何获取访问密钥,请参见访问密钥。
RAM用户:您需先授予RAM用户写数据到目标Logstore的权限,然后在AccessKey ID和AccessKey Secret中输入RAM用户的访问密钥。如何授权,请参见通过访问密钥访问数据。
加工范围
时间范围
指定数据加工任务的时间范围,详细说明如下:
说明此处的时间范围依赖日志的接收时间。
所有:从Logstore接收到第一条日志的时间点开始数据加工任务,直到加工任务被手动停止。
某时间开始:指定数据加工任务的开始时间,从该时间点开始加工,直到加工任务被手动停止。
特定时间范围:指定数据加工任务的起止时间,加工任务执行到指定时间后自动停止。
单击确定。
将日志分发到目标Logstore后,您可以在目标Logstore中执行查询和分析操作。具体操作,请参见查询和分析日志。
步骤二:查看数据加工任务
在左侧导航栏中,选择
。在数据加工任务列表中,单击目标数据加工任务。
在数据加工概览页面,查看数据加工任务详情。
您可以查看任务详情与状态,修改、启动、停止和删除任务等。具体操作,请参见管理数据加工任务。