随着企业数字化转型深入,对于数据使用场景也呈现多元化趋势,正有越来越多数据被企业利用起来。如何为众多场景选择一款合适的数据库产品,是很多企业面临的问题。而另一方面,近些年来数据库技术蓬勃发展,初创新兴厂商大量涌现。据不完全统计,仅国内的数据库厂商就有近200家,还不算国外以及开源数据库产品。上述情况更加剧了企业选择数据库的困难。本文从一些角度切入,通过图谱的形式尝试为企业选择数据库产品描述出一条路径。
1. 技术选型:场景区分
当用户面对数据库选型时,首先是做场景的大致区分。这里我们将业务场景分为三种类型:
❖ 通用场景
第一类为通用场景,是具有较为普遍的意义,绝大多数业务场景都是适用的。这里面包含了企业常规的业务系统,也包括像互联网应用、实时交互分析等场景。
❖ 分析场景
第二类为分析场景,这类场景比较明确,是对企业内包含线上活跃和历史在内的全量数据进行实时或批量的分析。这类场景主要强调对数据的加工处理能力,并将结果在数据可视化平台进行输出。
❖ 特定场景
第三类较为特殊,此部分场景属于相对较窄的范围,属于特定方向的数据应用。如比较常见的图、时序等。这类应用有别于传统的业务应用。
2. 技术选型:通用场景
针对通用场景,可进一步安装数据模型、标准SQL访问及ACID能力做进一步区分。大的方面可分为两类:
❖ 非关系模型+无SQL+无ACID
此类产品提供较为多元的数据访问需求。随着互联网兴起,针对非关系模型的数据受到更多的重视。这类数据通常提供专有访问接口且对ACID能力没有需求,更多强调是对异构数据的存储和扩展能力。其根据存储数据模型,又可进一步细分为KV、文档型、宽列型等。这类产品与后面谈到的特有场景数据库产品不同,其往往是作为生产业务系统中的一部分,但两者有时是有交叉的。
❖ 关系模型+SQL+ACID
绝大多数数据库产品都是在此分类,它们提供结构化数据的存储,提供SQL访问接口,支持ACID能力,强调事务等能力。这类产品种类众多、架构各异,因此后续按扩展能力、可用性水平等做进一步划分。
1).按扩展性/可用性划分
从这个维度进一步细分通用数据库场景产品,可按照其架构分为单机、共享、集群、分布式等多种架构。
2).按规模/一致性/侵入性/负载特征
3. 技术选型:分析场景
针对分析场景,可以做进一步的功能细分。这里可从支持事务情况、在线性、数据模型及实时性要求来做区分。
第一类产品是MPP类型的数据仓库,是一种大规模并行计算数据库。此类产品属于数据库定位,提供数据库特有的ACID能力,对用户非常友好。提供标准的SQL能力及企业级能力(例如权限、资源)等。此类产品曾经是数据分析的唯一选择,后来面对更大规模、多模异构等场景不太适用,才出现后续基于大数据及其他方案。但随着近些年产品的发展,此类产品突破之前集群规模的限制,已经可以支持PB级及以上的规模。在使用体验上更加接近于数据库的能力。因此更为受到企业级用户的欢迎。后续此类产品在向细粒度控制、资源弹性、异构计算等方向发展。
第二类产品是大数据架构的产品,其本质是一种并行计算及存储系统。从早期出现的Hadoop及Hive、Spark到后期一系列产品,对应产品非常多样。此类产品提供多种计算方式,且通常为了降低使用成本也提供了类SQL的访问方式。但在如数据一致性、事务等方面较前者有明显的差异。通常适用于某类特定场景的数据分析,其扩展能力较前者更有优势。
第三类产品是来自于分布式存储产品,其原始诉求是提供各类数据的存储。这里包括结构化、半结构乃至非结构化数据。随着这些数据被保存,计算类的需求也被提出来。但通常这些计算往往是探索性的、无规律的。同时为了方便存储的各类不同数据,还需提供统一的元数据,建立整体数据视角。
4. 技术选型:特定场景
对于特定场景部分,其根据数据专项应用领域,通常是比较好选择的。例如针对图数据库领域,Neo4j等是常规的选择;针对时序数据库InfluxDB等是常规的选择。此类产品选择,往往可选择的产品范围不同,只需关注被选产品的核心能力即可。
韩锋频道:关注技术、管理、随想。