当前位置: 首页 > 编程日记 > 正文

什么是数据中台?

数据中台的前世今生

在正式进入数据中台建设实践之前,我想花点时间先聊一聊大数据的发展史,这样更能理解数据中台诞生的原因。不管是学习一项知识,还是讨论一个问题,最好的方法都不应该是一头扎进细节里,而是应该先从时空的维度了解其来龙去脉,当你了解了一件事物的前因后果后,更能透过现象,洞察背后的本质。理解了大数据的发展历史,更能体会数据中台诞生的必然性和数据中台建设方法论。

1 数据仓库诞生

1996年,美国加特纳集团第一次提出商业智能的概念,它是指通过一系列的技术和方法,将企业已有的数据转化为有用的信息,帮助企业制定经营分析决策。比如,对于零售企业的库存管理,如何保证不大面积断货影响产品销量的同时,避免库存大量积压导致的成本增加,我们要分析每个商品的销售量趋势、库存情况和未来销量预测,制定合理的采购计划,对滞销商品采取降价促销,对畅销品、爆品要提前下生产订单,供应链部门根据商品订单,提前采购、生产。这些需求的实现,依赖于聚合多个业务系统数据进行分析,如供应链系统、仓储系统等。同时也要保存历史数据,支持销量预测。然而,传统数仓是面向单一业务系统,主要实现面向事物的增删改查,不能满足复杂的数据分析场景,此时,数据仓库的概念应运而生了。

数据仓库之父比尔·恩门在 1991 年出版的《Building the Data Warehouse》中首次给出了数据仓库的完整定义:数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的,不可修改的数据集合。举个例子让大家更好的理解,比如在电商场景中,订单数据、会员数据、库存数据存放在三个不同的数据仓库中,构建数据仓库,首先要把不同业务系统的数据同步到一个统一的数据仓库中,然后按照划分主题域的方式组织数据。

img

主题域是对业务过程的高度抽象,像商品、交易、用户、供应链都能作为一个主题域,可以把它理解为数据仓库的一个目录。数据仓库中的数据一般是按照时间进行分区存放,一般会保留 5 年以上,每个时间分区内的数据都是追加写的方式,对于某条记录是不可更新的。

数据仓库的出现,明确了复杂场景的数据分析解决方案,让数据分析场景不再依赖业务数据库,也为商业智能的发展奠定了技术基础。

2 Hadoop出现

进入互联网时代后,有两个比较明显的变化,一个是数据规模的增长前所未有,一个是数据异构化普遍存在。传统数据库难于扩展、数据在导入前必须事先定义好模型的特性,决定了传统数据仓库根本无法承载互联网时代海量数据存储和计算。

2004年前后,当大多数公司还在研究如何扩展单机性能,寻找更贵更好的服务器时,互联网巨头谷歌发表的 3 篇论文让业界为之一振,也就是我们经常听到的“三驾马车”,分别是分布式文件系统 GFS、大数据分布式计算框架 MapReduce 和 NoSQL 数据库系统 BigTable。论文思路是部署一个大规模的服务器集群,通过分布式的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算。这样一来,Google 其实不需要买很多很贵的服务器,它只要把这些普通的机器组织到一起,就能实现大量的数据的存储和计算。

当时的天才程序员Doug Cutting 受Google 的论文影响,开始基于论文原理实现GFS和MapReduce的功能,两年后,Google的理论被变成现实,Hadoop正式诞生。和传统数仓相比,Hadoop有以下两点优势:

  • 完全分布式,易于扩展,可以使用价格低廉的机器堆出一个计算、存储能力很强的集群,满足海量数据的处理要求;
  • 弱化数据格式,数据被集成到 Hadoop 之后,可以不保留任何数据格式,数据模型与数据存储分离,数据在被使用的时候,可以按照不同的模型读取,满足异构数据灵活分析的需求。

3 大数据平台兴起

一个商用Hadoop支持几十种计算引擎,数据研发流程复杂,通常涉及数据集成、数据开发、数据测试、数据发布、任务运维等。繁杂的工作流程使得数据研发的门槛高、效率低下。为解决数据研发低效率、高门槛的问题,大数据平台应运而生,自此,数据实现了“流水线”式的快速加工。

这里简单介绍下大数据平台。

