前段时间,巨杉发布了SequoiaDB V5.2新版本,其主要围绕的主题是“释放全量数据价值”。随着数字化时代的发展,企业由面向业务交易的核心逐渐转为面向价值的数据核心。
传统数据库为集中式数据库,存储的都是一些事务型数据,而其它的一些过程数据,以及历史数据,需要经过ETL进入数仓离线处理,不能做到实时处理数据,是低并发的。
由于存储成本下降,第三代数据库为分布式多模湖仓一体数据库,借助分布式技术强大的信息处理能力,并提供多模能力,保存以及处理全量数据,可以提供直接实时对客的查询能力,是高并发的,释放全量数据价值。
讲到过程数据和结果数据,我们先来了解一下分别有哪些数据,它们分别是什么。
结果数据是产品表现的数据结果。是以产品整体或者某个维度整体的数据。比如,ROI、日活等。结果数据也可以是目标数据。产品规划时制定的。也是对于产品的预期。
过程数据是指满足用户需求的过程中产生的路径数据。是以业务为维度的数据。比如,业务环节中流失率、完成业务循环的路径步骤数等。这部分数据,都是与业务强依赖的。
行为数据是用户使用产品的过程中,产生的操作数据。是以用户为维度的数据。比如,用户浏览路径、页面热力图、用户画像等。
而释放全量数据价值,指的就是这些数据。
下图我们可以看到之前和现在的处理数据的对比,湖仓一体实现了全量数据的实时处理,不需要ETL到数据仓库离线处理数据,是一种在线处理。对于用户而言,在查询某些历史流水数据时,不再需要等待很久,而是实时查询。
湖仓一体关键技术
多模数据湖:可以支持存储结构化、半结构化和非结构化数据。
STP为在线业务提供稳定的计算和存储扩展能力,满足海量数据的高并发需求。
从异步离线到实时对客,释放全量数据价值。从客户需求出发,可以实现业务数据实时对客查询,对象数据实时对客存取,对于BI报表、决策支持等可以实时探索、分析、统计、加工。
join优化+列存微分区:查询分析更实时,查询优化毫秒返回,分析提升高达10倍。
多维分区技术:基于“数据域”按需基于时间、范围、分类等条件,时间数据精准定位,提升查询性能。在“数据域”内的数据再进行二次Hash细化分区,可以有效分散数据I/O,避免I/O拥堵,提升查询并发能力。下文讲到的数据全生命周期,冷热温数据不同的存储分区,就是使用多维分区技术进行管理,按照时间进行划分,可以将不同时间的数据分类,在我们需要存取数据的时候,将离现在时间更近,更可能被读取的数据,存储在更快的SSD中,那么在我们读取某些历史数据的时候将会更快读取,并且是实时的,相比以往历史数据需要离线读取的方式要提升了很多。
全新的列存架构:新增了Flink流式入湖以及流批一体数据入湖,加入列存分析,可以是性能达到10倍提升,让分析更实时。
列存相较于行存的主要优势是在我们访问一个数据想知道其特定某一个属性时,可以查找对应的列,相对于行存来说效率能够有较大的提升。
而微分区技术可以让列存结构下的CURD操作更实时,微分区技术即下面例子所说,当我们要更新type=4对应的其他属性的值的时候,我们只需要查找每个分区type=4位置对应的其它属性,并进行更新就好,不需要像行存一样读取完每一行数据以后才能找到对应的数据进行修改,极大减小了查找数据的时间,具体架构和示例可以看下图:
当我们想要更新某一属性条件下其它属性的值时,微分区可以让我们更快查找到并修改。
分片并发+可变分片大小:提供高速数据通道,减少重复网络传输。可变分片大小可以有效平衡不同业务中I/O并发性能及存储空间冗余。以往我们的分片是固定大小的,但是由于文件大小是不固定的,往往会存在一些难以利用的空间,需要重新收集利用,但是可变分片大小就可以很好的解决这个问题。
全量数据生命周期管理按需调度,高并发数据,即近12个月的数据等,使用高配SSD服务器,为热数据。而低并发数据,比如近五年的流水数据,为问数据,使用低配的HDD服务器存储。一些对象数据,则将其存储归档。一般距离时间较久的数据很少会被访问到,因此把它存储在速度较慢 的硬盘中。
SAC运维管理工具,可以实现更加实时的诊断监控,快速准确定位故障。
总体来说,巨杉数据库的每一次更新迭代,都是基于用户需求层面来开发,每一次更新,都提升了用户体验。从用户需求出发,我们才能设计出便于用户以及更有效的产品。
以上仅个人的一些学习笔记以及理解,若有不足请多指正。
笔记参考: