如何评估一款数据库产品 - 18项火眼金睛

less than 1 minute read

背景

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

现在的数据库分类在dbranking上已经分得很细:

https://db-engines.com/en/ranking

Complete ranking  
Relational DBMS  
Key-value stores  
Document stores  
Graph DBMS  
Time Series DBMS  
RDF stores  
Object oriented DBMS  
Search engines  
Multivalue DBMS  
Wide column stores  
Native XML DBMS  
Content stores  
Event Stores  
Navigational DBMS  

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

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

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

1、SQL兼容性

SQL语法(多维分析、窗口、子查询、CTE、DDL事务、触发器、规则、事件触发器)

并发控制能力

事务隔离级别支持

支持的数据类型

支持的操作符

支持的索引

客户端语言接口

服务端编程接口

分区表能力

管理GUI,管理接口,管理函数,管理视图等

2、优化器能力

基于成本的执行计划

基于遗传算法的执行计划

多少种数据访问方法

支持哪些SQL 重写规则

支持哪些执行节点并行

支持哪些JOIN算法

支持哪些排序算法

3、扩展能力

并行能力(单机并行、多机并行)

存储能力(行存、列存储、压缩、堆存、树存)

扩展性 - scale up 能力

扩展性 - scale out 能力

数据复制能力

4、运算能力

向量计算

JIT

FPGA、GPU 计算扩展能力

5、内核扩展能力

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

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

多副本能力

备份能力

恢复能力(时间点恢复、并行备份恢复等能力)

容灾能力

越界回退能力

HA能力

崩溃恢复能力

7、安全性(认证方法、加密类型、透明加密类型、透明加密存储)

8、其他特性

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

估值

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

C,

线程模型、进程模型、

Linux,unix, windows, …

有哪些产品设计、架构方面的软肋。

10、代码成熟度、完成度

11、roadmap

12、主要代码贡献者

13、性能

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

14、应用场景、案例

15、生态

商业生态:高校、数据库厂商、技术服务厂商、云厂商、用户群体、应用开发商、语言生态、投资方生态

社区状态

社区活跃度

与其他生态的融合能力,hadoop, spark, ….

16、未来发展潜力

17、成本

学习成本

开发成本

运维成本

管理成本

18、开源许可

开源许可很重要!!!

参考

https://db-engines.com/en/ranking

https://www.postgresql.org/docs/10/static/index.html

https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases

Flag Counter

digoal’s 大量PostgreSQL文章入口