Datatype 数据源类型
Datatype
数据源类型(Datatype)的编程接口。数据源类型是炎凰数据平台的重要概念,用于描述数据源的类型信息,包括数据源的类型名称、数据源的类型配置信息等。
数据源类型中还定义了如何去解析字段的规则,例如event break, delimiter等, 当然最终要的还是如何去解析_time字段,也就是时间戳信息。 在炎凰数据平台中,系统会根据数据源类型来对数据源进行分类,例如: 数据源类型为JSON的数据在进入到炎凰数据平台时,系统会根据名称为JSON的内置数据源类型去解析字段,并将解析结果建立索引,一边后续的使用以及查询。 而数据源类型的属性有以下这些:
firstline_format
, 用于多行文本合并,表示事件第一行的格式discard_raw_message
, 是否设置_message
字段为空字符串,默认是False。- 例如,在导入数据库的数据的时候,因为所有字段都已经是索引字段了,没有必要再拼装
_message
字段,可以设置该属性为True。
- 例如,在导入数据库的数据的时候,因为所有字段都已经是索引字段了,没有必要再拼装
timestamp_timezone
, 默认值是东八区+08:00。只有在设置了timestamp_format之后,才会生效。如果timestamp_format为空值,则时区的设置不生效。timestamp_field
, 指定索引时字段的字段名,这个字段中存储了事件的时间戳。该属性只有timestamp_config
为 "field"的时候才生效。timestamp_format
, 时间戳的格式,- 例如
%Y/%m/%d %H:%M:%S
之类, 具体可以参考这里
- 例如
delimiter
, 分隔符,影响到字段的解析timestamp_regex
, 时间戳的正则解析表达式, 当timestamp_config
为regex
时,需要配置该字段ingestion_time_extraction
, 该属性用于配置数据索引阶段字段的抽取模式。合法值只能是csv,json和none三者中的一个,默认值是none。- csv表示事件的格式是类似csv格式的,并且在构建索引的时候将每个字段都解析出来作为索引时字段存到到索引中。
- json表示事件的格式是json格式的,并且在构建索引的时候将每个字段都解析出来作为索引时字段存储到索引中。
- none是默认的值,只会对 _time, _datatype, _host, _source 字段做索引。
timestamp_config
, 时间戳配置,包括:auto
, 自动识别时间戳 (默认)current
, 使用当前时间作为时间戳regex
, 使用正则表达式来识别时间戳, 需要配置timestamp_regex
字段field
, 使用指定字段来识别时间戳, 需要配置timestamp_field
,timestamp_format
,timestamp_timezone
属性
ingestion_time_field_names
, 该属性用于配置数据索引阶段字段的名称,当ingestion_time_extraction是csv的时候,如果csv文件没有包含表头(header)信息,则可以把表头信息设置在这个字段当中。search_time_extraction
, 查询时的字段加工,建议通过页面“字段加工”或者查询页面中的“抽取更多字段”等功能来定义一个查询时的字段加工。这里使用其定义好的id
示例 1:
const datatype = new Datatype(); datatype.init(catalogService, 'test_data_type'); datatype.fetch().then(() => {}); // 增加属性或者修改属性都是调用update方法 datatype.update({ name: 'test_data_type', attributes: { "firstline_format": "", "ingestion_time_extraction": "json", "timestamp_config": "auto", "delimiter": "," } })