本文档介绍如何通过资源函数和映射富化函数从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: 多弗朗明哥