《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(上)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(上)

Elastic的新冻结数据层将计算与存储分离并利用低成本的对象存储系统直接促进 搜索。它提供了无限的存储扩展,同时保留了高效查询数据的能力,无需首先对数 据进行解冻,使管理大规模数据变得更容易、更经济。


在这篇博文中,我们将比较新冻结层与现有Elasticsearch数据层的搜索性能,并展 示如何使用冻结层以较低的性能存储和搜索更大量的数据。


冻结层的主要亮点有:

•  如果数据没有缓存,在4TB数据集中返回简单词条查询的结果需要几秒钟。如 果有缓存,则搜索性能会以毫秒为单位,类似于温层或冷层;

•  如果数据没有缓存,在4TB数据集上计算一个复杂的Kibana仪表板所需时间 不到5分钟。如果有缓存,这一计算将在几秒钟内完成,类似于温层或冷层;

•  轻松将数据量扩展到1PB数据集。在无缓存的情况下,对简单词条查询的结果 将在10分钟内返回。


目前,冻结层在Elasticsearch 712Elastic Cloud上以技术预览方式提供,很快就 可以普遍应用。


1. 数据层简介


数据层提供了优化的存储和处理能力,可实现基于不同需求(例如基于数据时间长 短、数据源或其他标准)的数据访问。


热层主要处理集群中新数据的所有索引,并保存查询最频繁的最近每日索引。由于 索引通常是一项I/O密集型活动,运行这些节点的硬件需要更强大,因此需要使用 SSD存储。温层可以处理大量查询频率较低的索引因此可以使用延迟较长、成本 较低的存储设备,例如非常大的旋转磁盘,降低较长时期内保留数据的总体成本, 同时确保数据仍可用于查询。


最近引入的冷层和冻结层利用低成本的对象存储以具有成本效益的方式管理大量数 据,同时保留了对数据的搜索能力。

image.png

 冷层无需副本,而是通过从快照中恢复数据的方式促成恢复事件。在热层和温层中, 有一半的磁盘空间通常用于存储副本分片。这些冗余副本可确保查询快速完成,性能一致,并能在机器故障时起复原作用(机器故障时,副本将成为新的主分片)。但是,一旦数据在其生命周期中变为只读,恢复就可以被卸载到快照。这意味着在冷层中,无需副本分片;当某个节点或磁盘故障时,系统会自动从快照中恢复数据, 从而在集群中重新创建完整副本,以便本地磁盘重新提供搜索服务。


快照存储库非常适合这种情况因为在Blob存储中存储数据比在本地SSD或旋转 磁盘上存储数据要经济得多而且在大多数情况下,为了备份目的,数据会在Blob 中存储。因此,冷层只需要温层一半的本地存储空间,就具有类似的查询性能,只 是可用性稍逊,但能比温层节省50%的成本。


冻结层更进一步,只在集群本地缓存少量但经常访问的数据部分,并根据搜索要求 基于搜索需求从对象存储中惰性地提取数据,从而将计算与存储分离。与到目前为 止使用Elasticsearch所实现的功能相比这提供了更高的计算存储比。


当然,冻结层中的搜索可能比在热层、温层或冷层中慢得多,但对于不太频繁的搜 索(如运行或安全调查、法律搜索或历史性能比较)来说,这是可以接受的折衷。 Elasticsearch具有默认为所有内容建立索引的优势这一功能非常强大,因为它避 免了在查询时对数据进行全面扫描,并且利用这些索引结构可以在非常庞大的数据 集上快速返回结果。


2. 冻结层的工作原理


冻结层中的节点不需为保存其所有索引的完整副本预留充足的磁盘空间。相反,我们引入了磁盘上的LFU (最少使用)缓存,它只缓存从Blob存储下载的索引数据的 一部分,以服务于给定的查询。磁盘缓存的工作原理类似于操作系统的页面缓存, 可以加速对Blob存储数据中经常请求部分的访问。在Lucene级别的读取请求会被 映射到此本地缓存上。


如果缓存丢失,可从Blob存储的Lucene文件中下载更大的部分(16MB的数据 供搜索用。到Lucene下一次访问文件的相同部分时,就可直接从本地缓存获取。


节点级共享缓存将基于"最少使用"策略对映射的文件部分进行逐出处理,因为我 们认为Lucene文件的某些部分的使用频率比其他部分更高。如果需要使用一个 Lucene文件的某些部分反复响应查询比如@timestamp字段的范围查询)那么 该数据将保持缓存,而其他数据可能会被逐出。


虽然现在搜索需要下载正在访问的文件部分,但Lucene基于一组预先计算的索引 结构执行搜索的方式减少了有待扫描的数据量,使这个过程变得更快。为了进一步 减少这些分片的内存占用,我们只在有需要时,也就是说,在有活动搜索的时候才 打开Lucene索引。这使我们能够在一个冻结层节点上拥有大量索引。


3. 基准测试目标


