AnyRobot字段模型是用于定义机器数据结构的抽象模型,包含数据类型、数据类别、字段列表等要素,其中每个字段都具有名称、类型、格式、分词器等属性,这些属性的集合构成了字段的数据结构。
AnyRobot字段模型通过定义字段的名称、类型和格式,确保了数据的一致性和完整性;通过使用分词器等技术对数据进行适当的分割和索引,提高了搜索的效率和准确性;通过定义数据结构规则,优化了存储结构、标准化数据内容。字段模型在AnyRobot中起着决定性的作用,提高数据存储和搜索性能的同时使数据管理和查询操作更加高效和可靠。
AnyRobot 字段模型管理模块支持字段模型的创建(手动创建、批量导入创建)、查看、修改、删除、导出等功能,创建操作的具体说明如下:
提示:您可以参照下方配置说明手动创建所需字段模型,也可以导入包含字段模型配置参数的合规文件批量创建字段模型。
创建流程如下:
快速阅读链接:
1. 配置字段模型基本信息
2. 配置字段模型的模型信息
2)定义索引映射规则(可选)
进入数据管理>数据存储>字段模型配置页面,如下所示:
点击【新建】,进入“新建字段模型”配置页面,如下所示:
配置参数说明详见下表:
配置参数 | 参数说明 | 限制条件 |
*字段模型名称 | 填写字段模型的名称,名称是字段模型的唯一标识。 |
• 字段模型名称不能重复,且不能为空; • ≤40个字符 |
*数据类型 |
根据数据结构特征或应用业务场景,配置数据类型参数。基于此参数,系统可以将具有共同业务场景或共同结构特征的数据,归并为一个可识别的数据类型。 |
• 数据类型为必填项,不能为空,此参数全局唯一; • 数据类型必须以英文字符开头,必须为全小写,且只能包含英文、数字、下划线,不能超过40个字符; • 字段模型保存成功后,不允许修改此参数 |
标签 | 根据实际需求设置字段模型的标签信息,用于业务标识,可通过键入回车键添加多个标签。 |
• 可添加多个标签,标签个数不能超过5个; • 单个标签不能超过40字符; • 标签不能包含 / : ? \\ " < > | : ? ‘ ’ “ ” ! 《 》 , # [ ] { } % & * $ ^ ! = . ' 特殊字符 |
备注 |
根据实际需求填写字段模型的其他属性信息。 |
• ≤255个字符 |
配置参数说明如下:
• *数据类别:选择数据所属类别,可选项:log(日志)数据、trace(链路)数据、metric(指标)数据。
说明:1. 数据类型为必填项,不能为空;
2. 字段模型保存成功后,不支持修改此参数。
• 自定义字段:若需要自定义索引映射规则,您可点击【添加字段】,在弹出的“添加字段”窗口中配置索引字段名称及字段类型,如下所示:
说明:“自定义字段”为可选配置项,未定义的字段如果符合AnyRobot默认的动态模版映射规则将会使用此动态模版中的映射规则,若不符合则将使用ElasticSearch的自动映射规则。
配置参数说明如下:
• *字段名:配置索引映射规则中的索引字段名称。系统包含两类默认的索引映射字段,即系统元字段、业务保留字段。系统元字段为系统默认添加的与系统业务密切相关的字段数据,不支持删除、修改此类字段;业务保留字段为系统默认保留的与系统业务相关的字段数据,配置索引映射规则时,您可添加此类字段,但添加时不支持修改此类字段的字段类型。关于系统元字段及业务保留字段的详细说明,请参见下方:
说明:1.字段名为必填项,不能为空,且不能重复;字段名不能以_、__、@开头。
2. 系统元字段为默认添加的字段数据,默认的系统元字段如下所示,不支持删除、修改此类字段。
系统元字段 | 字段类型 | 备注 |
@timestamp | date | 默认支持两种格式:strict_date_optional_time||epoch_millis |
type | keyword | |
tags | keyword | |
category | keyword | |
__labels_str | keyword | |
__write_time | date | |
__index_base | keyword | |
__data_type | keyword |
3. 业务保留字段为系统默认保留的字段数据,可在配置时将下方的业务保留字段添加为自定义字段,但添加时不支持修改字段类型。
业务保留字段 | 字段类型 |
geoip.ip | ip |
geoip.location | geo_point |
geoip.latitude | half_float |
geoip.longitude | half_float |
source | text |
offset | long |
message | text |
link | text |
fileName | text |
labels | keyword |
metrics | keyword |
__labels_str | keyword |
• *字段类型:配置索引字段的字段类型,字段类型参数决定了AnyRobot未来在存储、索引此字段的规则。请参见下表了解系统当前支持配置的字段类型及不同字段类型的配置规则:
说明:1.字段类型为必选项,不能为空;
2. 关于系统当前支持配置的字段类型及配置规则,以及不同类型字段的冲突类型,具体如下:
字段类型 | 配置规则 |
字符串类型:text、keyword | 当“*字段类型”为“text”时,需配置“text”字段所需的“*分词器”类型,可选项:ik_max_word(中文分词器)、english(英文分词器)。 |
数字类型:byte、long、integer、float、double、short | - |
二进制类型:binary | - |
布尔类型:boolean | - |
日期类型:date | 当“*字段类型”为“date”时,需配置“date”字段对应的“*日期格式”,支持多选。关于可配置的日期格式及格式说明,请参见下方的日期格式说明。 |
日期格式 | 说明 |
epoch_millis |
以毫秒为单位的时间戳,记录自1970年1月1日00:00:00以来的毫秒数。例如,以毫秒为单位的时间戳为'1609459200000',换算后,此时间戳表示的时间为'2021-01-01 00:00:00'。 注意: 1. 此格式不能作为动态时间解析; 2. 此格式可读性差,适用于计算机编程,数据计算、排序和存储等高效数据处理场景。 |
epoch_second |
以秒为单位的时间戳,用于记录自1970年1月1日00:00:00以来的秒数。例如,以秒为单位的时间戳为'1609459200',换算后,此时间戳表示的时间是'2021-01-01 00:00:00'。 注意: 1. 此格式不能作为动态时间解析; 2. 此格式可读性差,适用于计算机编程,数据计算、排序和存储等高效数据处理场景。 |
rfc3339 |
符合 RFC 3339 标准的日期时间格式,通常为严格格式,包括日期、时间和时区信息。具体格式为“yyyy-MM-dd'T'HH:mm:ssZ“,例如'2024-07-31T15:30:00Z',表示的时间为'2024年7月31日15:30:00 UTC'。 注意:RFC 3339 格式直观易懂,且包含时区信息,便于保持不同地区、不同系统之间的数据一致性。适用于不同系统间进行数据交换的场景。 |
rfc3339_lenient |
符合 RFC 3339 标准的宽松日期时间格式,可以接受一些不严格的格式,例如允许毫秒部分、秒的精度、非零时区等。具体格式为“yyyy-MM-dd'T'HH:mm:ss.SSSZ“(可以有其他宽松格式),例如‘2024-07-31T15:30Z’,表示的时间是‘2024年7月31日15:30:00 UTC’,省略了秒的部分。 注意:相较于标准的 RFC 3339,日期字段只要符合RFC 3339 格式的大部分标准既可。此格式允许更灵活的日期格式,并且可以对精度进行额外的限制,适于可能有小范围格式差异的系统。 |
"yyyy-MM-dd HH:mm:ss" |
常见的标准日期时间格式,表示年份(yyyy)、月份(MM)、日期(dd)、小时(HH)、分钟(mm)和秒(ss)的组合,按照24小时制表示日期和时间,通常用于记录时间戳或事件的确切日期和时间。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
"basic_date" |
基本日期格式,仅包括年、月、日。用于表示四位数年份(yyyy),二位数月份(MM)和两位数日期(dd),具体格式为“yyyyMMdd”。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_optional_time |
严格的日期时间格式,通常用于日期时间数据的表示,此种格式日期和时间部分都可选,提供了一定的灵活性。支持的格式:"yyyy-MM-dd"、"yyyy-MM-ddTHH:mm:ss"、"yyyy-MM-ddTHH:mm:ss.SSS"、"yyyy-MM-ddTHH:mm:ss.SSSZ"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_time |
严格的日期时间格式,包括毫秒和时区。具体格式为"yyyy-MM-dd'T'HH:mm:ss.SSSZ"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_time_no_millis |
严格的日期时间格式,不包括毫秒。具体格式为"yyyy-MM-dd'T'HH:mm:ssZ"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date |
严格的日期时间格式,仅包括日期部分。具体格式为"yyyy-MM-dd"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_hour |
严格的日期时间格式,包括日期和小时。具体格式为"yyyy-MM-dd'T'HH"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_hour_minute |
严格的日期时间格式,包括日期、小时和分钟。具体格式为"yyyy-MM-dd'T'HH:mm"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_hour_minute_second |
严格的日期时间格式,包括日期、小时、分钟、秒。具体格式为"yyyy-MM-dd'T'HH:mm:ss"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_date_hour_minute_second_millis |
严格的日期时间格式,包括日期、小时、分钟、秒、毫秒。具体格式为"yyyy-MM-dd'T'HH:mm:ss.SSS"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_year |
严格的年份格式,具体格式为"yyyy"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_year_month |
严格的年份和月份格式,具体格式为"yyyy-MM"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
strict_year_month_day |
严格的年份、月份和日期格式,具体格式为"yyyy-MM-dd"。 注意:此类格式用户可读,适合用户界面展示和日志记录。 |
注意:若数据已完成解析,此处配置的字段类型应避免与解析出的字段类型冲突(请参见字段冲突类型说明),否则将会导致数据写入失败。
完成字段模型的创建操作后,您可以在索引库模块直接引用,字段模型可以为索引库的创建提供必要的基本数据结构参数,帮助快速搭建索引库。
进入字段模型配置页面,点击列表上方的【导入】按钮,在弹出的窗口中选中包含字段模型配置信息的文件,点击【打开】后即可批量导入并创建字段模型。
注意:
1. 仅支持导入json格式的文件;
2. 支持导入多个字段模型:若AnyRobot中存有重名的字段模型对象,系统将提示“是否覆盖已存在字段模型”,点击【确认】后可覆盖已存在字段模型,批量导入创建字段模型操作成功;若AnyRobot中存有的重名字段模型对象处于不可“编辑”状态,系统将无法覆盖已存在字段模型,导入操作停止,批量导入创建字段模型操作失败。
3. 批量导入失败后,您可在审计日志中查看对应的“失败”记录。
在字段模型列表中勾选所需字段模型后,点击列表上方的【导出】按钮,可将已创建的字段模型以“.json”格式导出,如下所示:
提示:支持导出多个字段模型。
► 其他管理操作
完成字段模型的创建操作后,您可以进入 数据管理 > 数据模型 > 字段模型 配置页面,查看字段模型管理列表,列表中展示了系统当前已有的所有字段模型。同时,您可以在此管理列表中查看字段模型配置详情,对字段模型进行修改、删除、导出等管理操作。具体如下:
进入字段模型管理列表页面,点击指定字段模型操作列的“查看”按钮后,可在右侧字段模型详情抽屉中查看配置详情,包括字段模型的配置信息以及状态信息。其中,模型配置信息中可以具体查看模型中的默认的系统元字段、已配置的自定义字段。
说明:
1. 字段模型包括6种状态:正常、创建中、创建失败、更新中、更新失败、删除中;
2. 字段模型详情抽屉中展示的“系统元字段”包括AnyRobot默认的系统内置字段及业务保留字段,不可配置。
点击字段模型管理列表操作列的“编辑”按钮后,您可以进入指定字段模型的编辑页面。进行编辑操作时,需注意以下几点:
注意:
1. 不支持修改处于“创建失败”、“更新失败”以及“创建中”、“更新中”、“删除中”状态下的字段模型。此类状态下的字段模型对应的“编辑”按钮将处于禁用状态,无法进入对应的编辑页面;
2. 进入指定字段模型的编辑界面后,不支持修改字段模型的“数据类型”、“数据类别”配置项;
3. 在修改字段模型定义的字段配置时,请注意修改前后的字段类型之间是否存在冲突关系。当修改的字段类型与原字段类型冲突时,或修改的字段类型与索引库已有字段的类型(其他字段)冲突时,修改操作可以成功保存,但历史索引将处于不可读状态。冲突的字段类型如下所示:
点击字段模型管理列表操作列的“删除”按钮后,您可以删除指定字段模型。需注意,不支持删除已被引用的字段模型。
说明:字段模型被删除后,您可在审计日志中查看相应的“删除”日志。
在字段模型管理列表中勾选所需字段模型,点击列表上方的【导出】按钮,即可将已创建的字段模型以“.json”格式导出,方便其他场景快速引用。
说明:支持同时导出多个字段模型。