技术架构-数据库选择

阅读前请先参考上一篇文章 技术架构图

数据库的选择可能是最有争议的,因为大部分场景很多数据库都能满足条件,它们之间的差异可能就是语法不同、使用方式不同等等,具体怎么选就要看实际情况了

现在的数据库类产品真的非常多,都是为了解决特定场景下的问题。常见的数据库类产品有:mysql、postgresql(pg)、tidb、kudu、clickhouse、palo、pipelinedb、cassandra、redis、mongodb、es、hbase等等。

对于核心业务数据库,几乎是没有争议的,大部分场景下选用mysql、oracle绝对没有错,Pg也是不错的选择;对于分析性场景,例如实时数据选用piplinedb、缓存数据选redis、mongodb、TB级数据的导入和实时复杂查询选palo或者clickhouse,TB级数据的实时点查选用kudu、TB级事务性数据库选tidb等等,当然这些选择只是参考,没有重度使用时,大部分数据库都能完成期望的功能。

在我们选择合适的数据库时,主要是期望选择的数据库能够满足我们依据特定场景下的需求,例如:
1、业务数据库,数据比较重要,能够保证事务,支持主从切换(mysql、oracle、pg)
2、构建一个统一的日志查询平台,方便开发人员定位问题,不用到每台机器上去翻日志,同时也能对机器权限进行有效的管理(ES)
3、搭建数据中台,需要一个统一的数据存放中心,能够容纳亿级数据,又希望和业务数据库保持一致(TiDB)
4、对热点数据做缓存(redis、mongodb)
5、支持数据实时写入,实时计算,例如统计UV、PV等(pipelinedb)
6、支持实时数据导入,并且能够支持复杂的查询分析(clickhouse、palo)
7、支持大数据量的写入、更新、查询(clickhouse)
8、亿级业务数据及时灌入Hive(kudu)

JouyPub wechat
欢迎订阅「K叔区块链」 - 专注于区块链技术学习