对于每一层,我们在第一次访问时测量搜索性能(没有利用任何缓存,因为它们还 没有预热并使用相同的查询重复搜索缓存预热。对于冻结层当磁盘上的LFU 缓存不能容纳所有数据时,我们还会检查重复搜索性能。


对于这个基准测试,我们考虑了两种查询类型。

 第一个代表安全调查,即在一个大数据集中找到一小组匹配的文档(犹如大海 捞针)

 第二个代表Kibana仪表板,即对大量数据进行多次频繁聚合计算。


由于这些基准测试的目标是准确地比较不同层的查询性能,所以我们选择在所有层 上使用相同的机器类型;然而,在实际部署中,应该使用针对特定层的机器类型, 以权衡每一层的最佳成本和性能。


基准测试中的基线是热层其中有常规的基于时间的Elasticsearch索引。温层访问 数据的方式与热层相同,并且为实现此基准测试的目的,我们对所有层使用相同的 机器类型,因此它等同于热层,没有单独列出。在冷层中,我们有从快照装载的相 同索引的完整副本。在冻结层中,我们使用磁盘上的LFU缓存从快照装载索引。


4. 基准测试设置


基准测试使用Elasticsearch712.1运行,并以一个基于事件的Web服务器日志数据 集为基础Elastic使用该数据集对各种功能进行基准测试。磁盘上索引数据集的大 小为4TB 10个基于时间的索引和580GB的分片)。分片被强制合并为一个段 这优化了读取性能,也是索引生命周期管理在将数据移动到冻结层时使用的默认值。 相同的(预先计算的)数据快照用于对每一层进行基准测试。恢复限制被禁用,以免人为限制性能。


我们进行基准测试的第一个搜索只是一个简单的词条查询,在一个给定的IP地址访 问Web服务器的数据集中,找到出现的情况

"nginx.access.remote_ip": "1.0.4.230".


第二个搜索是Kibana仪表板它包含五个视觉效果,用于分析带有404响应代码 的请求,例如,查找不再指向任何地方的链接。

image.png

 

在每个基准测试场景中,我们运行一些预备步骤以减少运行间的差异,包括删除操 作系统缓存和slab对象,以及修整SSD磁盘。


在热/温层,Elasticsearch默认使用hybridfs存储类型,这些内存映射了 Lucene的 一些文件类型。冷层和冻结层不使用内存映射。因为内存映射会通过预取页面对页 面缓存有影响,我们在热/温层进行两项测试并提供结果:使用内存映射,以及使用 "niofs"index.store.type来配置它(更接近于我们访问冷层和冻结层中本地文件的方 式)。


为了简单起见,我们这里只对单节点集群进行基准测试,但每一层也支持多节点集 群。单节点集群是一个N2Dn2d-custom-8vCPUs-64GB实例,具有8vCPU, 64GB RAMElasticsearch 将其中的 29GB 用于JVM ),以及 RAID-0 16x375GB 的本地暂存SSD磁盘,以便它可以在热/温层和冷层中完全容纳4TB数据集。它是 一个适合冻结的候选实例,因为它有应用于磁盘上LFU缓存的快速本地磁盘。


我们还针对冻结层中的磁盘上LFU缓存采用两种不同的缓存大小进行实验,以显示 其对重复搜索的重要性200GB (数据集的5%)20GB (数据集的0.5%)。

5. 结果


查询性能受到各种缓存机制的影响,从操作系统级页面缓存到应用程序级内存缓存, 例如分片请求缓存和Elasticsearch中的节点查询缓存。对于每个结果,我们都解释 了这些缓存是如何发挥作用的。显示的结果为五次运行的中位数,以减少运行间的 差异。


更多精彩内容,欢迎观看:

《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(下):https://developer.aliyun.com/article/1220928?spm=a2c6h.13148508.setting.14.653f4f0e9anOCu

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
11月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
798 8
|
监控
IEC104初学者教程,第八章:总召唤流程详解
IEC 60870-5-104(简称IEC104)是一种用于远程控制和监控系统的通信协议。它广泛应用于电力系统和其他工业自动化系统中。总召唤(General Interrogation,简称GI)是IEC104协议中的一个重要功能,用于从远程终端设备(RTU)获取其当前的状态和数据。总召唤过程的基本步骤如下:
575 5
IEC104初学者教程,第八章:总召唤流程详解
|
监控 安全 搜索推荐
http和https的区别是什么?
在互联网安全日益成为焦点的今天,使用HTTPS不仅是一种趋势,更是网站运营的基本要求之一。它不仅能够保护用户隐私和数据安全,还能提升网站的可信度和搜索引擎排名。因此,无论是个人网站还是企业级应用,都应当考虑使用HTTPS来保护用户和数据的安全,迈向一个更加安全和可靠的网络环境。
784 0
|
存储 前端开发 rax
2020年的双11,阿里需要什么样的渲染方案?
前端技术的"新陈代谢"是有目共睹的,新技术的不断发展也推动着前端应用场景的不断扩大,从 Web 、Weex 到 Node.js 再到 FaaS。我们在发展中看不变的部分,唯有追求更好的用户体验是端技术持续发展中不变的责任。在阿里,双 11 的复杂与广泛是全方面检验一个技术最直接有效的途径,今年的双 11 是全面使用由阿里巴巴开源的 Rax 的一年,本文将介绍 Rax 在用户体验上努力探索的方向。
1216 0
2020年的双11,阿里需要什么样的渲染方案?
|
6天前
|
云安全 人工智能 自然语言处理
|
10天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
891 30
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
518 4
|
6天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
423 19

热门文章

最新文章