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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(下)

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

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


6. 简单词条查询


让我们从简单的词条查询开始。这里主要的观察结果是,冻结层在几秒钟内返回4TB 数据集上的结果(5个匹配文档)只下载数据集的很小一部分来寻找匹配的元素。 这突显了 Lucene中的索引结构功能强大,可实现快速查找。


重复运行查询后,所有层展示出相似的性能,因为现在可以在冻结层中提供来自于 本地磁盘上LFU缓存的数据。Elasticsearch的内存中结果缓存在这里不起作用,因 为这种类型的查询不会被缓存。在页面缓存中提供数据会影响在热/温层和冷层中重 复运行的性能。

image.png

当使用默认索引存储类型hybridfs而不是niofs时,热/温层的性能在首次运行时会 略低(285毫秒而不是92毫秒详细信息将在下一节中介绍。


7. Kibana 仪表板


我们对Kibana仪表板重复同样的流程。这里主要观察结果是冻结层在5分钟内 基于相同的4TB数据集返回仪表板,而在具有本地数据访问途径的其他层中计算仪 表板需要20秒。尽管仪表板使用时间范围筛选聚合了超过75%的数据集,但由于 索引结构,它仍然只需要下载存储库中的一小部分数据(在本例中约为3%,下文将详细介绍)。

image.png

Elasticsearch的结果缓存被禁用时,重复搜索的性能主要依赖于页面缓存,当查 询所需的数据部分完全纳入磁盘上的LFU缓存时,重复搜索的性能就与冻结层的性 能相当。值得注意的是,对于这个特定的工作负载,热/温层中的内存映射会导致页 面缓存"抖动,当使用默认存储类型时,这会对热/温层的性能产生不良影响(与 使用niofs时的6.2秒相比,最多可慢三倍)。


对于冻结层,我们考虑了两种不同大小的LFU缓存的,以显示对重复搜索性能的影 响。磁盘上的LFU缓存大小首先被定为200GB这只是4TB的一小部分(数据集大 小的5%),但仍然足以容纳为计算给定的仪表板而下载的所有数据(大约3%,或 120GB)在第二次运行基准测试时,它的大小仅定为20GB 原始数据集大小的 0.5%),这不足以容纳给定仪表板需要的所有数据。


当启用Elasticsearch的内存中缓存时,重复搜索会更快,因为部分查询结果现在可 以直接在Elasticsearch节点上获得,而不需要重新计算。然而目前冻结层并不使 用这些内存中的Elasticsearch缓存。


对于仅计算的仪表板略有不同并通过不同的国家/地区代码进行筛选的情况,我们也 进行了基准测试。在这种情况下,由于已经下载了与满足这个略有不同的查询相关 的数据的许多部分,冻结层可以从中受益,并且返回结果的速度几乎与其他层一样快。


为了在首次运行仪表板时显示在冻结层中下载了些什么,我们对请求的六个最大的 Lucene文件类型以及下载了多少量进行了可视化。虽然fdt 字段数据)文件消耗 了大部分空间(用于存储文档),但并未通过访问这些文件来计算聚合。正如预期的 那样,大多数访问都是在Lucenedvd 每个文档的值文件上完成的,它们是 用于计算聚合的文档值。

image.png

8. 快速访问大量对象存储


虽然在冻结层上的查询肯定会更慢,但它的主要优势体现在不经常访问上,使数据 无需解冻即可用于搜索。相比之下,即使禁用了恢复限制,在本地提供完整的数据 集也需要一个多小时,这比我们直接在冻结层上运行查询所花的时间要长得多。

image.png

 

9. 扩展到 PB 级


到目前为止,基准测试集中在层与层之间的性能比较上,不能展示冻结层的全部可 能性。该层比其他层具有更高的计算存储比。


