风一样的男人
作者风一样的男人2017-10-12 10:03
系统工程师, 长春一汽

如何评估一款数据库产品 - 18项评估标准

字数 1265阅读 2028评论 0赞 4

背景

不论你是投资方、还是CTO或者架构师,如果你需要在非常核心的场合选择一款数据库产品,或者你要投资一个数据库产品或团队,本文一定会为你提供一个很好的指导。

现在的数据库分类在dbranking上已经分得很细:
https://db-engines.com/en/ranking

  1. Complete ranking
  2. Relational DBMS
  3. Key-value stores
  4. Document stores
  5. Graph DBMS
  6. Time Series DBMS
  7. RDF stores
  8. Object oriented DBMS
  9. Search engines
  10. Multivalue DBMS
  11. Wide column stores
  12. Native XML DBMS
  13. Content stores
  14. Event Stores
  15. Navigational DBMS

本文主要评估的是关系数据库,关系数据库又分:

  1. OLTP:在线事务处理
  2. OLAP:分析型数据库
  3. HTAP:混合数据库(既能支持在线事务,又能支持在线分析)

评估数据库产品的18项火眼金睛

1、SQL兼容性

  1. SQL语法(多维分析、窗口、子查询、CTE、DDL事务、触发器、规则、事件触发器)
  2. 并发控制能力
  3. 事务隔离级别支持
  4. 支持的数据类型
  5. 支持的操作符
  6. 支持的索引
  7. 客户端语言接口
  8. 服务端编程接口
  9. 分区表能力
  10. 管理GUI,管理接口,管理函数,管理视图等

2、优化器能力

  1. 基于成本的执行计划
  2. 基于遗传算法的执行计划
  3. 多少种数据访问方法
  4. 支持哪些SQL 重写规则
  5. 支持哪些执行节点并行
  6. 支持哪些JOIN算法
  7. 支持哪些排序算法

3、扩展能力

  1. 并行能力(单机并行、多机并行)
  2. 存储能力(行存、列存储、压缩、堆存、树存)
  3. 扩展性 - scale up 能力
  4. 扩展性 - scale out 能力
  5. 数据复制能力

4、运算能力

  1. 向量计算
  2. JIT
  3. FPGA、GPU 计算扩展能力

5、内核扩展能力

内核扩展能力(自定义UDF,IDX,OP,TYPE,窗口,聚合,外部数据源,PL扩展接口)

6、可靠性、可用性、稳定性

  1. 多副本能力
  2. 备份能力
  3. 恢复能力(时间点恢复、并行备份恢复等能力)
  4. 容灾能力
  5. 越界回退能力
  6. HA能力
  7. 崩溃恢复能力

7、安全性

认证方法、加密类型、透明加密类型、透明加密存储

8、其他特性

流计算、图计算、GIS能力、推荐算法、时序、NOSQL、搜索、等

9、内核开发语言、模型、平台兼容性、产品软肋

  1. 线程模型、进程模型、
  2. Linux,unix, windows, ...
  3. 有哪些产品设计、架构方面的软肋。

10、代码成熟度、完成度

11、roadmap

12、主要代码贡献者

13、性能

tpc-b, tpc-h, tpc-ds, tpc-c, sysbench(oltp), TCO

14、应用场景、案例

15、生态

  1. 商业生态:高校、数据库厂商、技术服务厂商、云厂商、用户群体、应用开发商、语言生态、投资方生态
  2. 社区状态
  3. 社区活跃度
  4. 与其他生态的融合能力,hadoop, spark, ....

16、未来发展潜力

17、成本

  1. 学习成本
  2. 开发成本
  3. 运维成本
  4. 管理成本

18、开源许可

开源许可很重要!!

本文转自微信公众号:PostgreSQL中文社区

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广