大数据平台是面向数据研发场景的数据研发全链路的工作平台。可以实现数据流水线化快速加工。

img

大数据平台由下至上大致可分为三部分,分别是数据采集、数据处理、数据展示。

  • 数据采集
    由于数据源不同,所以数据同步系统相当于多个组件的集合,业务数据库同步一般用Sqoop,日志同步可以选Flume,埋点数据经过格式转换后通过kafaka消息队列进行传输。
  • 数据处理
    数据处理是大数据计算的核心,数据同步系统导入的数据会存储到HDFS,Hive、Mapreduce、Spark等计算任务读取HDFS的数据计算后再将计算结果写入HDFS。
  • 数据展示
    大数据计算产生的结果被写入了HDFS,但应用程序不能直接到HDFS中读取数据,所以需要数据同步系统将计算结果导出到数据库,应用程序就可以直接访问数据库中的数据,展示给用户。
    那各种数据什么时候开始同步,各种计算引擎任务如何合理调度才能使资源利用最合理、等待的时间又不至于太久,同时临时的重要任务还能够尽快执行,这就需要任务调度管理系统来对上述三个部分进行整合完成,大数据平台上的其他系统一般都有开源的可供选择,但任务调度管理系统一般涉及很多个性化的需求,通常需要自己开发,开源的大数据调度系统有 Oozie,也可以在此基础进行扩展。

4 数据中台时代

2016年左右,随着互联网的高速发展,业务场景的不断增加,数据应用的需求越来越多,为快速响应业务的需求,很多企业都不同程度的存在烟囱式的开发模式,这种烟囱式的开发导致企业不同业务线的数据是割裂的,这就造成了数据的重复加工,导致研发效率、数据存储和计算资源的浪费,使大数据的应用成本越来越高,也带来指标口径不一致的问题。产生这些问题的根源在于数据无法共享,为解决这一问题,2016年,阿里率先提出“数据中台”的口号。数据中台的核心是:避免数据的重复加工,通过数据服务化,提高数据的共享能力,赋能数据应用。

总的来说,数据中台具备异构数据统一计算、存储的能力,同时让分散杂乱的数据通过规范化的方式管理起来。数据中台借鉴了传统数仓面向主题域的数据组织方式,基于维度建模理论,构建统一的数据公共层和应用层。数据中台依赖于大数据平台完成数据研发全流程,同时增加了数据治理和数据服务化以及数据资产内容。

什么是数据中台

说完了数据中台诞生的历史背景,现在,我们应该对数据中台有了一定的了解,那我们现在给数据中台下个定义。

自2016年,数据中台被提出以来,不同的人对数据中台有不同的理解,就像一千个读者心中有一千个哈姆雷特,因此也有许多不同的定义,以下是我从一些文章、书籍中搜集到的关于数据中台的定义:

img

我的理解:数据中台是DT时代的大背景下,为实现数据快(快速)、准(准确)、省(低成本)赋能业务发展的目标,将企业的数据统一整合起来,基于Onedata方法论借助大数据平台完成数据的统一加工处理,对外提供数据服务的一套机制。

举个例子:如果把数据比如新时代的水电煤,那数据中台就是煤业公司、水厂,煤如果深埋地下,不被挖掘加工,就没法发挥应有价值。所以,建设好基础,数据价值才能最大化被挖掘。

数据中台的价值

1 数据中台是企业数据化建设的基础设施

数据中台解决了企业全域数据汇聚的问题,打通以往的数据孤岛,沉淀数据资产,实现数据之间的价值共通,可基于数据中台满足复杂的数据应用场景。

2 提升数据质量

数据中台基于Onedata方法论构建统一的公共层,保证了源头数据的一致性,且实现数据按照统一口径只加工一次,实现全局指标、标签的统一,大大提高数据质量。

3 节约企业数据应用成本

基于数据中台的元数据管理的数据血缘,可以实现数据投入产出比的评估,及时发现并下线低ROI的数据,也避免数据重复加工。由此降低数据的研发、存储和计算成本,降低企业数据应用成本。

比如,对于一些超过3个月未使用的报表,可以做下线处理,评估表的ROI,对于低ROI的报表及时下线处理。

4 健全各部门协作机制

