赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据加工
  6. 数据加工(旧版)
  7. 最佳实践
  8. 数据富化
  9. 使用资源函数增量获取数据

使用资源函数增量获取数据

  • 数据富化
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

使用增量拉取模式获取数据时,日志服务每次只拉取新增或更新的数据,效率高。本文介绍如何使用res_rds_mysql函数增量获取RDS MySQL数据库中的数据。

前提条件

  • 日志服务

    • 已上传数据到日志服务源Logstore中。具体操作,请参见数据采集。

    • 已创建日志服务目标Logstore。具体操作,请参见创建Logstore。

    • 如果您使用的是RAM用户,则需要先授予RAM用户数据加工操作权限。具体操作,请参见授予RAM用户数据加工操作权限。

    • 已配置源Logstore和目标Logstore的索引。具体操作,请参见创建索引。

      数据加工任务不依赖索引;但不配置索引,您无法执行查询和分析操作。

  • RDS

    • 已创建RDS数据库和账号。具体操作,请参见创建数据库和账号。

    • 已上传数据到RDS MySQL数据库表。

    • 已配置RDS MySQL白名单。具体操作,请参见通过客户端、命令行连接RDS MySQL实例。

      重要

      使用res_rds_mysql函数从RDS MySQL数据库中拉取数据时,需先在RDS MySQL中配置白名单为0.0.0.0,使所有IP地址都可访问数据库,但是这种方式会增加数据库的风险。如果您需要设置指定的日志服务IP地址,可以提工单进行配置。

背景信息

某科技公司将客户信息保存在云数据库RDS MySQL数据库中,将客户维护记录保存在日志服务的Logstore中,两种数据都在持续更新。现在该公司希望将两种数据JOIN后保存到一个新的Logstore中。

日志服务提供res_rds_mysql函数,可从RDS MySQL数据库中拉取数据,保存到目标Logstore中。增量拉取模式下,在加工任务运行过程中,日志服务根据数据库中的时间戳字段增量拉取数据,只拉取更新或新增的数据,效率高。适用于数据库中的数据量大、更新频繁、删除数据较少、数据加工实时性要求高的场景。

其他拉取模式以及增量拉取的更多信息,请参见res_rds_mysql。

资源信息与数据示例

  • 日志服务资源

    • Project:client-project

    • 源Logstore:client-log

      数据样例如下所示:

      Logstore

    • 目标Logstore:client-information

  • RDS资源

    • 数据库:client-db

    • 数据库表:client

      数据样例如下所示:

      RDS数据库

    • 数据库用户名和密码:test/test1234@@

    • 数据库外网地址:rm-bp1k****tp8o.mysql.rds.aliyuncs.com

操作步骤

  1. 登录日志服务控制台。

  2. 进入数据加工页面。

    1. 在Project列表中,单击目标Project(client-project)。

    2. 在日志存储 > 日志库页签中,单击目标Logstore(client-log)。

    3. 在查询和分析页面,单击数据加工。

  3. 在页面右上角,选择数据的时间范围。

    请确保在原始日志页签中有日志数据。

  4. 在编辑框中,输入数据加工语句。

    详细的参数说明,请参见res_rds_mysql。

    e_table_map(
        res_rds_mysql(
            "rm-bp1k****tp8o.mysql.rds.aliyuncs.com",     
            "test",
            "test1234@@",
            "client-db",
            table="client",
            fields=["c_id", "name", "telephone", "update_time"],
            refresh_interval=1,
            primary_keys="c_id",
            update_time_key="update_time",
            deleted_flag_key=None,
        ),
        "c_id",
        ["name", "telephone"],
    )
  5. 快速预览数据。

    使用快速预览,确保加工语句填写正确。更多信息,请参见快速预览。

    1. 单击快速。

    2. 在测试数据 > 数据页签中输入如下内容。

      {
        "__source__": "192.0.2.0",
        "__time__": 1624956516,
        "__topic__": "log",
        "__tag__:__client_ip__":"192.0.2.2",
        "c_id": "1",
        "staff_id": "002",
        "status": "持续跟进",
        "tag": "二次回访",
      }
    3. 在测试数据 > 维表页签中输入如下内容。

      c_id,name,telephone,update_time,delete_flag
      1,maki,010-123,1606358931,false
    4. 单击预览数据。

      查看预览结果。快速预览结果

  6. 高级预览数据。

    使用高级预览,确保日志服务连接RDS MySQL数据库成功。更多信息,请参见高级预览。

    1. 单击高级。

    2. 单击预览数据。

    3. 在添加预览配置面板中,配置授权方式,然后单击确定。

      授权

    4. 查看预览结果。

      高级预览结果

      如果提示运行出错,请参见获取RDS MySQL数据语法错误。

  7. 创建数据加工任务。

    1. 单击保存数据加工。

    2. 在创建数据加工任务面板中,配置相关信息,然后单击确定。

      具体参数说明,请参见创建数据加工任务。加工规则

      创建数据加工任务后,您可以在目标Logstore中查看已加工的日志。加工结果