我们采用了接近极致的做法,对相同的数据集进行了超过250次的挂载,每次都使 用不同的名称以便将其作为单独的索引处理。然后我们的单节点集群有12500 80GB的分片,这相当于挂载了 1PB的数据。在完整的1PB (相当于100GB 数据集上运行简单的词条查询只花了不到10分钟的时间,表明这一实施过程可以 很好地扩展到更大的数据集。

image.png 在实践中,这可能不是一个理想的设置,因为单个节点上分片过多,本地磁盘缓存 与对象存储大小的比率极低。在这种规模下,数据集的存储成本远超冻结层节点的 计算成本,因此添加更多节点将显著提高性能,而对成本的影响可以忽略不计。


10. 调整磁盘上 LFU 缓存的大小


如前所述,为了在重复搜索中获得优良的性能,调整磁盘上的LFU缓存大小很重要。 在这里,正确的值在很大程度上取决于所运行的查询类型,特别是产生查询结果所 需访问的数据量。因此,挂载更大量的数据并不一定总是需要更大的磁盘缓存。 例如,在基于时间的索引背景中应用时间范围筛选可以减少需要查询的分片数量。 由于在数据访问模式中经常存在某种底层空间或时间局部性,冻结层将允许对非常 大的数据集进行有效查询。根据我们目前的观察结果,我们建议调整磁盘上LFU缓 存的大小,使其介于挂载的数据集大小的1%10%之间。5%的比率也许是一个很 好的实验起点。


请注意,冻结层可以很好地支持垂直和水平扩展,因为计算具有非常相似的性质。 使用性能更好的机器类型或向集群添加更多节点就是提高冻结层查询性能的一种简单方法。


11. 结论


我们已经展示了冻结层可以以优异的性能响应两种不同类型的查询。使用 Elasticsearch的默认索引策略冻结层的搜索性能要比扫描整个数据集快几个数量 级。在冻结层中的重复搜索将进一步受益于磁盘上的缓存,并提供与其他层相似的性能。


当以经济有效的存储搭配灵活的计算存储比为主要目标时,冻结层就会提供巨大的 价值。冻结层中的数据只是作为任何常规索引而访问,因此可以轻而易举地切换现 有设置,以利用这个令人兴奋的新功能。进行设置也并非难事,因为它再次利用了 已经用于备份目的的快照存储库,并与索引生命周期管理完全集成,以便将数据从 热层/温层/)令层转换到冻结层。Kibana的异步搜索集成在此基础上提供了扩展功 能,允许在后台计算运行缓慢的仪表板,并在可用时进行可视化。


注:冻结层既可用于自托管部署,也可用于Elastic Cloud,所以请查看这份文档, 进行尝试,并提供您的反馈意见吧。

相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
9月前
|
存储 监控 安全
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践1
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践
128 0
|
16天前
|
存储 监控 安全
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
作为基于 Apache Doris 打造的现代化数据仓库,SelectDB 不拘泥于传统数仓的限制,针对日志数据的特点引入了多项创新性技术,使用户可基于 SelectDB 构建开放、高性能、低成本、统一的日志存储分析平台, 截至目前已在近百家行业内知名企业中落地。
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
|
9月前
|
存储 Java 数据库
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践2
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践2
54 0
|
弹性计算 人工智能 运维
《2023云原生实战案例集》——04 互联网——鱼传科技 基于函数计算高性价比地支持了一个日活50W+的小程序
《2023云原生实战案例集》——04 互联网——鱼传科技 基于函数计算高性价比地支持了一个日活50W+的小程序
|
存储 缓存 固态存储
《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(上)
《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(上)
|
运维 Kubernetes 监控
阿里PB级Kubernetes日志平台建设实践
将在QCon上分享的《阿里PB级Kubernetes日志平台建设实践》整理出来,分享给大家。
16936 0
|
存储 运维 固态存储
EB级分布式海量云存储系统YIG
YIG是S3协议兼容的分布式对象存储系统。脱胎于开源软件ceph,在多年的商业化运维中,针对运维中出现的问题和功能上的新需求,重新实现了一遍radosgw用于解决Ceph存在的相关问题
2100 0
EB级分布式海量云存储系统YIG
|
人工智能 NoSQL Java
【云周刊】第215期:阿里靠什么支撑 EB 级计算力?
欢迎订阅云周刊 本期头条 阿里靠什么支撑 EB 级计算力? MaxCompute 是阿里EB级计算平台,经过十年磨砺,它成为阿里巴巴集团数据中台的计算核心和阿里云大数据的基础服务。去年MaxCompute 做了哪些工作,这些工作背后的原因是什么?大数据市场进入普惠+红海的新阶段,如何与生态发展共赢?人工智能进入井喷阶段,如何支持与借力?本文从过去一年的总结,核心技术概览,以及每条技术线路未来展望等几个方面做一个概述。
3384 0
|
Cloud Native 算法 中间件
云原生时代,2个方案轻松加速百万级镜像
随着集群规模的扩大,您是否曾经因镜像分发问题而困扰过?根据不同的场景,我们利用不同的镜像分发方法: 基于 P2P 的 CNCF/ Dragonfly (以下称为“蜻蜓”)分发是缓解镜像中心带宽和减少分发时间的最直接方式。
|
容器 Kubernetes 监控
干货分享 | 阿里PB级Kubernetes日志平台建设实践
本文整理自阿里云日志服务技术专家元乙在 QCon 全球软件开发大会(北京站)2019 上的演讲,他的分享主要介绍了阿里超大规模下 Kubernetes 日志平台的架构实践,通过日志采集、处理、分析、监控、异常诊断等全方位技术,实现 Kubernetes 以及业务应用真正意义上的可观察性。
1148 0

热门文章

最新文章