利用系统化的解决方案配合一定的管理机制,实现业务人员、数据研发、产品经理、数据分析师等角色的高效协同,提升各角色之间的协作效率。

本篇是数据中台系列的第一篇文章,既然数据中台的价值如此之大,那什么样的企业适合建设数据中台呢?数据中台应该如何建设?后续会陆续从元数据管理、指标管理、模型设计、数据质量、数据成本、数据安全等方向讲解数据中台的建设实践,带你解开数据中台的层层面纱,欢迎大家一起交流呀。

相关文章:

SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、Loadbalancer

要为未被某些网关路由谓词处理的请求提供相同的CORS配置,请将属性spring.cloud.gateway.globalcors.add-to-simple-url-handler-mapping设置为true。断言(Predicate):Java8中的断言函数,Spring Cloud Gateway中的断言函数输入类型是 Spring5.0框架中的ServerWebExchange。对于所有GET请求的路径,来自docs.spring.io的请求都将允许CORS请求。

zookeeper集群部署以及zookeeper原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。

Zookeeper概要、协议、应用场景

Zoopkeeper提供了一套很好的分布式集群管理的机制,就是它这种基于层次型的目录树的数据结构并对树中的节点进行有效管理,从而可以设计出多种多样的分布式的数据管理模型,作为分布式系统的沟通调度桥梁。

SSO 单点登录和 OAuth2.0 有何区别?

此方法的缺点是它依赖于浏览器和会话状态,对于分布式或者微服务系统而言,可能需要在服务端做会话共享,但是服务端会话共享效率比较低,这不是一个好的方案。在单点登录的上下文中,OAuth 可以用作一个中介,用户在一个“授权服务器”上登录,并获得一个访问令牌,该令牌可以用于访问其他“资源服务器”上的资源。首先,SSO 主要关注用户在多个应用程序和服务之间的无缝切换和保持登录状态的问题。这种方法通过将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。

一键部署 SpringCloud 微服务,这套流程值得学习一波儿!

一键部署 springcloud 微服务,需要用到 Jenkins K8S Docker等工具。本文使用jenkins部署,流程如下图开发者将代码push到git运维人员通过jenkins部署,自动到git上pull代码通过maven构建代码将maven构建后的jar打包成docker镜像 并 push docker镜像到docker registry通过k8s发起 发布/更新 服务 操作其中 2~5步骤都会在jenkins中进行操作。

Springboot + oauth2 单点登录 - 原理篇

OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。授权码模式(authorization code)密码模式(resource owner password credentials)客户端模式(client credentials) 不常用。

JAVA 中 13 种锁的实现方式

分布式系统时代,线程并发,资源抢占,慢慢变得很重要。那么常见的锁都有哪些?

三种方式实现分布式锁

通过以上过程你可以发现锁的获取是按照创建时间来的,谁先来争取锁谁就先获得锁,因此它实现的是公平锁。答案是不能,以Synchronized关键字为例,Synchronized关键字无论是在偏向锁、轻量级锁还是重量级锁状态都不能实现这点,如重量级锁,重量级锁是靠系统底层的互斥量Mutex实现的,也就是说每个节点(服务器)所使用的互斥量是分开的,节点A的互斥量是无法锁住节点B的线程访问临界区,因此Synchronized关键字只能保证单服务器内的JVM进程的不同线程同步,是不能用做分布式环境中来保证线程同步。

浅谈Java分布式与集群

在日常操作中,相信很多人在怎么理解Java分布式与集群问题上存在疑惑,今天就大概说说,不注意听,觉得两个可能是同一个东西,其实这个是两个概念。一句话概括:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

Springboot整合HBase——大数据技术之HBase2.x

Apache HBase 是以hdfs为数据存储的,一种分布式、可扩展的noSql数据库。是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase使用与BigTable(BigTable是一个稀疏的、分布式的、持久化的多维排序map)非常相似的数据模型。用户将数据行存储在带标签的表中。数据行具有可排序的键和任意数量的列。该表存储稀疏,因此如果用户喜欢,同一表中的行可以具有疯狂变化的列。

终于有人把Web 3.0和元宇宙讲明白了

