创作人:李增胜
Elastic 提供了三种方式进行数据加工处理:Logstash、Beats Processors 以及 Ingest Pipeline,本文着重介绍 Ingest Pipeline,以下比较了 Logstash 与 Ingest Pipeline的一些区别,便于在实际业务场景中选择:
种类部署数据缓冲数据处理数据源Logstash需要另外部署,增加复杂性采用队列机制缓冲数据,多队列支持支持大量processors,远超 ingest支持外部数据源,如MYSQL、Kafka、Beats等Ingest pipeline无需另外部署,易于扩展无缓冲策略支持超过30种processorsIngest 也可和 Beats 或者 Logstash 解决特定场景数据源问题总结:如果业务场景 Ingest pipeline 已经能处理完成,则无需使用 Logstash ,相反,如果业务处理数据场景要支持外部数据源,则选择 Logstash如果业务场景需要缓冲数据,则采用 Logstash 较优如果数据处理完成后需要输出到非 Elasticsearch 内部,则采用 Logstash在简化配置方便,如果想配置简单,则选择 Elasticsearch ingest pipeline 即可显然,Ingest pipeline 并非 Logstatsh 的替代品,需要根据自己的业务处理数据的要求和架构设计来选择对应的技术,并非二选一,也可以同时使用,对处理不同数据采用不同的技术架构。
Kibana Dev Tools 管理 PipelineIngest Pipeline用于预处理数据,由 Elasticsearch Ingest Node 节点负责运行处理,如需要系统性能提升可单独部署 Ingest Node 节点
优点:
由 Ingest Node 节点负责处理,职责清晰更多 Processors 支持,扩展性强轻量级,覆盖了 Logstash 大多常用场景Ingest Pipeline 是一系列处理管道,由一系列的 Processors 组成处理,先来看下 pipeline 的处理过程:
在 Kibana 中也可以创建 Ingest pipeline,在稍微章节给出示例。
常用 的 Processors 如下
更多 Pipeline Processors 参考更多;https://www.elastic.co/guide/en/elasticsearch/reference/master/processors.htmlTrim
去除空格,如果是字符串类型的数组,数组中所有字符串都会被替换空格处理
Split
切分字符串,使用指定切分符,切分字符串为数组结构,只作用与字符串类型
Rename
重命名字段
Foreach
对一组数据进行相同的预处理,可以使用 Foreach
Lowercase / Uppercase
对字段进行大小写转换
Script
使用脚本语言进行数据预处理
Gsub
对字符串进行替换
Append
添加数据到数组
Set
设置字段值
Remove
移除字段
Trim去除字符串中的空格
PUT _ingest/pipeline/trim_pipeline "processors": [ "foreach": { "field": "message", "processor": { "trim": { "field": "_ingest._value" POST _ingest/pipeline/trim_pipeline/_simulate "docs": [ "_source": { "message": [ "car222 ", " auto2222 " "docs" : [ "doc" : { "_index" : "_index", "_type" : "_doc", "_id" : "_id", "_source" : { "message" : [ "car222", "auto2222" "_ingest" : { "_value" : null, "timestamp" : "2021-04-28T13:19:13.542743Z"Split / Foreach
切分字符串,使用指定切分符,切分字符串为数组结构,只作用于字符串类型
PUT _ingest/pipeline/split_pipeline "processors": [ "foreach": { "field": "message", "processor": { "split": { "field": "_ingest._value", "separator": " " POST _ingest/pipeline/split_pipeline/_simulate "docs": [ "_source": { "message": [ "car222 aaa", " auto2222 aaaa bbb" #返回,可以看到 message 按照空格切分为了多个字符串数组 "docs" : [ "doc" : { "_index" : "_index", "_type" : "_doc", "_id" : "_id", "_source" : { "message" : [ "car222", "aaa" "auto2222", "aaaa", "bbb" "_ingest" : { "_value" : null, "timestamp" : "2021-04-28T13:28:20.762312Z"Rename
重命名一个字段, rename 往往和 reindex 结合使用
POST goods_info_comment_message/_bulk {"index":{"_id":1}} {"message":"美 国苹果 "} {"index":{"_id":2}} {"message":"山东 苹果 "}
本文转自网络,原文链接:https://developer.aliyun.com/article/784090
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
问题描述 Linux裸金属服务器的静态主机名来源于创建裸金属服务器时,通过控制台...
边缘计算的下一步是什么,它将如何影响您的战略?专家权衡边缘趋势并讨论工作负载...
背景介绍 ? ? ? ? 为了摸底项目的性能,需要进行性能测试。经过一番调研之后,决...
一、数据结构的存储方式 数据结构的存储方式只有两种:数组(顺序存储)和链表(链...
云岫资本企服组 2021 年 3 月 【前言】随着业务上云、生态协作、多云混合等场景...
TOP云 1月11日讯,纵观上周西数平台的交易纪录,在一口价前三和竞拍价前三的榜单...
阿里巴巴程序员的速度 论技术水平没得说 论干饭能力 也是惊人 阿里人1年吃掉495...
根据裸金属服务器的网络设置,以及您本地设备的操作系统,您可以选择合适的方法...
基本介绍 过去十年来,OAuth2授权协议备受争议,您可能已经听说过很多return_uri...
无论是专业的数据分析师还是销售、人力等基本的业务岗位,在汇报时总是免不了要...