本文档介绍如何通过资源函数和映射富化函数从OSS中获取数据对日志数据进行富化。
前提条件
已创建访问密钥(AccessKey),用于访问OSS Bucket,详情请参见创建AccessKey。
推荐创建一个只读权限的AccessKey,用于从OSS获取文件;一个只写权限的AccessKey,用于上传文件到OSS。授权策略详情请参见RAM Policy概述。
已上传CSV文件到OSS,详情请参见控制台上传文件。
推荐使用只具有写权限的AccessKey进行上传。
背景信息
OSS是阿里云提供的海量、安全、低成本、高可靠的云存储服务。针对更新不频繁的数据,建议您存储在OSS上,只需要支付少量的存储费用即可。当您分散存储数据,面临日志数据不完善时,您可以从OSS中获取数据。日志服务数据加工支持使用res_oss_file函数从OSS中获取数据,再使用tab_parse_csv函数构建表格,最后使用e_table_map函数进行字段匹配,返回指定字段和字段值,生成新的日志数据。
实践案例
Logstore中的原始日志
account : Sf24asc4ladDS
OSS Bucket中的CSV文件数据
id
account
nickname
1
Sf24asc4ladDS
多弗朗明哥
2
Sf24asc4ladSA
凯多
3
Sf24asc4ladCD
罗杰
加工规则
通过日志服务Logstore中的account字段和OSS CSV文件中的account字段进行匹配,只有account字段的值完全相同,才能匹配成功。匹配成功后,返回OSS CSV文件中的nickname字段和字段值,与Logstore中的数据拼接,生成新的数据。
e_table_map(tab_parse_csv(res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com', ak_id=res_local("AK_ID"), ak_key=res_local("AK_KEY"), bucket='test', file='account.csv',change_detect_interval=30)), "account","nickname")
res_oss_file函数重要字段说明如下表所示,更多参数说明请参见资源函数。
字段
说明
endpoint
OSS访问域名,详情请参见res_oss_file。
ak_id
具备读OSS权限的AccessKey ID。
出于安全考虑,建议配置为res_local("AK_ID"),表示从高级参数配置中获取。高级参数配置操作步骤请参见创建数据加工任务。
ak_key
具备读OSS权限的AccessKey Secret。
出于安全考虑,建议配置为res_local("AK_KEY"),表示从高级参数配置中获取。
bucket
用于存储CSV文件的OSS Bucket。
file
目标OSS文件的路径。例如test/data.txt,不能以正斜线(/)开头。
change_detect_interval
从OSS拉取文件的时间间隔,单位:秒。拉取时会检查文件是否有更新,如果有更新则刷新。默认为0,表示不刷新,仅在程序启动时拉取一次数据。
加工结果
account : Sf24asc4ladDS nickname: 多弗朗明哥