通过日志服务访问RDS MySQL进行数据富化

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

工作原理

使用日志服务数据加工功能,通过RDS内网地址访问RDS MySQL获取数据进行数据富化的过程如图所示:

image

方案概览

使用日志服务数据加工功能,通过RDS内网地址访问RDS MySQL获取数据进行数据富化,只需三步:

  1. 获取数据加工任务中高级参数配置信息:先登录RDS控制台获取RDS MySQL实例信息,再通过OpenAPI调试页面调用接口获取高级参数配置信息。

  2. 在源Logstore中开启数据加工任务:然后配置数据加工规则进行数据富化。

  3. 将加工结果保存到目标Logstore中:最后将加工结果数据保存到目标Logstore。

前提条件

  • 已获取原始日志数据。

  • RDS MySQL实例与日志服务Project需处于同一地域。

步骤一:获取数据加工任务中高级参数配置信息

  1. 登录云数据库RDS控制台

  2. 在左侧菜单栏,单击实例列表找到目标实例并单击进入。

    image

  3. 设置IP地址段白名单。有关白名单更多操作,请参见设置白名单

    1. 在左侧菜单栏,单击白名单与安全组 > 添加白名单分组,填入分组名称以及组内白名单,组内白名单需固定设置为100.104.0.0/16

      image

  4. 获取目标实例ID、内网端口。

    1. 在左侧菜单栏,单击基本信息,在基本信息页面找到实例ID并复制。

      image

    2. 在左侧菜单栏,单击数据库连接,在数据库连接页面查看内网端口并复制。

      image

  5. 获取目标实例VpcIdVpcCloudInstanceId

    1. 打开OpenAPI调试页面,在参数配置 > 输入参数页面找到DBInstanceId实例ID文本框并填入复制好的目标实例ID。关于调用的接口方法。具体详情,请参见DescribeDBInstanceAttribute - 查询实例详情

      image

    2. 点击调用,在调用结果页面复制VpcIdVpcCloudInstanceId

      image

步骤二:在源Logstore中开启数据加工任务

  1. 登录日志服务控制台

  2. 进入数据加工页面。

    1. 在Project列表区域,单击目标Project。

      image

    2. 日志存储 > 日志库页签中,单击目标Logstore。

      image

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

      image

    4. 在数据加工页面,单击切换至数据加工(旧版)。

      image

  3. 添加高级参数配置。

    1. 在页面右上角选择高级,单击预览数据

      image

    2. 添加预览配置页面,单击高级选项,添加如下配置。

      重要

      表格里所有配置参数中的your_name可自定义但需保持一致,并且与加工规则your_name也需保持一致。

      参数

      参数值

      说明

      config.vpc.vpc_id.your_name

      vpc-uf6mskb0b****n9yj

      目标实例VpcId。

      如何获取请参见,获取目标实例VpcId

      config.vpc.instance_id.your_name

      rm-uf6e61k****ahd7-2024091513

      目标实例ID。

      如何获取请参见,获取目标实例VpcCloudInstanceId

      config.vpc.instance_port.your_name

      3306

      目标实例内网地址端口号。

      如何获取请参见,获取目标实例内网端口

      添加配置示例如图所示:

      image

    3. 配置无误后单击右下角确定完成配置。

      image

  4. 编辑加工规则。

    1. 在编辑框中添加如下语句。

      语法格式示例如下,有关数据富化函数以及资源函数具体介绍,请参见,从RDS MySQL数据库获取数据进行数据富化资源函数

      /*
      e_table_map()     数据富化函数。
      res_rds_mysql()   拉取函数,从RDS MySQL数据库中拉取数据库表内容或SQL执行结果。
      str_format()      字符串格式化函数,res_local()中的your_name需和高级参数配置中your_name保持一致。
      field             匹配字段,在Logstore中的日志数据与RDS MySQL数据库表中的数据之间进行匹配时的依据字段,只有当这个字段在两者中的值相同时,才能匹配成功。
      output_fields     输出字段集合,当匹配成功后,会返回这些字段的值,进而生成一条新的日志。
      */
      e_table_map(
          res_rds_mysql(
              str_format("{}:{}", 
                         res_local("config.vpc.instance_id.your_name"), 
                         res_local("config.vpc.instance_port.your_name")), 
              "数据库账号", 
              "数据库密码", 
              "数据库名称",
              table="数据库表名"
          ), 
          "field", 
          "output_fields"
      )

      加工语句如图所示:

      以下规则通过日志服务Logstore中process_time_in_ms字段和RDS MySQL数据库表process_time_in_ms字段进行匹配,只有process_time_in_ms字段的值完全相同,才能匹配成功。匹配成功后,返回RDS MySQL数据库表中modelpurchase_price字段及其字段值,与Logstore中的数据拼接,生成新的数据。

      image

  5. 单击右上角预览数据进行数据加工。

    image

  6. 查看加工结果

    加工规则未匹配成功结果数据如图所示:

    image

    加工规则匹配成功结果数据如图所示:

    image

步骤三:将加工结果保存到目标Logstore中

  1. 单击右下角保存数据加工(旧版),依次填入图中所需信息后点击确定保存。

    image

  2. 在左侧日志库中单击保存了加工结果的目标Logstore,在页面右上角,选择数据的时间范围。

    选择时间范围后,请确认原始日志页签中是否成功保存加工结果数据,如图所示已成功保存。

    image

后续步骤

获取RDS MySQL数据,完成数据富化后,您可以在日志服务控制台上进行数据分析。更多信息,请参见基于日志服务数据加工与RDS MySQL做数据富化以及数据分析

附录:使用内网地址访问AnalyticDB MySQL或PolarDB MySQL数据库

日志服务除了支持通过阿里云内网地址访问RDS MySQL数据库外,还支持通过内网地址访问AnalyticDB MySQL和PolarDB MySQL数据库。相关配置如下所示:

  • AnalyticDB MySQL数据库

    设置高级参数配置时,config.vpc.instance_id.your_name的值需配置为AnalyticDB MySQL实例ID加-controller,如下图所示,其余配置参考此文档即可。

    ADB

  • PolarDB MySQL数据库相关配置参考此文档即可。