首页 > 数据库 > 国内数据库 > 深植于场景需求混布数据库Hubble
友情提示:演讲有科普型信息,也有技术型信息,大家可以按需提取。
一、 变化趋势
数据四大变化:万物互联的时代,量级达到千亿级每天,非结构化数据占比很高,实时分析的需求高。
数据使用者发生变化:传统的数据消费者是决策者是领导,需要领导根据数据分析结果进行宏观决策。 但现在是个性化服务的时代,用户需要专属品牌、个性 服务、一对一营销。比如购物时“猜您还喜欢的商品推荐”就是很好的例子,这需要业务人员及时操作,再做数据报告等领导决策,损失会很大。背后支撑的一定是一线人员根据数据做分析。通过数据更好的感知客户、洞察客户、服务客户。实现了从千人一面到一人千面的个性 服务。
二、混布数据库
什么是HTAP ?
Gartner 对HTAP数据库给出了明确的定义: HTAP数据库需要同时支持OLTP和OLAP场景 。
为什么是HTAP?
基于创新的计算存储框架,在同一份数据上保证事务的同时支持实时分析,省去了费时的ETL过程。
HTAP 数据库基于分布式计算存储框架,能在同一份数据上保证事务的同时支持实时分析,省去了费时的ETL过程。天云数据公司凭借多年金融行业大数据项目实施经验,参考谷歌最新F1/spanner基础理论,自主研发了百万原生代码HTAP数据库hubble,实现了在同一份数据上,支撑复杂逻辑分析、人工智能模型算法和实时高并发业务交易应用。
三、 演进路径
阶段一:AP、TP混布
阶段二:融合存储
阶段三:融合引擎& AI-Native
四、 技术实现与优化
Hubble在存储存储层会有一个数据空间的概念,通常一张表会对应一个数据空间(dataspace) ,一个数据空间会对应多个shard,数据空间有两个分类:独占空间和非独占空间,通常这个空间会在磁盘上有独占的存储目录,与其他空间是物理隔离的,独占空间包含多个shard,所有的shard属于同一个dataspace,属于同一张表。非独占空间会与其他非独占空间共用磁盘目录,通过逻辑来隔离,非独占空间会包含多个shard,多个shard属于多个dataspace,属于多张表。
用户可以自定义表的数据空间,通常一张大表可以选择用独占空间来存储,小表可以选择用共享空间来存储,可以充分利用到磁盘的IO,也可以使大表的数据不受小表数据的干扰。如图是其在服务器上的放置情况的示意图。
假设有3 台服务器,3张表,表1 对应了的dataspace1 、表2对应的是dataspace2 、表3对应的是dataspace3 ,表1和表2是非独占空间表3是独占空间,各个表都有自己对应的shard那么在服务器集群中对应的数据存储大致如图上所展示内容。
Hubble是一个混布的分布式数据库,从存储层就做到了混布的方式,用户可以通过见语句来实现指定不同的存储方式如下。通常每张表会有3个副本,对应到副本的最小单元为shard,该混合存储的例子指定了副本1为KV的存储、副本2是列存、副本3是KV的存储,shard之间通过raft协议来确保数据的一致。每个shard的数据格式可以动态的调整。通过不同数据之间副本数据的不同那么在逻辑上的一份数据可以同时支持TP和AP两种类型的业务处理。
KV的 存储格式为LSM tree,LSM Tree 对于大数据量的支撑有这天然的优势在于当数据不断增加是LSM写入速度不会受到太大的影响,保持高效率的写入速度 ,hubble除支持LSM Tree的KV格式外同时支持列存、行列混存等多种模式。
在存储分配上Hubble又如下图分为了3种分片机制,等值、哈希、范围。
索引在数据库中非常见,是为了支持快速的离散的获取数据等操作 ,Hubble数据库对于索引同样支持,并把索引分为了如下几类:
Ø KV索引
使用KV的方式来索引数据,这种方式索引的定位速度会更加的快速,对于离散的获取和范围的获取有非常强的优势。
Ø 倒排索引
倒排也是一个种比较常见的索引方式,用于对文本数据的模糊匹配有这天然的优势,再结合词库进行分词,对于查询会更加的方便易用。
Ø 复合索引
复合索引从两个方面来讲:
n 多字段的复合索引,多个字段共同维护成一个索引,对于多个字段的检索会有很好的性能提升。
n 多种索引模式的混合使用。
Hubble同时支持AP和TP的混布场景,那么AP和TP自身就会存在一定的资源争抢的问题,如何解决相关的问题,hubble引入了资源隔离的机制,通过对用户、人员的操作隔离以及对所有的SQL语句之间做相应的资源隔离,确保资源之间不会相互的争抢。
资源控制不光是做AP\TP之间隔离,在比如说AP的任务也会需要资源控制。比如说某个用户,或者某个组用户的数是否能占多少资源,它是控制了更细的粒度。
第1个控制是AP、TP之间的资源隔离。第2个控制的包括每个任务的资源使用情况的隔离。再有资源管理,我们一般是基于CPU和内存之间的一个管理,相当于同时能够拿到这个任务的CPU、内存之间的使用情况,从而保证这个任务所占用的CPU跟内存的大小情况,然后来控制单个任务的CPU、内存的使用情况,以及使用大小等等来控制整个资源管理的大小来控制,包括调动模式,包括公平调度等等,这几个资源模式都是支持的。
五、 产品特性
传统数据库的只能通过增加配置提升性能系统无法横向扩展,因此对于大数据量的支撑受限;数据业务应用核心是离线分析,而且是分库分表实现,对业务技术能力要求高;数据需要迁移,业务分析耗时效率低。大数据业务应用的问题是:原生API(应用程序接口) 开发实施难度大;复杂场景多组件组合应用,数据冗余存储多副本,运行效率低。Hubble致力于改变传统架构、优化大数据架构
Hubble数据库的三大特性分别是:
多源异构:利用联邦服务技术能力,以自由接入各类数据库源系统并实现异构数据源的统一管理,统一探查,统一服务;
超高实时并发:Hubble利用分布式技术架构,支持上万用户在线实时高并发修改与查询,服务个性化数据服务应用;
全部SQL标准: Hubble采用通用SQL解析技术, 支持标准SQL语法解析, 兼容oracle,mysql,Hive等数据库。这样就可以实现传统场景无缝迁移,降低生态合作伙伴参与大数据开发的门槛。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69982626/viewspace-2745357/ ,如需转载,请注明出处,否则将追究法律责任。