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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 《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

相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
14天前
|
存储 监控 安全
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
作为基于 Apache Doris 打造的现代化数据仓库,SelectDB 不拘泥于传统数仓的限制,针对日志数据的特点引入了多项创新性技术,使用户可基于 SelectDB 构建开放、高性能、低成本、统一的日志存储分析平台, 截至目前已在近百家行业内知名企业中落地。
《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载
|
存储 缓存 数据可视化
《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(下)
《Elastic(中国)产品应用实战》——五、10分钟内查询一个PB级的云存储(下)
|
SQL 关系型数据库 MySQL
阿里云云原生数据湖分析DLA SQL(兼容Presto) CU版重磅发布,助力企业低成本分析OSS数据价值
Presto作为OLAP界领先的分析引擎在国内外有着广泛的应用,各个公司要么在自己的机房自建Presto,要么在云上使用ECS自建Presto来使用,但是开源的Presto在用户学习成本、数据摄入、生态兼容性、高可用、对云上数据的支持度方面还是有一些薄弱。因此阿里云数据湖分析团队打造了一个DLA SQL(兼容Presto)CU版本,今天给大家介绍一下它的一些特性。
阿里云云原生数据湖分析DLA SQL(兼容Presto) CU版重磅发布,助力企业低成本分析OSS数据价值
|
存储 运维 固态存储
EB级分布式海量云存储系统YIG
YIG是S3协议兼容的分布式对象存储系统。脱胎于开源软件ceph,在多年的商业化运维中,针对运维中出现的问题和功能上的新需求,重新实现了一遍radosgw用于解决Ceph存在的相关问题
2098 0
EB级分布式海量云存储系统YIG
|
定位技术 关系型数据库 Cloud Native
开放融合 | “引擎级”深度对接!POLARDB与SuperMap联合构建首个云原生时空平台
10月30日,以“地理智慧 深度进化”为主题的2019 GIS软件技术大会(简称GTC 2019)在北京国际会议中心开幕。超图联合阿里云在主论坛完成产品合作发布。
1901 0
|
Cloud Native 算法 中间件
云原生时代,2个方案轻松加速百万级镜像
随着集群规模的扩大,您是否曾经因镜像分发问题而困扰过?根据不同的场景,我们利用不同的镜像分发方法: 基于 P2P 的 CNCF/ Dragonfly (以下称为“蜻蜓”)分发是缓解镜像中心带宽和减少分发时间的最直接方式。
|
NoSQL Cloud Native 大数据
3月29日云栖精选夜读 | 阿里云发布国内首个云原生图数据库GDB,多度关系信息查询仅需毫秒级
近日在2019阿里云峰会·北京,阿里云发布国内首个云原生的图数据库GDB,拥有多度关系数据的快速查询与存储能力,帮助企业提升查询效率10倍以上,查询时间降低至毫秒级,适用于社交网络、金融欺诈检测、实时推荐、知识图谱等智能应用领域。
3547 0
|
存储 NoSQL Cloud Native
阿里云发布国内首个云原生图数据库GDB,多度关系信息查询仅需毫秒级
近日在2019阿里云峰会·北京,阿里云发布国内首个云原生的图数据库GDB,拥有多度关系数据的快速查询与存储能力,帮助企业提升查询效率10倍以上,查询时间降低至毫秒级,适用于社交网络、金融欺诈检测、实时推荐、知识图谱等智能应用领域。
2403 0
|
存储 分布式计算 大数据
首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击
每年的双11之前,也是MaxCompute各种乾坤大挪移落定的时候,因为双11就是各种大折腾项目的自然deadline。在今年双11之前,一路向北迁移和在离线混部项目,将杭州集群除蚂蚁外整体迁移到张北,涉及了绝大部分的业务project、数据存储和计算任务,为今年双十一大数据计算服务的保障带来了挑战。
4130 0
|
存储 数据挖掘 OLAP
入选Gartner和Forrester报告的阿里云AnalyticDB是如何实现PB级数据分析毫秒级响应
2018年3月13日,Forrester发布了最新的云化数据仓库分析报告( Now Tech: Cloud Data Warehouse, Q1 2018),阿里巴巴同亚马逊,谷歌,微软四个世界级云厂商共同进入领先者阵营。深度解读阿里云AnalyticDB是如何实现PB级数据分析毫秒级响应的。
2261 0