带你读《Elastic Stack 实战手册》之54:——3.5.13.Transform (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


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
监控 安全 Linux
Qt 文件类实战:解锁文件操作的无限可能
Qt 文件类实战:解锁文件操作的无限可能
1012 1
|
搜索推荐 机器学习/深度学习 算法
如何增加用户的参与感?交互式推荐来了!
一方面,互动能让用户感受到更多的参与感,并能一定程度上干预推荐结果,而不只是被动接受推荐结果;另一方面,系统通过与用户的互动能更加了解用户的偏好,从而提升推荐效果。那么,我们是如何让用户和推荐系统互动起来的呢?且看下文。
5846 0
|
4月前
|
缓存 Java PHP
包管理生态的深度对比——从Composer、Maven到Conan的演进逻辑
包管理解决了三个问题:依赖发现(哪里找到库)、依赖描述(需要什么版本)、依赖解析(版本冲突解决)以及依赖传递(A依赖B,B依赖C)。PHP、Java、C++的包管理器因语言运行时特性和社区文化而形态各异。
164 0
|
7月前
|
人工智能 JSON 网络协议
AI 大模型 LLM API 深入解析:Gemini 3.0 Pro 的 SSE 流式响应与大模型接口跨区域延迟优化实践
本文对比Google Vertex AI与OpenAI在SSE协议处理上的差异,针对跨洋网络高延迟问题,提出通过聚合层优化TTFT。结合GRPC与REST的适配挑战,引入协议转换网关,实测P99延迟降低75%,显著提升连接稳定性与首 token 速度。
614 2
|
7月前
|
存储 人工智能 运维
真实案例复盘:从“三套烟囱”到 All in ES,这家企业如何砍掉 40%运维成本
某泛娱乐平台面临搜索架构复杂、成本高企难题,通过阿里云Elasticsearch实现日志、搜索、向量一体化重构。借助Serverless化与混合存储,成本降60%,运维统一,查询效率倍增,验证了“All in ES”极简架构在AI时代的高效与可扩展性。
445 1
|
监控 前端开发 网络协议
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
【2月更文挑战第7天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的监控面板了。监控面板主要是一些辅助标签工具栏。有了这些就会让你的会话请求和响应时刻处监控中毫无隐私可言。监控面板是fiddler最核心的功能之一。记录了来自于服务器端(webServer)的请求会话。包括页面的请求和静态文件的请求。状态面板主要显示的是会话及会话的状态。位于软件界面右边的这一大块面板,即为辅助标签 + 工具,宏哥称之为监控。
691 0
|
存储 网络架构
Next.js 实战 (四):i18n 国际化的最优方案实践
这篇文章介绍了Next.js国际化方案,作者对比了网上常见的方案并提出了自己的需求:不破坏应用程序的目录结构和路由。文章推荐使用next-intl库来实现国际化,并提供了详细的安装步骤和代码示例。作者实现了国际化切换时不改变路由,并把当前语言的key存储到浏览器cookie中,使得刷新浏览器后语言不会失效。最后,文章总结了这种国际化方案的优势,并提供Github仓库链接供读者参考。
1227 0
Next.js 实战 (四):i18n 国际化的最优方案实践
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
931 6
|
Ubuntu Linux Shell
树莓派ubuntu镜像备份详细教程
本文是关于树莓派Ubuntu镜像备份的详细教程,包括如何获取镜像、使用PiShrink工具减小镜像体积的步骤和命令,以及相关参数的说明。
859 0
|
数据采集 自然语言处理 算法
实战RAG:构建基于检索增强的问答系统
【10月更文挑战第21天】在当今大数据时代,如何高效地从海量信息中获取所需知识,成为一个亟待解决的问题。检索增强的生成模型(Retrieval-Augmented Generation, RAG)应运而生,它结合了检索技术和生成模型的优点,旨在提高生成模型的回答质量和准确性。作为一名热衷于自然语言处理(NLP)领域的开发者,我有幸在多个项目中应用了RAG技术,并取得了不错的成效。本文将从我个人的实际经验出发,详细介绍如何使用RAG技术来构建一个问答系统,希望能够帮助那些已经对RAG有一定了解并希望将其应用于实际项目中的开发者们。
1264 1

热门文章

最新文章