一口气说穿数据中台-给你架构师的视角

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 一口气说穿数据中台-给你架构师的视角

这是我的第36篇原创

之前分享过中台,前两天又分享了数据治理的相关内容。有个同学嚷嚷着让我说一下数据中台。虽然我做过数据中台,但是不算成功,写起来总觉得不太自信。

既然朋友盛情邀请,那就把我的理解整理一下,给大家分享一下。

OK,Let's GO!

数据行业的演变

在数据领域,从业务方向上可以分为OLTP(联机事务处理)和OLAP(联机分析处理)两个领域。这个名字很拗口,但是也很有意思。

OLTP就是你在本地操作,相对于单机而言,数据记录在本地,就叫单机事务处理在本机操作,数据记录在服务器上,这叫联机事务处理。

OLAP就是数据存在服务器上,你在本地调用数据进行在线分析,这叫联机分析处理。

OLTP的发展路径其实就是数据库的不断演进,从关系型数据库从单机数据库到高可用版本,到现在的分布式关系型数据库。另外为了满足各种场景下的数据存储和查询,还诞生了NoSQL、MPP、时序数据库等一系列的数据库,大数据行业就此拉开序幕。

OLAP的发展路径也很有意思。一开始只是在业务数据库中建个表,统计一下各种固定报表。后来需要分析的内容越来越多,就开始不断的向前发展,这样也迎来了大数据分析师的黄金发展期。

蛮荒时代

最早的时候,是没数据仓库什么事情的,OLAP的内容也少,只有少量的固定报表,那时候都是开发人员在业务库直接存储的。

现在很多系统仍然是这样的,比如你采购一个erp、电商平台等,自带的绝大部分报表都与业务系统在一个数据库中的。其实这个时候正式对应系统架构中的“单体架构”。

数据仓库时代

随着信息系统的不断建设,管理者开始不太满足于固定的寥寥几张报表,他们期望看到更多细节,找到异常,发现问题。这时候,就必须要有一个信息系统去满足他们的需求,DSS/BI系统就顺应而生,几乎同时,数据仓库的概念也一并被提出。

1990年前后,现代化的BI和数据仓库几乎同时诞生。这也无可厚非,这俩天生一对啊。BI就是OLAP的业务应用体系,数仓就是为了支撑BI而生的。数据仓库之父比尔·恩门(Bill Inmon)在1991年写了一本书《建立数据仓库》。对,就是那个inmon、kimball建仓方法论的inmon。

这时候,业务数据和分析数据开始分道扬镳,走上了不一样的道路。业务数据处理(OLTP)向准确、及时、一致的方向不断迈进;分析数据操作(OLAP)向历史静态、聚合、关联、多维的方向发展。

一个典型的问题就是在业务数据库中,你无法回答类似于一个订单的选购、下单、支付、发货、完成的全流程各用了多少时间的问题。当然,你可以通过冗余N个时间戳来解决,但是你无法将所有状态变化的数据统统记录下来。因为OLTP是反应当前的情况。

而OLAP就可以通过全量表、拉链表等方式保存历史状态数据,从而对每个对象进行历史分析。

tips:除了拉链表之外,通常还有全量快照表、增量表和流水表,一共四种形式收集历史数据,这四种情况下次开单篇聊。

数据仓库建设的目的就是为了进行数据分析用的。原则上来说数据仓库中的数据是不允许修改的。所以你看HIVE根本就没有update和delete的功能,很多人非常不理解其中的原因,其实这就是因为HIVE就是为了数据仓库而生的。

数据仓库解决的核心问题其实就是上面说到的,解决历史情况追踪,解决数据分析能力、解决业务频繁变化等一系列问题。

拿inmon老爷子的话来总结一下:

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。

我有一篇文章,详细解释了数据仓库的完整建设路径和细节,可以移步了解一下:《点击查看:如何搭建一个数据仓库

这个像什么?是不是很像系统架构中的微服务?对不对?横向分层,竖向切分领域。跟微服务的理念一样一样的。

数据湖时代

