转换和富化数据
在许多用例中,您需要在数据摄入 Elasticsearch 时对其进行增强。您的目标可能是过滤掉不需要的数据部分,然后再将其索引。另一个目标可能是重塑数据,例如处理传入的日志文件以符合标准格式。
您可能还希望用额外的信息来丰富您的数据,例如根据产品 ID 附加产品信息,或者根据一组已知的 IP 地址附加供应商信息。
根据您的用例,您可能希望通过自定义 Elasticsearch 如何将传入文档映射到字段和数据类型来控制摄入数据的结构。
最后,为了确保获得最佳的查询结果,您可能需要自定义 Elasticsearch 内部如何分析文本以及如何定义文本字段。
您还可以对现有的 Elasticsearch 索引执行转换(Transform),将数据透视(pivot)为汇总格式,例如按地理位置或浏览器类型细分 Web 请求。要了解更多信息,请参阅 转换数据 (Transforming data)。
- Elastic Agent 处理器
- 您可以使用 Elastic Agent 处理器在源头对原始数据进行清洗或丰富。如果您需要控制通过网络发送的数据,或者需要利用主机上的可用信息来丰富原始数据,请使用 Elastic Agent 处理器。
- Elasticsearch 摄取管道
-
您可以使用 Elasticsearch 摄入管道 (ingest pipelines) 在数据被索引之前丰富传入的数据或规范化字段数据。Elasticsearch 摄入管道使您能够在数据进入时对其进行操作。这种方法有助于避免在您收集数据的主机上增加处理开销。
-
当您定义管道时,您可以配置一个或多个处理器来对传入的数据进行操作。一个典型的用例是将特定的字符串转换为小写,或者将传入数组的元素按给定顺序排序。本节介绍了
- 如何创建、查看、编辑和删除摄入管道
- 如何设置处理器来转换数据
- 如何在投入生产之前测试管道。
-
您可以尝试 解析日志 (Parse logs) 示例,它向您展示了如何设置摄入管道以将传入的服务器日志转换为标准格式。
- Elasticsearch 丰富处理器 (enrich processor) 使您能够根据丰富策略 (enrich policy) 将现有索引中的数据添加到传入的数据中。丰富策略包含一组规则,用于将传入文档与包含要添加数据的字段进行匹配。请参阅 数据丰富 (Data enrichment) 以了解如何设置丰富处理器。您还可以尝试几个示例,这些示例展示了如何根据地理位置、电子邮件地址或 ID 等精确值,或者日期或一组 IP 地址等值的范围来丰富数据。
- Logstash 和 Logstash
elastic_integration 过滤器 -
如果您将 Logstash 用作主要的摄入工具,则可以利用其内置的管道功能来转换数据。您可以通过串联一系列输入、输出、过滤和可选的编解码器 (codec) 插件来配置管道,以操作所有传入数据。
- 如果您使用带有 Elastic 集成的 Elastic Agent 进行摄入,则可以使用 Logstash
elastic_integration 过滤器和其他 Logstash 过滤器,通过在数据进入 Elasticsearch 之前对其进行转换来 扩展 Elastic 集成。 - 摄入延迟
- 计算数据从源头传输到 Elasticsearch 所需的时间。这对于监控性能和发现数据管道中的瓶颈至关重要。请在 计算摄入延迟 (Calculate ingest lag) 中了解操作方法。
- 索引映射
-
索引映射允许您控制传入数据在 Elasticsearch 索引中的结构。您可以定义索引中包含的所有字段及其各自的数据类型。例如,您可以设置日期、数字或地理位置字段,并定义字段以具有特定格式。
-
摄入的数据可以被动态映射(Elasticsearch 根据检测到的数据类型自动添加所有字段),也可以被显式映射(Elasticsearch 根据您的自定义规则将传入数据映射到字段)。
-
您可以使用 Elasticsearch 运行时字段 (runtime fields) 在查询时定义或更改模式。您可以开始使用数据而无需了解其结构,可以在不重新索引数据的情况下向现有文档添加字段,可以覆盖从索引字段返回的值,并可以定义特定用途的字段而无需修改底层模式。
- 请参阅 索引映射 (Index mapping) 页面,了解 Elasticsearch 默认运行的动态映射规则、您可以自定义哪些规则,以及如何配置您自己的显式数据到字段的映射。
- 文本分析
-
与索引映射一样,文本分析是另一种在数据摄入时对数据进行转换的形式。此过程会分析传入的非结构化文本,并以确保给定文本查询的所有相关文档都能被匹配(而不仅仅是精确的字符串匹配)的方式组织它。
- 请参阅 文本分析 (Text analysis) 页面,了解如何配置分析器以在传入文本上运行。您可以选择使用几种内置分析器之一,或者为特定用例创建自定义分析器。