《Elastic(中国)产品应用实战》——三、如何使用transforms来跟踪最近的客户订单

简介: 《Elastic(中国)产品应用实战》——三、如何使用transforms来跟踪最近的客户订单

企业创建一个以实体为中心的索引,其中仅包含每个实体的最新文档,在许多情况 下都十分有用。比如,您可能正在管理一个电商网站,并且想要跟踪每个客户的最 新订单。或者,您可能想针对某段时间内不活跃的客户开展营销活动。有什么方法 能最快和最有效地编译并组织此类数据呢?


ElasticsearchTransforms功能将帮助您基于事件索引和转换函数创建并维护 以实体为中心的索引。不久之前,pivot还是唯一可用的功能,它是一个连续的 group-by plus聚合。在712版中,我们又添加了一个转换函数,称为latest它将 源索引转换为目标索引,以便目标索引中仅包含每个实体的一个最新文档。在这篇 博文中,我们将介绍如何通过transform 转换功能加以实现上述优化。


1. 性能注意事项


transforms中引入latest之前,您可以通过使用pivotscripted_metric聚合 来实现类似的效果。但是,基于脚本的解决方案存在许多问题:

1)它需要用Painless编写代码这使得

较为基础的用户难以进行创建和维护;

容易出错(参考Painless代码中容易出现的所有意外错误)。

2)它在集群中占用了更多的资源

3)它性能低缓。


性能低缓的原因显而易见,对于每个检查点transform都需要执行源索引的完整 扫描以便为每个实体找到最新的文档。由于脚本对transform来说是个黑盒它 不知道要将搜索限制为"仅最近的文档"。这使得计算成本随着时间的推移不断攀 升,并给集群带来不必要的压力。


为了规避这一问题latest函数应运而生,经过优化latest transform功能不需要搜索整个源索引。它知道最新的文档必须处在当前检查点中,否则就没有必要更新目标索引。


2. 准备数据集


在本文中,我们将使用Kibana"Sample eCommerce orders"电商订单)样本数据集做演示。


如果您想继续学习,最简单的方法是在Elastic Cloud中开始免费试用。


进入Kibana您可以单击"Add data” 添加数据)按钮从"Sample data” (样本数据)目录中获取数据集。

image.png

 

此后,我们将创建kibana_sample_data_ecommerce索引。索引中的每个文档都 是某个客户order_id字段标识)下达的订单由名为order_id的字段标识)。


我们会将kibana_sample_data_ecommerce索引转换为一个新索引(我们将其称为latest_order_per_customer其中仅包含每个客户的最新订单。


3. 设置目标索引模版


首先,我们需要有一个索引模版,用于目标索引。


执行此步骤的基本原理是pivot不同,latest不会自动推断目标索引映射。因 此,如果没有预先存在的目标索引(或索引模板),动态索引映射将被启用,这一结 果可能不会是您想要的。


想要实现目标索引的映射与源索引的映射匹配,我们就需要执行以下操作:


1)Stack Management 堆栈管理)Index Management 索引管理)页面中 确定源索引的映射并将完整的映射JSON复制到剪贴板。

image.png

 

2)"Create Template”(创建模板页面中创建一个新的索引模板并将其模 式设置为"latest_order*”,以匹配您稍后将在transform配置中指定的目标 索引名称。

image.png

3)使用"Load JSON"加载JSON)选项填充映射部分并粘贴剪贴板中的映射。

image.png

 4)删除"mappings""_doc”嵌套级别使JSON看起来如上述屏幕截图。应 用这些正确的映射后,目标索引已准备好由transform进行填充。

4. 设置 transform 功能


现在我们准备创建一个transform它能为每个客户维护最新的订单。

1转到 S tack Management 堆栈管理)>Transforms 转换,然后在 Create

Transform (创建转换页面上选择Latest (最新按钮。 image.png

 2)在屏幕下面的transform配置中,将“Unique keys”唯一密钥选项配置

customer_id的值并将“Sort字段排序字段设置为crder_date。

image.png

transform设置为连续运行很重要。连续转换不会在处理历史数据后立即停止, 而是继续处理实时接收的任何新数据:

image.png

确保您在模板中指定的索引模式匹配的目标索引名称。

此外,启用“Creat Kibana index pattern"(创建Kibana索引模式)选项。

3)最后让我们点击“Create and start"(创建并开始按钮来启动我们刚刚