分散的数据网络使个人数据(例如个人的健康数据、农民的作物数据或汽车的位置和性能数据)出售或交换成为可能,与此同时,不会失去对数据的所有权控制、放弃数据隐私或依赖第三方平台来管理数据。Web 3.0的目标是在创作者经济中取得更好的平衡。互联网第二次迭代(Web 2.0)的缺陷,加上公有区块链技术的诞生,帮助我们朝着更加去中心化的Web 3.0 迈进,元宇宙和更广泛的去中心化网络都是关于现实世界和虚拟世界的融合。此时的网络中不再是静态内容,而是动态的内容,用户现在可以与发布在网络上的内容进行交互。

java面试题:分布式和微服务的区别

分布式架构解决的是如何将一个大的系统划分为多个业务模块这些业务模块会分别部署到不同的机器上,通过接口进行数据交互的问题。微服务是指很小的服务,可以小到只完成一个功能,这个服务可以单独部署运行,不同服务之间通过rpc调用。分布式架构是将一个大的系统划分为多个业务模块,这些业务模块会分别部署到不同的机器上,通过接口进行数据交互。微服务架构是架构设计方式,是设计层面的东西,一般考虑如何将系统从逻辑上进行拆分,也就是垂直拆分。分布式系统是部署层面的东西,即强调物理层面的组成,即系统的各子系统部署在不同计算机上。

k8s搭建部署(超详细)

Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)可扩展: 模块化, 插件化, 可挂载, 可组合自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展。

万字详解数据仓库、数据湖、数据中台和湖仓一体

数字化转型浪潮卷起各种新老概念满天飞,数据湖、数据仓库、数据中台轮番在朋友圈刷屏,有人说“数据中台算个啥,数据湖才是趋势”,有人说“再见了数据湖、数据仓库,数据中台已成气候”……企业还没推开数字化大门,先被各种概念绊了一脚。那么它们 3 者究竟有啥区别?别急,先跟大家分享两个有趣的比喻。1、图书馆VS地摊如果把数据仓库比喻成“图书馆”,那么数据湖就是“地摊”。去图书馆借书(数据),书籍质量有保障,但你得等,等什么?等管理员先查到这本书属于哪个类目、在哪个架子上,你才能精准拿到自己想要的书;

Git 的基本概念、使用方式及常用命令

Git的基本概念、使用方式及常用命令

怎么选择数据安全交换系统,能够防止内部员工泄露数据?

数据泄露可能给企业带来诸多风险:财产损失、身份盗窃、骚扰和诈骗、经济利益受损、客户信任度下降、法律风险和责任等,《2021年度数据泄漏态势分析报告》中显示,在数据泄露的主体中,内部人员导致的数据泄漏事件占比接近60%。飞驰云联文件安全交换系统,可以满足企业多场景下的文件交换需求,帮助企业终结多工具、 多系统并行使用的局面,减少因文件交换行为分散带来的数据管理不集中、难以管控的问题, 帮助企业内部构建统一、安全的企业数据流转通道。对于不能下载保存的数据,使用截屏、录屏的方式窃取并外泄数据;

弹性搜索引擎Elasticsearch:本地部署与远程访问指南

本文主要讲解如何使用Elasticsearch分布式搜索分析引擎本地部署与远程访问。

Hive(总)看完这篇,别说你不会Hive!

