分布式数据库评估维度分析

本文转载自韩锋频道,作者韩锋


近些年来,数据库产业发展迅猛,各种数据库产品层出不穷。那么如何选择一款数据库产品成为很多企业面临的问题?特别是随着数据规模、计算能力等需求,分布式数据库产品成为很多企业的新宠。那么这类数据库较传统数据库又有何差异?在数据库选型中,需要注意哪些方面?本文尝试描述数据库(特别是分布式数据库)选型需考虑维度,希望帮助企业可以做出最适合的选择。




1. 数据库评估维度概览


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



因需对比的维度很多,故将其大致做了个分类,归纳为下面脑图所示。下文将按各分类详细描述。在各对比维度分类之上,又抽象出非交互式测试与交互测试两大类。之所以做了这样的划分,是因为曾参与过多款数据库产品评测,大量的人工测试方式非常低效。这里是尝试将部分对比维度分类提取出来,可尝试使用自动化方式解决上述问题。则后者的交互式测试,则还需要人工介入;但可通过此方法固化对比维度,减少交互成本。





2. 评估维度:基本功能篇


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



  • 表达式

  • 操作符

  • 字符集:支持常规的UTF8MB4及定长字符集GBK等。

  • 函数:支持基本函数、扩展函数(如正则函数、安全函数、窗口分析函数等)、自定义函数。

  • 计算:虽然不提倡在数据库端进行计算,但如果支持计算的话,将有利于将传统数据库应用迁移到新型数据库中。在分布式架构下,这部分实现较难。





3. 评估维度:数据对象篇


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



  • 序列:对分布式数据库,需提供全局唯一、单调递增的序列对象。

  • 视图:对分布式数据库,需提供满足全局性、一致性的视图访问。扩展要求,可提供参数视图、动态视图、物化视图等能力。

  • 约束:支持常规的主键(PK)、外键(FK)、唯一(UK)、非空(NULL)、条件(CHECK),特别是分布式条件下的约束能力。此外,支持非分布键下的约束。

  • 表:支持常规的表(例如堆表、簇表)。表的存储方式是行存、列存亦或是混存。支持全局表(广播表)、ER表、追加表、只读表等特殊表类型。

  • 索引:支持多种类型索引(如B树、哈希等),支持函数索引等。对于分布式环境支持全局索引、二级索引。对于分区条件下,是否支持本地、全局分区索引。

  • 同义词

  • 数据类型:对多模场景,丰富的数据类型十分必要。此外,在金融场景中,对高精度数据类型也有特殊的要求。

  • 分片:支持的分片算法,支持自定义分片策略。在单分片键基础上,支持多字段分片或自定义分片等。

  • 分区:支持的分区类型(如HASH、LIST、RANGE等),支持复合分区。常规分区操作支持增加、删除、移动、截断、分裂、合并等。





4. 评估维度:SQL篇


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



  • DML

  • DDL

  • DQL:对于分布式数据库而言,灵活复杂的查询能力实现难度较高。很多产品在这部分都有所取舍,没有实现全集。




5. 评估维度:内核功能篇


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



  • 锁:支持乐观、悲观锁机制。提供完善的死锁检测机制。

  • 事务:支持标准的ACID能力。

  • 隔离级:提供常规的RC、RR等隔离级别,支持MVCC,提供全局一致性数据读取能力,支持强一致性的数据读取并可读到最新数据。

  • 并行:支持并行计算,已利用多核能力加速执行。





6. 评估维度:性能篇


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



  • 通用模型:支持通过常规的事务型、分析型测试标准,提供基础的性能测试指标。

  • 业务模型:通过抽象业务模型,提供近似业务访问的性能指标。

  • 其他场景:提供诸如导入导出等场景的性能数据。





7. 评估维度:安全篇


     人生基本上就是两件事,选题和解题。最好的人生是在每个关键点上,既选对题,又解好题。人生最大的痛苦在于解对了题,但选错了题,而且还不知道自己选错了题。正如人生最大的遗憾就是,不是你不行,而是你本可以。



❖ 数据管理

  • 数据加密:数据存储加密,是保证数据安全的根本方法。即使发生了数据泄漏,也不用担心数据为他人所用。针对加密的要点在于加密算法及效率,除常规加密算法外,是否支持国密算法及自定义算法?此外,最为重要的是对应用透明。

  • 数据传输:在数据传输方面,支持数据的加密传输方式。

  • 数据访问:在数据访问方面,支持行级、列级数据访问控制。

  • 生命周期管理:建立全生命周期的数据安全策略,在后续的数据归档、备份、导出直至销毁阶段均需考虑必要的数据安全。

  • 敏感数据:具备建立敏感数据识别、分级,根据不同级别采取不同策略,支持数据脱敏访问。

❖ 用户管理

  • 用户:具备唯一标识的用户名,采用满足复杂度要求的口令策略并加密存储。同时,具备多种鉴权方式。

  • 角色(组):通过角色或角色组方式,简化权限管理。支持所谓“三权分立”,即系统管理员、审计管理员、安全管理员三权分立

  • 权限:具备多种对象不同粒度的权限控制能力。

❖ 访问控制

  • 对象:针对不同对象,可设置访问、执行、变更等不同的控制权限。

  • 集群:在多个应用共享集群时,应支持多个应用间自有数据库对象的访问控制。

  • 会话:支持基于IP、端口、数据库、用户和密码的连接认证功能,会话应进行安全隔离,不同会话应具备独立的上下文。

  • 节点:分布式数据库的不同节点(如计算节点、存储节点),支持白名单信任策略,复合要求的地址才能连接访问。

❖ 安全管理

  • 密钥管理

  • 安全告警

  • 安全审计:支持安全审计的长久保存。


8. 评估维度:兼容篇


     人生基本

  • 客户端:支持标准的客户端访问方式。提供不同语言的访问驱动。

  • 应用:支持常规数据应用的访问。

  • 语法:兼容部分事实标准,例如Oracle、MySQL等。这对于业务的迁移意义很大。

  • 硬件:支持多种硬件平台,特别是国产化硬件平台。


    9. 评估维度:运维篇


         人生基本

    • 备份恢复:支持物理备份、逻辑备份。支持全量、增量备份。提供时点还原能力。提供对象级闪回能力。

    • 数据迁移:在分布式环境下,提供全局一致性的数据迁移能力。

    • 系统配置

    • 租户管理

    • 审计管理

    • 容量管理

    • 版本升级

    • 监控



    10. 评估维度:架构篇


         人生基本

    • 读写分离


    11. 评估维度:实例管理篇


         人生基本

    • 执行计划:支持分布式环境的执行计划显示。

    • 统计信息

    • 空间管理

    • 模式管理

    • 时区

    • 可扩展:支持不同层次的扩展能力,从前端接入层、计算层到存储层。


    12. 评估维度:高可用篇


         人生基本

    • 高可用:高可用包括多种维度,例如服务层高可用、数据层高可用、接入层高可用。服务高可用包括全部组件支持高可用;出现组件异常时自动恢复;在常规变更操作时(例如扩缩容)支持高可用。数据高可用,则从数据的RTO角度来考虑。接入层,则是指诸如Proxy代理组件的高可用。

    • 高可靠:数据的整体可靠性,例如常见的通过多副本技术保证,且副本间是否满足强一致等。还包括通过全量+增量+日志的备份策略,满足数据还原需求。

    • 容灾:提供单机、机架、可用区、同地域、跨地域不同层级的容灾能力。



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容