对数据系统的分类做一个定义,数据系统如果按照主体来区分的话分为以下两类:
应用为主体:常见的数据架构都是以『应用』为主体,数据主要产生自应用。数据架构围绕业务来设计,通常是先定义业务模型后设计业务流程。由于业务之间区分度很大,每个业务都有截然不同的业务模型,所以数据系统需要具备高度『抽象』的能力,所以通常会选择关系型数据库这类抽象能力强的组件作为核心存储。
数据为主体:这类数据系统通常围绕『特定类型数据』进行构建,比如说围绕云原生监控数据设计的以 Prometheus 为核心的监控数据系统,再比如围绕日志数据分析设计的 ELK 数据系统。这类数据系统的设计过程通常是围绕数据的收集、存储、处理、查询和分析等环节来设计整套数据系统,数据具备统一的『具象』的模型。不同的场景有不同的数据系统,当某个场景具备通用性以及得到一定规模的应用,通常在开源界会诞生一套成熟的、完整的解决方案,比如说云原生 Prometheus、ELK、Hadoop 等。
本篇文章介绍的数据架构主要是第一类,即以『应用为主体』的数据架构。
应用系统数据架构
应用系统数据架构历经了多次迭代,从传统的单一系统数据架构,到多组件构成的现代数据架构。现代数据架构下包含不同的计算和存储组件,这些组件在处理不同类型数据以及负载下各有优劣。现代数据架构通过合理选择和组合这些组件,让各个组件能发挥最大的能力,从而让整个数据系统能满足更多样化的场景需求以及支撑更大的数据规模。