Ⅰ 带你理解冷数据和热数据!
那年初出茅庐
当 项目经理说冷热数据的时候 , 我偷偷问了个问题 : 数据还有温度的啊?
结果不是你尴尬 , 就是我尴尬 !
接下来 , 简单带你们明白什么是冷热数据哈
热数据 : 访问频次比较多
热数据就近计算,冷数据集中存储
所以,热数据因为访问频次需求大,效率要求高,所以就近计算和部署;冷数据访问频次低,效率要求慢,可以做集中化部署,而基于大规模存储池里,可以对数据进行压缩、去重等降低成本的方法。
下面借用一张网上的图帮助大家理解
Ⅱ ES大数据量下的查询优化
filesystem类似于我们在mysql上建立一层redis缓存;
es的搜索引擎严重依赖于底层的filesystem cache,如果给filesystem cache更多的内存,尽量让内存可以容纳所有的indx segment file索引数据文件,那么你搜索的时候就基本都是走内存的,性能会非常高。
两者差距非常大,走磁盘和走systenfile cache的读取的性能差距可以说是秒级和毫秒级的差距了;
要让es性能要好,最佳的情况下,就是我们的机器的内存,至少可以容纳你的数据量的一半
最佳的情况下,是仅仅在es中就存少量的数据,存储要用来搜索的那些索引,内存留给filesystem cache的,如果就100G,那么你就控制数据量在100gb以内,相当于是,你的数据几乎全部走内存来搜索,性能非常之高,一般可以在1秒以内
的少数几个字段就可以了,比如说,就写入es id name age三个字段就可以了,然后你可以把其他的字段数据存在mysql里面,我们一般是建议用 es + hbase 的一个架构。
hbase的特点是适用于海量数据的在线存储,就是对hbase可以写入海量数据,不要做复杂的搜索,就是做很简单的一些根据id或者范围进行查询的这么一个操作就可以了
如果确实内存不足,但是我们又存储了比较多的数据,比如只有30g给systemfile cache,但是存储了60g数据情况,这种情况可以做数据预热;
我们可以将一些高频访问的热点数据(比如微博知乎的热榜榜单数据,电商的热门商品(旗舰版手机,榜单商品信息)等等)提前预热,定期访问刷到我们es里;(比如定期访问一下当季苹果旗舰手机关键词,比如现在的iphone12)
对于那些你觉得比较热的,经常会有人访问的数据,最好做一个专门的缓存预热子系统,就是对热数据,每隔一段时间,提前访问一下,让数据进入filesystem cache里面去。这样下次别人访问的时候,一定性能会好一些。
我们可以将冷数据写入一个索引中,然后热数据写入另外一个索引中,这样可以确保热数据在被预热之后,尽量都让他们留在filesystem os cache里,别让冷数据给冲刷掉。
尽量做到设计document的时候就把需要数据结构都做好,这样搜索的数据写入的时候就完成。对于一些太复杂的操作,比如join,nested,parent-child搜索都要尽量避免,性能都很差的。
es的分页是较坑的 ,为啥呢?举个例子吧,假如你每页是10条数据,你现在要查询第100页,实际上是会把 每个shard上存储的前1000条数据都查到 一个协调节点上,如果你有个5个shard,那么就有5000条数据,接着 协调节点对这5000条数据进行一些合并、处理,再获取到最终第100页的10条数据。
因为他是分布式的,你要查第100页的10条数据,你是不可能说从5个shard,每个shard就查2条数据?最后到协调节点合并成10条数据?这样肯定不行,因为我们从单个结点上拿的数据几乎不可能正好是所需的数据。我们必须得从每个shard都查1000条数据过来,然后根据你的需求进行排序、筛选等等操作,最后再次分页,拿到里面第100页的数据。
你翻页的时候,翻的越深,每个shard返回的数据就越多,而且协调节点处理的时间越长。非常坑爹。所以用es做分页的时候,你会发现越翻到后面,就越是慢。
我们之前也是遇到过这个问题,用es作分页,前几页就几十毫秒,翻到10页之后,几十页的时候,基本上就要5~10秒才能查出来一页数据了
你系统不允许他翻那么深的页,或者产品同意翻的越深,性能就越差
如果是类似于微博中,下拉刷微博,刷出来一页一页的,可以用scroll api
scroll api1 scroll api2
scroll会一次性给你生成所有数据的一个快照,然后每次翻页就是通过游标移动 ,获取下一页下一页这样子,性能会比上面说的那种分页性能也高很多很多
scroll的原理实际上是保留一个数据快照,然后在一定时间内,你如果不断的滑动往后翻页的时候,类似于你现在在浏览微博,不断往下刷新翻页。那么就用scroll不断通过游标获取下一页数据,这个性能是很高的,比es实际翻页要好的多的多。
缺点:
Ⅲ 最近在研究NAS,看到热数据和冷数据,这两个名词有什么具体含义吗另外能不能推荐下NAS的相关设备
热数据指日常需频繁访问的在线类数据,冷数据指无需经常访问的离线类数据。目前企业会将冷数据和热数据都放在NAS里随时读取,其实这样一来热数据和冷数据有些模糊了。NAS设备群晖和威联通比较热门,NAS硬盘选东芝N300吧,各种容量规格都有,运行起来也非常稳定,不管个人还是公司都可以用。
Ⅳ 数据存储:什么是冷存储
众所周知,随着科技的发展,在我们生活和工作中产生的数据越来越多。这些数据中有一大部分都属于冷数据即较长时间之前的状态数据,其特点是较低的访问频率,并且需要最大限度的降低其存储成本,同时要求随时可访问。例如微信和QQ上存储的大量的图片信息,社交媒体,智能互联网时代,大量的社交数据产生,用户通常查看新发布的图片、视频,而对于那些旧的数据,则鲜有人问之。对于照片、视频等这些非结构化数据通常会占用大量存储空间,并且增长速度远远超过其他类型的数据。
根据被访问的频度不同,数据可以被分为“热数据、温数据、冷数据”三种类型。其中,冷数据特指活动不频繁、不会被经常访问甚至永远不会被访问,但仍然需要长期保留的数据。热数据受到业务特征、用户行为乃至监管政策的影响(例如,医院的医学影像文件需要自患者最后一次就诊之日起保存不少于15年),经过一段时间的使用后,绝大部分数据都会迅速变“冷”。因此,数据集合中通常有高达80%的部分属于不常被访问的冷数据。然而,冷数据并非失去价值,大数据、人工智能等新兴业务对海量冷数据进行检索和挖掘的需求依然存在而且日益迫切。
金钱猫云存储架构下的冷存储技术产品采用最前沿的AI技术,通过对存储数据进行智能分析、区分冷热数据、优化存储来达到降低存储系统的整体投资成本及运营成本。据测算可降低服务器硬盘投资成本50%,节省用电50%。金钱猫云存储架构下的冷存储技术产品是一款节资省电造福于民的产品。金钱猫的服务,走进千家万户!