带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (1)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (1)

3.5.13.Transform


创作人:骆潇龙

审稿人:刘帅

 

概述

 

Elasticsearch 为用户提供了强大全文搜索功能,但是以扫描聚合操作为核心的 OLAP 计算并不是 Elasticsearch 的强项。这些劣势主要有:多维度分组时排序、分页效果不好;复杂聚合(Composite aggregation)后无法按照分组文档个数进行排序;不支持 Join 查询;无法高效获取聚合操作中每个分桶的精确信息(获取 TopN 十分高效)。产生这些劣势的主要原因有,Elasticsearch 本质是基于 Lucene 的分布式系统,底层数据的存储结构混合使用了列式存储和行式存储,采用Scatter-Gather计算模型。聚合时先将请求分散到各个 shard 上独立进行计算,然后由协调节点收集所有结果计算出最终结果。

 

为了弥补 OLAP 计算上的不足,较低搜索成本,Elasticsearch 提出得解决思路是预计算聚合结果并落地保存,这样业务使用时只用简单聚合,甚至直接查询就可得出结果。该功能可在

7.2版本以后用Transforms API 来实现。Transforms API 允许用户定义 Transforms 任务,每隔一段时间对某1个索引执行聚合计算,并将结果保存在新的索引中。通过此功能用户可以将以事件流水为中心的索引转化为记录实体行为的汇总索引,以便进行数据分析。

 

本文主要为大家介绍如何使用 Transforms 功能。为了让大家对其有个感性认识,本文首先会介绍如何在 Kibana 上快速配置 Transforms 任务。然后,以生命周期为依据,介绍如何使用API 创建、执行、修改和关闭 Transform 任务。最后,将介绍一些 Transform 使用建议,主要包括何时用 Transforms 代替 aggregations,Transforms 任务变更检测机制 —— checkpoint 以及 Transforms 的一些限制。

 

快速开始


本小节介绍如何在 Kibana 使用自带的Sample eCommerce Order数据快速创建并执行

Transforms 任务。Sample eCommerce Order数据 Elasticsearch 提供的样例数据,这些数据是1家电子商务公司的订单流水表。基于这些数据我们希望得到每个用户的消费汇总信息,此时使用 Transforms 功能代替频繁的 aggregations 操作是明智的选择。

 

添加数据集

 

在 Kibana 首页选择添加数据

image.png


选择添加Sample eCommerce Order样例数据。


image.png


创建并执行 Transforms 任务

 

首页点击 Manage->Transforms 进入任务管理页面,点击 Create a transforms 创建任务,并选择 [eCommerce]Order 索引。

 

image.png

image.png

image.png


配置1个 Transforms 任务总共分3步,第一步,选择分组属性和聚合方式。本例中用用户ID 作为分组属性,用购买商品数、税前订单价和订单 ID 作为聚合属性,计算每个用户购买的总商品数据,单个订单最多购买商品数,总消费金额以及每个用户下单总数。


image.png


第二步,设置任务基本信息,主要包括,任务 id、新索引名称、执行模式。


image.png


第三步,执行,点击Create and start,开始实际执行任务。执行完成后会出现新的索引

ecommerce-user-consumes

image.png

Transforms 管理

 

执行完成后,我们可以在Transforms任务管理栏浏览、修改、删除任务。


image.png


Transforms API 介绍

 

上一小节我们介绍了在 Kibana 上配置 Transforms 任务,本小节将详细介绍如何用 REST

API 管理 Transforms 任务。Transforms 任务一样都有生命周期的概念。1个完整的 Transforms 任务的生命周期主要包括:前期准备、任务初始化及开始、任务维护、任务销毁。在任务维护中可以监控任务运行状态、暂停并修改任务。下面将详细介绍这几个环节的 API。

 


 《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.13.Transform (2) https://developer.aliyun.com/article/1228176


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
监控 API 调度
带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (3)
带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (3)
127 0
|
SQL 安全 API
带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (2)
带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (2)
157 0
|
机器学习/深度学习 API 索引
带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (4)
带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (4)
138 0
|
SQL 存储 JSON
带你读《Elastic Stack 实战手册》之49:——3.5.8.Canvas
带你读《Elastic Stack 实战手册》之49:——3.5.8.Canvas
114 0
|
数据可视化 NoSQL API
带你读《Elastic Stack 实战手册》之45:——3.5.4.Graph (下)
带你读《Elastic Stack 实战手册》之45:——3.5.4.Graph (下)
170 0
|
存储 资源调度 NoSQL
带你读《Elastic Stack 实战手册》之45:——3.5.4.Graph (上)
带你读《Elastic Stack 实战手册》之45:——3.5.4.Graph (上)
162 0
|
SQL 自然语言处理 监控
带你读《Elastic Stack 实战手册》之2:——二、导读(上)
带你读《Elastic Stack 实战手册》之2:——二、导读(上)
354 0
|
存储 运维 监控
带你读《Elastic Stack 实战手册》之2:——二、导读(下)
带你读《Elastic Stack 实战手册》之2:——二、导读(下)
281 0
|
JSON Java 数据格式
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(下)
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(下)
117 0
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(上)
带你读《Elastic Stack 实战手册》之33:——3.4.2.17.2.Schemaless(上)
131 0