更新时间:2023-12-07 16:54:15

完成数据字典的配置后,您可以在数据解析模块直接使用键值类型的数据字典中已预先配置的数据映射关系,将解析后的数据与其进行关联整合,帮助构建更丰富的数据基础。具体说明如下:

1. 连接 AnyRobot 数据库

进入AnyRobot 数据源>远程采集>数据库连接页面,点击【新建】按钮,进行连接AnyRobot数据库的相关配置操作。如下所示:

元素名称 元素说明
*名称 设置数据库连接的名称。例如:数据字典
*类型 选择AnyRobot数据库的类型。例如:MySQL
*主机

设置AnyRobot数据库的主机域名或IP地址。例如:mariadb-proton-rds-mariadb.anyrobot

*端口

设置AnyRobot数据库连接的端口。例如:3306(MySQL数据库的默认端口)

*用户名

设置AnyRobot MySQL数据库的登陆用户名。

提示:请联系 AnyRobot 管理员获取登录用户名信息

*密码

设置AnyRobot数据库的登陆密码。

提示:请联系 AnyRobot 管理员获取登陆密码信息

*字符集

设置数据库类型对应的字符集。例如:utf8

*数据库名

设置数据库名称。例如:AnyRobot

说明:上方以连接AnyRobot自身数据库为例进行了相应配置参数的示意,此场景下您可直接参考上方参数配置数据库连接,但具体配置参数仍需以实际场景需求为准。

2. 使用数据字典修改解析后的数据

1)配置解析规则,解析日志数据

进入AnyRobot 数据管理>数据存储>解析规则页面,点击【新建】按钮,在配置页面中设置解析规则名称,添加筛选条件,对原始日志进行JSON解析。如下所示

注意:完成解析规则的配置后,基于原始日志的解析结果将展示在页面右侧,如上图所示。

2)远程查询数据库,获取数据库数据

点击【添加数据库数据】按钮,在展开的表单中配置远程查询参数,以使用数据字典获取数据库中的指定数据集,并缓存至本地。如下所示:

元素名称 元素说明
查询执行计划

根据实际业务需求设置远程查询的执行周期,将鼠标移至“”图标上方可查看AnyRobot当前支持的执行计划的具体填写格式。

单次查询行数

根据实际业务需求设置单次查询行数,建议大于数据字典的实际记录数,否则查询结果中将出现异常信息。

例如:数据字典表最大允许有 1000 条记录,则行数可以设置为 5000

查询名称

自定义远程查询名称。

注意:远程查询名称不允许与其他参数重名

数据库连接

在下拉框中选择已创建的数据库,并进行连接验证。

SQL 语句

自定义远程查询的 SQL 语句,用于获取数据库中的表数据。

注意:SQL语句基本格式要求:“select<需要返回的字段> from<需要查询的表名> where <查询条件>”。如上图所示,WHERE语句中的dict_name IN后,应填写要使用的数据字典名称。

本地缓存表名称

自定义本地缓存表的名称,即“bfo_ab8_rpo”,用于存放此查询操作从数据库获取到的数据集。

注意:本地缓存表名称不允许与其他参数重名

表列定义

定义本地缓存表中的列名称、类型和长度等信息。

注意:本地缓存表中的列必须与  SQL 查询返回结果的列在顺序上保持一致,名称可以自定义,具体如下:

•名称:表列名称必须根据 SQL 返回结果中的列顺序进行依次定义,即依次定义  dict_name_s 、key_s、value 三列的列名称;

•类型:字段数据类型必须与数据字典表中的类型保持一致,即 VARCHAR;

•长度:字段长度并不能为 0 ,若填写  0 会导致系统异常

表索引列

定义本地缓存表中的索引列,即“key_s”。

完成配置后,系统将基于配置的 SQL 语句从数据库中查询并获取数据,获取到的数据集将存放于本地缓存表(即名为“bfo_ab8_rpov”的缓存表)中。