Hive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的实现是MapReduce3)执行程序运行在Yarn上创建一个数据库,数据库在HDFS上的默认存储路径是/opt/hive/warehouse/*.db避免要创建的数据库已经存在错误,增加if not exists判断。

什么是HBase?终于有人讲明白了

在 HBase 表中,一条数据拥有一个全局唯一的键(RowKey)和任意数量的列(Column),一列或多列组成一个列族(Column Family),同一个列族中列的数据在物理上都存储在同一个 HFile 中,这样基于列存储的数据结构有利于数据缓存和查询。HBase Client 为用户提供了访问 HBase 的接口,可以通过元数据表来定位到目标数据的 RegionServer,另外 HBase Client 还维护了对应的 cache 来加速 Hbase 的访问,比如缓存元数据的信息。

数据仓库系列:StarRocks 入门培训教程

StarRocks 是一款MPP DB, 对标ClickHouse、Vertica、Teradata、Greenplum,在查询性能上远超当代最快的开源数据库 clickhouse,目前已经被一众互联网企业在生产环境中采用。提供千亿级大数据的在线多维分析和分布式存储。新一代极速全场景 MPP (Massively Parallel Processing) 数据库是forkdoris后独立运营的商业化版本StarRocks。

ClickHouse & StarRocks 使用经验分享

总结一下,如果是需要分析日志流数据,更加推荐 ClickHouse ,因为 ClickHouse 单机强悍,可以支撑亿级别数据量,架构简单,相比于 StarRocks 也更加稳定,相比集群,更推荐单机 ClickHouse。如果是分析业务流数据,更加推荐 StarRocks ,因为 StarRocks 对于更新场景性能更加,而且 JOIN 性能更好,而且更加推荐部署 StarRocks 集群,可以充分发挥 StarRocks 的性能。

大数据Hadoop、HDFS、Hive、HBASE、Spark、Flume、Kafka、Storm、SparkStreaming这些概念你是否能理清?

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hadoop是大数据开发的重要框架,是一个由Apache基金会所开发的分布式系统基础架构,其核心是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算,在Hadoop2.x时 代,增加 了Yarn,Yarn只负责资 源 的 调 度。当计算模型比较适合流式时,storm的流式处理,省去了批处理的收集数据的时间;

HDFS对比HBase、Hive对比Hbase

Hive和Hbase是两种基于Hadoop的不同技术Hive是一种类SQL的引擎,并且运行MapReduce任务Hbase是一种在Hadoop之上的NoSQL的Key/value数据库这两种工具是可以同时使用的。就像用Google来搜索,用FaceBook进行社交一样,Hive可以用来进行统计查询,HBase可以用来进行实时查询,数据也 可以从Hive写到HBase,或者从HBase写回Hive。

ClickHouse 与mysql等关系型数据库对比

先用一张图帮助理解两者的本质上的区。

牢牢把握“心价比”,徕芬的业绩爆发是一种必然?

业绩突破背后也有消费复苏的激励作用,但具体到电吹风市场,竞争态势在持续加剧,且有戴森这样的国外品牌盘踞于此。徕芬究竟是如何越走越稳的?

分布式系统架构设计之分布式数据存储的备份恢复和监控故障排查

架构师通过设计和实施数据备份和恢复策略,可以最大程度地保障分布式系统在面对数据损失、硬件故障、灾难性事件等情况下的稳定性和可用性。在分布式数据存储中,数据备份和恢复是保障数据存储系统可靠性和容灾性的重要组成部分。通过合理的监控和故障排查策略,可以确保分布式数据存储系统在运行过程中保持高可用性、高性能,并且能够及时应对潜在的故障情况。在分布式系统中,对数据存储进行有效的监控和出现问题后故障排查策略是确保系统稳定性和性能可靠性的关键。

【微服务】springboot整合skywalking使用详解

springboot整合skywalking

java中如何使用elasticsearch—RestClient操作文档(CRUD)

去数据库查询酒店数据,导入到hotel索引库,实现酒店数据的CRUD基本步骤如下。新建一个测试类,实现文档相关操作,并且完成JavaRestClient的初始化。方式一(全量更新):再次写入id一样的文档,就会删除旧文档,添加新文档。根据id查询到的文档数据是json,需要反序列化为java对象。(2)根据id查询数据库数据,并转换。方式二(局部更新):只更新部分字段。(1)创建文档对应实体。修改文档数据有两种方式。

获得JD商品评论 API 如何实现实时数据获取

随着互联网的快速发展,电商平台如雨后春笋般涌现,其中京东(JD)作为中国最大的自营式电商平台之一,拥有庞大的用户群体和丰富的商品资源。为了更好地了解用户对商品的反馈,京东开放了商品评论的API接口,允许开发者实时获取商品评论数据。本文将介绍如何通过JD商品评论API实现实时数据获取,并给出相应的代码示例。JD商品评论API提供了一系列的接口,允许开发者根据需要获取不同维度的评论数据。通过该API,开发者可以获取到商品的详细评论信息、评论的统计数据以及用户的评论行为数据等。

基于神经网络——鸢尾花识别(Iris)

鸢尾花识别是学习AI入门的案例,这里和大家分享下使用Tensorflow2框架,编写程序,获取鸢尾花数据,搭建神经网络,最后训练和识别鸢尾花。