配置的 transform。

image.png

 

正在运行的transform 现在将处理kibana_sample_data_ecommerce索引并使用 每个客户的最新订单不断更新目标索引latest_order_per_customer。如果有更多的 订单到达transform将相应地更新目标索引。


5. 设置保留策略


如上所述latest transform将使用每个客户的最新订单不断更新目标索引。但是 如果客户不继续在我们的电商网站上购物怎么办?


此客户的信息将保留在目标索引中,但不会再收到任何更新。如果您希望清除旧的 信息请为transform中的目标索引设置保留策略。


1)转到transform"Edit” 编辑页面,在字段中输入order_date并将Max age (最大日期设置为30d设置。

image.png

 2)单击“Update” (更新按钮以应用新策略。


根据此保留政策,任何在过去30天内未下订单的客户都将从目标索引中删除。


值得一提的是,上述保留措施etention_po[icy也可以通过pivot来实现,而不 仅仅是latest


6. 结论


总而言之我们利用了最新的transforms选项latest函数)来跟踪数据,集中每

个客户的最新订单。我们还制定了合理的保留策略,以自动清理和删除在特定时间 范围内不再购买商品的客户。


latest还有许多其他可能的使用场景,包括:

识别和激活在规定时间内没有订购任何东西的客户;

维护数据中心每台机器的最新运行状态;

• 维护每个空气污染传感器(站)的当前空气污染测量结果。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
9月前
|
小程序 IDE 定位技术
【社区每周】小程序支持预拉取地理位置;验收工具组件集成至“商家券”等产品文档(11月第五期)
【社区每周】小程序支持预拉取地理位置;验收工具组件集成至“商家券”等产品文档(11月第五期)
113 11
|
存储 消息中间件 NoSQL
如何高效搭建资产管理平台?众安科技告诉你答案是图技术
资产管理平台是全域的元数据中⼼,它可以对数据资产进行管理监控,解决企业内部的数据孤岛问题,挖掘数据价值并对业务赋能。那,如何高效地搭建一个资产管理平台,有效管理数据资产呢?
335 0
|
机器学习/深度学习 人工智能 移动开发
《中国开发者画像洞察报告2022》——03 开发者人群特征洞察——3.4 进阶路径
《中国开发者画像洞察报告2022》——03 开发者人群特征洞察——3.4 进阶路径
142 0
|
开发者
《中国开发者画像洞察报告2022》——03 开发者人群特征洞察——3.1 学习驱动
《中国开发者画像洞察报告2022》——03 开发者人群特征洞察——3.1 学习驱动
116 0
|
开发者
《中国开发者画像洞察报告2022》——03 开发者人群特征洞察——3.6开发者眼中的企业
《中国开发者画像洞察报告2022》——03 开发者人群特征洞察——3.6开发者眼中的企业
121 0
|
弹性计算 运维 自然语言处理
《Elastic 与阿里云合作宣传信息》——部署与功能介绍
《Elastic 与阿里云合作宣传信息》——部署与功能介绍
160 0
|
机器学习/深度学习 存储 弹性计算
《Elastic 与阿里云合作宣传信息》——解决方案的核心优势
《Elastic 与阿里云合作宣传信息》——解决方案的核心优势
100 0
《Elastic(中国)产品应用实战》——二、首席信息官如何帮助增强业务弹性:以员工体验为 核心
《Elastic(中国)产品应用实战》——二、首席信息官如何帮助增强业务弹性:以员工体验为 核心
|
数据可视化 Serverless BI
基于阿里云函数计算FC开发疫情数据统计推送
疫情数据统计推送基于Python和阿里云函数计算FC开发。实现了使用Python爬取获得疫情数据并进行整理,使用函数计算配合定时触发器,每天定时推送全国疫情数据到企业微信。
362 0
基于阿里云函数计算FC开发疫情数据统计推送
|
算法 数据挖掘
淘宝广告数据分析实战!(附代码和100W数据源)(下)
在广告展示数一定的条件下,点击率的高低就是决定一个广告能否被更多人看到的因素。本文主要针对“点击率”这一因素进行分析,与大家分享。
618 0
淘宝广告数据分析实战!(附代码和100W数据源)(下)

热门文章

最新文章