3)查询本地缓存表,提取所需数据集

进入关联日志配置区域,配置所需的目标字段,定义查询条件获取所需数据集作为目标字段的字段值。如下所示:

元素名称
元素说明

SQL 语句

用于查询并提取本地缓存数据表中的缓存数据,并将其添加到当前的日志数据中。

注意:当 SQL 语句中需添加自定义变量时,需在自定义变量前加上冒号":"。以上图为例," key_s "作为自定义变量,对应的 SQL 语句为" WHERE key_s=:key "。

自定义变量

定义SQL语句中自定义变量对应的日志中已解析字段。完成配置后,解析规则将使用此处配置的日志字段(“任务实例状态”)的值替换SQL语句中的自定义变量(“key”),例如:在上图所示的关联日志配置中,选取日志中已解析出的日志字段【任务实例状态】代替自定义变量,日志字段对应的字段值将作为查询条件,用于查询需新增/替换(具体修改方法以步骤4)为准)到日志数据中的数据。

注意:

• 支持将多个日志字段进行拼接,拼接字段中间的连接符可根据实际情况修改,若无连接符则无需填写;

• 数据字典的“键”或者“维度键”应与解析后的日志字段的值对应,而字典对应的“值”或者“维度属性”应配置为需要替换的可读性较高的或者其他满足业务需求的数据;

•日志字段若为多级字段,需参照"[a][b][c]"的格式进行填写,如:[china][shanghai][pudong]。

目标字段

目标字段为添加到日志数据中的新字段,目标字段的值为通过上述 SQL 语句在本地缓存表中查询到的数据集。

注意:目标字段名称不允许与其他参数重名。

完成配置后,系统将基于已配置的 SQL 语句从本地缓存表中查询并获取缓存数据,获取到的数据集即为自定义目标字段的值。

4)配置关联日志的修改方法

点击【修改字段】按钮,在修改方法的表单中配置修改关联日志的前置条件(仅当前置条件为“是”时,方可修改当前日志)、配置修改方法、定义需修改的字段名称及字段值。下图以替换解析后已提取的日志字段的值为例进行说明:

元素名称
元素说明

前置条件

前置条件位于每一层解析之前,为该层解析提供限制规则,用于解决同类日志数据中某些字段可能不存在的场景,此类场景中若进行全局解析可能会造成解析不准确的问题。

注意:执行前置条件验证前,需保证前置条件中的条件对象字段已完成解析提取。

修改方法

选择修改方法。例如:上图配置中采用“替换字段值”的方法,【任务实例状态】为需要替换掉的字段,“=”后文本框中的内容为需要替换成的字段值。替换后,已解析的日志数据中的【任务实例状态】字段的值将被替换为“instance_status_tmp[0].value”,即步骤3)提取的数据集中第一个元素对应的值。

注意:

• "%{}"格式中需要填写要引用的具体字段名称,详细说明请参见 修改字段。 

• 支持将多个日志字段进行拼接,拼接字段中间的连接符可根据实际情况修改,若无连接符则无需填写;

•  数据字典的“键”或者“维度键”应与解析后的日志字段的值对应,而字典对应的“值”或者“维度属性”应配置为需要替换的可读性较高的或者其他满足业务需求的数据;

• 日志字段若为多级字段,需参照"[a][b][c]"的格式进行填写,如:[china][shanghai][pudong]。

注意:执行前置条件验证前,需保证前置条件中的条件对象字段已完成解析提取。

配置完成且前置条件验证通过后,系统将根据已配置的修改方法将【任务实例状态】字段的值替换为【instance_status_tmp】字段值对应的数据集中第一个元素对应的值,如下所示。

说明:上文与数据库连接、远程查询、关联日志、修改字段、前置条件相关的配置参数已在相关章节详述,此处不再赘述,详情请参考《 AnyRobot Family 产品使用指导》数据库连接添加数据库数据修改字段前置条件 章节。