数据仓库很好用,多维分析简直能满足老板的一切需要。它能让决策者从公司总体情况,一直下钻到每个业务员的贡献,极大的满足了决策者的掌控欲,同时也给企业的决策带来了坚实的数据基础。

但是,数据仓库也有其非常致命的弊端:所有数据必须经过定义之后才能被使用,所有数据都经过了ETL处理,所有数据都被聚合。

作为数据工作者的你,肯定能理解其中的含义。一旦数据被动过,那就会造成信息丢失。

而在算法时代,这是不可接受的。

因此,在数据仓库发展了20年之后的2010年,Pentaho的创始人James Dixon提出了一个“数据湖”的概念。简单来说,数据湖其实可以理解为一个巨大的ODS层。

任何使用数据的同学都可以直接到数据湖中自由提取数据:

  • 在多维分析报表中钻取到最细颗粒度之后仍然不能解决问题的,就到数据湖中查看最原始的数据,查找根因。
  • 在进行算法设计的时候,数仓中处理的数据已经损失了一部分信息,那就去数据湖中找更详尽、更丰富的底层数据,没准可以找到最佳特征。

数据中台时代

数据湖貌似非常完美,能解决一切问题,但是肯定哄不住专业的你。是的,数据湖说的好听,是一个原生态的,任由你汲取的巨型数据源,说的不好听,就是一个数据垃圾堆。不管你管理的多么好都无法改变这个事实。

你现在已经找到了一个异常客户,想找到这个客户在公司业务流中的表现。我们应该会通过CRM与其进行沟通和跟进;通过交易平台与其发生交易;货物是通过ERP进行采购的,通过WMS记录货物存储信息的,通过TMS记录货物运输过程信息的。最后你是在微博中收到了他的抱怨信息,在客服中心的CallCenter接到投诉电话的。

这个时候,你想怎么办?各个系统都是独立建设的,所有数据都在数据湖中,你就是没办法把他们串起来!而且,这还是一条业务线。公司通常都会有N条业务线,每个业务线的系统都统统单独建立一遍,一个客户与公司发生关系的系统越来越多。

这个时候,数据中台就出现了。

图片来自于阿里云数据中台解决方案手册

所以你可以看到,数据中台解决的是什么问题:

  • 实体的打通和画像-OneID;
  • 数据资产的统一构建与管理-OneModel;
  • 数据服务的统一服务-OneService

这三点,共同组成了数据中台的OneData的方法论体系。

OneID是最底层的数据打通,把各条业务线、各个业务系统的相同实体(如客户)进行统一识别。用户端的感觉就是你用一个id,可以通行阿里系所有app。企业端的感觉就是无论用户用什么客户端,通过那个系统与企业发生关系,都能识别成为一个用户

OneModel是中间层数据的统一建模,这里其实就是数据仓库。只不过不是一个业务线的数据仓库,是整个企业,整个集团的,统一的数据仓库。

OneService是业务层的统一服务提供,其实还是那一套,主数据、即席查询、固定报表、多维分析等等。当然会多一些算法层面的试探,也仅仅是试探而已。

我在之前的工作中,就曾建立数据中台,主要工作内容就是做商品id和用户id的打通,进行全局统一建模,提供统一的商品主数据的编码工作和统一的数据输出。

如果你看过我之前分享的《一口气说透中台--给你架构师的视角-点击查看》,就会发现,这不就是中台架构吗?

如上图所示,其实在上篇文章中,就已经说清楚数据中台是什么了。在数据层面进行多条业务线的服务合并、标准化、统一化,统一抽象,这就是数据中台。每个架构都是要解决特定的问题的,数据中台解决的核心问题就是全局统一,全局标准,全局打通。

所以,不要神话中台,更不要神话数据中台。你没有这个问题,或者说当前最紧急的问题不是中台最擅长解决的,那就不要跟风建中台。那样会死的很惨的。

以上,与君共勉!

数据中台还是太大了,一篇文章说不完。这样吧,我把之前收集的市场上主流的三家数据中台供应商产品建设方案和一份咨询公司数据中台白皮书拿出来贡献给大家。关注“大数据架构师”公众号,在后台回复DATA即可获取下载链接。这可都是辛苦获得的内部资料呀~~~