常见问题

如何使用增量更新模式中的删除功能?

增量更新模式下,日志服务会根据数据库表中的主键和时间,只拉取更新或新增的数据。如果您在数据库表中将某条数据标记为删除(例如delete_flag=true),日志服务依旧会拉取该数据继续加工。针对该情况时,日志服务在res_rds_mysql函数中新增了deleted_flag_key参数。在加工语句中配置deleted_flag_key参数后,加工任务在获取数据库表更新的数据后,会将读取到的delete_flag为true的数据行从加工任务的内存维表中删除(不影响数据库表的内容)。在加工任务内存维表中被删除的数据行将不再参与后续与日志数据JOIN的操作。

重要
  • delete_flag设置为true、1等值时,都表示删除。更多信息,请参见res_rds_mysql。

  • 如果在加工语句中配置了deleted_flag_key参数,则还需配置update_time_key参数。

例如在RDS MySQL数据库表中新增两条数据(name=mia,name=tom),其中name=mia这条数据被标记为删除,即设置delete_flag为true。则日志服务内存维表更新时,name=mia这条数据在维表中被删除,不会被加工。

image

加工语句示例如下:

e_table_map(
    res_rds_mysql(
        "rm-bp1****l3tp.mysql.rds.aliyuncs.com",     
        "test",
        "test1234@@",
        "client-db",
        table="client",
        fields=["c_id", "name", "telephone", "update_time"],
        refresh_interval=1,
        primary_keys="c_id",
        update_time_key="update_time",
        deleted_flag_key="delete_flag",
    ),
    "c_id",
    ["name", "telephone"],
)
                        
相关文章

从其他Logstore获取数据进行数据富化 2025-04-22 10:53

本文档介绍如何通过资源函数从其他Logstore中获取数据对数据进行富化。 背景信息 某酒店将客人个人信息存储在名为user_logstore的Logstore中,将客人入住信息存储在名为check-in_logstore的Logstore中,现

从OSS获取IPIP库进行IP地址数据富化 2025-04-22 10:53

日志服务数据加工功能支持从OSS获取IPIP库数据,对日志中的IP地址进行富化,补充IP地址所属的国家、省、市等信息。 前提条件

从OSS获取IP2Location库进行IP地址数据富化 2025-04-22 10:53

日志服务数据加工功能支持从OSS获取IP2Location库数据,对日志中的IP地址进行富化,补充IP地址所属的国家、省、市等信息。 前提条件

从OSS获取CSV文件进行数据富化 2025-04-22 10:53

本文档介绍如何通过资源函数和映射富化函数从OSS中获取数据对日志数据进行富化。 前提条件

从RDS MySQL数据库获取数据进行数据富化 2025-04-22 10:53

日志服务数据加工功能支持从阿里云RDS MySQL数据库获取数据,结合数据加工规则,进行数据富化。 背景信息 在数据存储场景中,您可能经常遇到数据分散存储的问题,例如用户操作、行为等相关数据存储在日志

通过日志服务访问RDS MySQL进行数据富化 2025-04-22 10:53

当数据分别存储在日志服务的Logstore和RDS MySQL数据库中时,您可以使用日志服务的数据加工功能,通过RDS的内网地址访问RDS MySQL数据库以获取数据,进而实现数据富化。 工作原理 使用日志服务数据加工功能,通过RDS内网地址访问RDS MySQL获取数据进行数据富化的过程如图所示:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号