大数据时代的新型数据库你了解吗

2020-08-20 16:42 中移大数据

全文共计2506字,预计阅读时间7分钟

来源 | 本文供稿于“广东移动张炳华




前言




笔者最近在和小伙伴们一起做数据库国产化选型相关工作,这给我们带来了一些小挑战。因为既然要调研新型数据库,就不免要碰到各种新概念。


场景1

甲:我们的产品是支持HTAP场景的数据库,完全保证ACID
乙:我们业务主要是OLTP场景
甲: 我们当然也支持OLTP
乙:你不是说是HTAP的么?…



场景2

甲:我们的产品能很好兼容Oracle
乙:支持RAC的架构么?
甲:类似的共享存储架构,但我们是一写多读,另外在兼容性方面达到9X%
乙:那节点可能有性能瓶颈喔
甲: 我们实现了读写分离,当然也可以支持分布式架构
他们究竟在说啥?…为了避免陷于鸡和鸭讲的尴尬场面,有时要花些时间捋清概念才能继续愉快地探讨。
如果读者也像笔者一样做过Oracle DBA,就很容易理解我们这种定势思维,就是对当下新冒出来的各种数据库产品技术,总下意识地想用Oracle的套路去理解和比较……但想这样就能做好数据库选型?现实告诉我们,“没那么简单……”!所以,笔者还是不敢偷懒,花了一些时间查阅了古(应该没有)今中外相关材料,梳理了一些数据库选型之初经常碰到概念,结合个人理解,在这里和大家聊聊,权当抛个砖。



数据库概念术语介绍







首先是几组常见的概念术语。

1) 关于OldSQL、NoSQL、NewSQL




这几个术语主要从数据库产品演进发展逐步总结出来的分类,NoSQL和NewSQL的出现与非结构化大数据的需求、分布式技术的演进等紧密相关,其中,非结构化的大数据需求推动了各种NOSQL解决方案,分布式技术结合SQL带来了NewSQL数据库。


2) 关于ACID、CAP、BASE




这几个术语经常在数据库或分布式系统理论中碰到,属于技术实现的理论原则。掌握这些原则,有助于我们在新产品调研时更好地了解产品设计的逻辑和实现细节,比如调研XX产品是如何保障ACID?


3) 关于TPC-C、TPC-H




在数据库产品介绍中经常会提及TPC-C测试情况,比如“OceanBase登顶TPC-C”等等,到底TPC-C测试是什么东东?
其实是由国际事务性能委员会(TPC)组织发布的针对不同场景制定的基准测试标准,各种测试标准详细描述了关于数据模型、测试方法等,比如TPC-C主要制定关于OLTP的测试模型、TPC-H/TPC-DS主要是制定OLAP的测试模型,另外还有很多不同的测试标准。(http://www.tpc.org),但这些测试结果跟实际业务的负载以及应用使用情况有较大的偏差,具体业务系统选型只能作为很初步的参考,需要做大量的业务验证测试


除了上述几组基础术语,考虑到我们数据库选型参考因素众多(详见下图),不同因素之间又可能受其它因素影响,比如场景或技术架构的变化就会带来其它几个因素的变化,也就涉及更多细节层面的实现技术,如分布式架构带来的ACID保障问题、一写多读的单节点性能瓶颈、主从节点同步性能问题等,本文受限于篇幅,此处不一一展开,下面仅就“场景”和“架构”这两方面涉及的基础概念进行介绍


4) 关于OLTP、OLAP、HTAP




这几个概念主要在业务场景上进行分类,在选型上可以有个作为初步的判断:


一般来说数据库产品设计会有所侧重的支持OLTP或OLAP业务场景,而在近年出现了HTAP新型数据库概念,其核心思想是通过一个数据库,解决过去从OLTP到OLAP数据库要经过大量数据抽取入库的问题(如延迟、采购成本、ETL开发等等)。当前的HTAP产品通过在不同层面进行混合优化实现,比如在存储层同时支持行存和列存、在计算引擎使用不同的优化器技术、硬件隔离解决资源冲突等等。


5) 关于Share-Everything/Disk/Nothing




这些概念是在数据库架构层面涉及,相信读者在很多介绍架构的文章里都碰到过。在选型中“架构”因素极为关键,其会带很多扩展性、高可用性和迁移改造难度等细节问题,如果能提前识别相应的风险点,就能更好地提前做好优化措施。
实际上在当前如此多数据库产品的情况下,笔者认为仅凭这三组单词已经很难快速厘清架构的差别(比如pgpool和pg-xc/xl都是Share-Nothing架构,但实际上有所区别)。随着技术架构演进、硬件性能提升,这几个概念对数据库产品架构的区分已经很粗颗粒度,因此笔者在下面尝试按个人理解细分下,在具体介绍前先插播两个在架构中常见的术语,后面会提及。


首先Share-Everything架构不做过多介绍,可以理解为单机数据库,CPU/内存/存储全共享,扩展性和并发性较差,基本不做考虑。
下面着重介绍经常碰到的另外两个架构:Share-Disk/Share-Nothing。
关于Share-Disk共享存储架构,笔者整理了如下共同点和典型类型:



关于Share-Nothing不共享架构,该架构下有如下共同点和典型类型:



补充:另外有人写了文章[Improving the Scalability of Cloud-Based Reslient Database Servers]用简化模型介绍下几种常见架构,通过定义ProcessEngine(PE)、StorageEngine(SE)、Coordinate三个组件的关系得到不同架构的数据库,其中Coordination在不同架构设计中起关键作用,也是各产品大显神通的地方,如复制技术、共享技术等。


具体描述各位可以找该文章详细参考,这里不再介绍。

以上就是笔者对数据库常见的基本概念的梳理和介绍,如果大家看了觉得有那么一点用处,那我这砖抛得就算值了!在实际工作中这些概念术语所涉及的技术细节或延展内容更多,具体可以参考更详细的书籍文章进一步了解。欢迎大家交流~







● 6.18购物节移动渠道手机销售洞察
● 大数据平台多租户运维管理方案的研究
● “中国移动流控宝”重磅发布!大数据助力密集场所人员流量控制
● 中国移动简勤:发挥大数据优势,支撑疫情防控精准施策
● 大数据平台智能化运维管理系统设计-浅谈基于AI机器学习的接口敏感级别识别



中国移动大数据

致力于打造优质的大数据产品及服务,分享运营商大数据行业动态,信息共享,促进行业内合作交流

本文章转载自公众号:cmcc-bigdata

首页 - 大数据 相关的更多文章: