从OSS获取CSV文件进行数据富化

本文档介绍如何通过资源函数和映射富化函数从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"),表示从高级参数配置中获取。高级参数配置操作步骤请参见创建数据加工任务AccessKey

    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: 多弗朗明哥