对了,上次分享了《数据治理体系的建设》,我特意准备了国际流行的《DAMA-DMBOK数据管理知识体系》文件,后台回复dama即可获取下载链接。快去公众号领取吧~~~

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
设计模式 编译器 Go
掌握Go类型内嵌:设计模式与架构的新视角2
掌握Go类型内嵌:设计模式与架构的新视角
64 0
|
设计模式 Cloud Native JavaScript
掌握Go类型内嵌:设计模式与架构的新视角1
掌握Go类型内嵌:设计模式与架构的新视角
68 0
|
26天前
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
48 4
|
1月前
|
设计模式 测试技术 持续交付
架构视角下的NHibernate:设计模式与企业级应用考量
【10月更文挑战第13天】随着软件开发向更复杂、更大规模的应用转变,数据访问层的设计变得尤为重要。NHibernate作为一个成熟的对象关系映射(ORM)框架,为企业级.NET应用程序提供了强大的支持。本文旨在为有一定经验的开发者提供一个全面的指南,介绍如何在架构层面有效地使用NHibernate,并结合领域驱动设计(DDD)原则来构建既强大又易于维护的数据层。
38 2
|
6月前
|
API 持续交付 开发者
构建高效微服务架构:后端开发的新视角
【5月更文挑战第8天】 随着现代软件开发的演变,微服务架构已经成为了企业追求敏捷、可扩展和灵活部署的重要解决方案。本文将深入探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术栈选择以及持续集成与部署的最佳实践。我们还将讨论微服务带来的挑战,如数据一致性、服务发现和网络延迟,并提出相应的解决策略。通过本文,后端开发者将获得构建和维护微服务系统所需的深度知识,并了解如何在不断变化的技术环境中保持系统的健壮性和可维护性。
76 8
|
5月前
|
人工智能 Cloud Native Java
从云原生视角看 AI 原生应用架构的实践
本文核心观点: • 基于大模型的 AI 原生应用将越来越多,容器和微服务为代表的云原生技术将加速渗透传统业务。 • API 是 AI 原生应用的一等公民,并引入了更多流量,催生企业新的生命力和想象空间。 • AI 原生应用对网关的需求超越了传统的路由和负载均衡功能,承载了更大的 AI 工程化使命。 • AI Infra 的一致性架构至关重要,API 网关、消息队列、可观测是 AI Infra 的重要组成。
51184 22
|
5月前
|
消息中间件 Java 开发者
微服务架构设计与实现:Java开发者视角
微服务架构设计与实现:Java开发者视角
|
6月前
|
消息中间件 Java 持续交付
构建高效微服务架构:后端开发的新视角
【5月更文挑战第15天】在现代软件开发的浪潮中,微服务架构已成为推动技术创新和服务灵活性的关键因素。本文将探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术栈选择以及持续集成与部署的最佳实践。通过分析微服务的优势和挑战,我们将为后端开发人员提供一个全面的指导,帮助他们在构建可扩展、容错且易于维护的系统时做出明智的决策。
|
6月前
|
负载均衡 JavaScript Java
构建高效微服务架构:后端开发的新视角
【5月更文挑战第13天】在现代软件开发中,微服务架构已经成为一种流行趋势。它通过将应用程序拆分为一组小型、独立的服务来提高可扩展性、弹性和可维护性。本文将探讨如何构建一个高效的微服务架构,包括选择合适的技术栈、设计良好的服务接口、确保数据一致性以及实现有效的服务发现和负载均衡。
|
6月前
|
消息中间件 安全 数据管理
构建高效微服务架构:后端开发的新视角
【4月更文挑战第12天】在现代软件开发领域,微服务架构已成为一种主流设计模式,它通过将应用程序拆分为一系列小型、独立的服务来提高系统的可维护性、扩展性和技术灵活性。本文深入探讨了构建高效微服务架构的关键要素,包括服务划分原则、通信机制、数据管理以及安全性考量。我们将从后端开发的角度出发,分析如何利用最新的技术栈和最佳实践来构建一个既健壮又灵活的微服务系统。
39 2