数据中台实战(00)-大数据的尽头是数据中台吗?

news2024/11/24 12:59:34

除了支撑集团的大数据建设,团队还提供To B服务,因此我也有机会接触到一些正在做数字化转型的传统企业。从2018年末开始,原先市场上各种关于大数据平台的招标突然不见了,取而代之的是数据中台项目,建设数据中台俨然成为传统企业数字化转型的首选,甚至不少大数据领域的专家都认为,数据中台是大数据下一站。

为啥数据中台是大数据的下站?与数仓、数据湖、大数据平台啥区别?来深入大数据发展史,先从数仓出现讲起,途径数据湖,再到大数据平台,这样才能理解大数据发展的每阶段的问题,深入理解数据中台在大数据发展中的历史定位。

1 数据仓库

商业智能(Business Intelligence,BI)诞生在1990s,将企业已有数据转化为知识,帮企业经营分析决策。如零售行业门店管理,如何使单门店利润max,就要分析每个商品的销售数据和库存信息,为每个商品制定销售采购计划:

  • 有的商品存在滞销,应该降价促销
  • 有的商品比较畅销,要根据对未来销售数据的预测,提前采购

都离不开大量数据分析。

而数据分析需聚合多个业务系统的数据,如集成交易系统、仓储系统的数据,同时需保存历史数据,进行大数据量的范围查询。传统DB面向单一业务系统,主要实现面向事务的增删改查,已不满足数分场景,于是催生数据仓库。

1991年出版的《Building the Data Warehouse》中,数据仓库之父比尔·恩门(Bill Inmon)首次给出数据仓库完整定义:

数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的,不可修改的数据集合。

1.1 深入理解数据仓库四要素-电商案例

电商有:

  • DB专门存放订单数据
  • 另一DB存放会员相关数据
构建数仓

先要把不同业务系统的数据同步到一个统一的数仓,然后按主题域方式组织数据。

image-20230926171735601

1.1.1 主题域

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

1.1.2 设计方法

他和金博尔(Kimball) 共同开创的数仓建模的设计方法,对后来基于数据湖的现代数仓设计有重要意义。

自顶向下

恩门的建模方法,顶指数据来源,在传统数仓就是各业务DB。

基于业务中各实体及实体之间的关系,构建数仓。

如买家购买商品,先要理清业务过程涉及的实体。

买家、商品是一个实体,买家购买商品是一个关系。得到如下模型:

买家表:

商品表:

image-20230927093453021

买家商品交易表:

image-20230927093627617

自底向上

金博尔建模与恩门正相反,从数据分析的需求出发,拆分维度和事实:

  • 用户、商品就是维度
  • 库存、用户账户余额是事实

对应刚才完全一样的表,分别叫:

  • 用户维度表
  • 商品维度表
  • 账户余额事实表
  • 商品库存事实表
对比
  • 恩门建模从数据源开始构建,构建成本较高,适用应用场景较固定的业务,如金融领域,冗余数据少是优势

  • 金博尔建模从分析场景出发,适用变化速度较快的业务,如互联网业务。现在业务变化都快,更推荐金博尔建模法

传统数仓,第一次明确数分的应用场景应该用单独的解决方案去实现,不再依赖业务DB。模型设计上,提出数仓模型设计的方法论,为后来数分的大规模应用奠定基础。但互联网时代后,传统数仓没落,互联网技术催生大数据时代。

2 从Hadoop到数据湖

进入互联网的

2.1 重大变化

数据规模空前

一个成功的互联网产品日活过亿,抖音每天产生几千亿用户行为。传统数仓难扩展,无法承载如此规模海量数据

数据类型变得异构化

互联网数据来自:

  • 业务DB结构化数据
  • App、Web前端埋点数据或业务后端埋点日志,这些数据一般是半结构化甚至无结构。传统数仓对数据模型有严格要求,在数据导入数仓前,数据模型须事先定义好,数据须按模型设计存储

所以,数据规模和数据类型的限制,导致传统数仓无法支撑互联网BI。

谷歌互联网巨头率先开始探索,2003年开始,先后发表论文:

  • 《The Google File System》
  • 《MapReduce:Simplified Data Processing on Large Clusters》
  • 《Bigtable:A Distributed Storage System for Structed Data》

奠定现代大数据技术基础。提出新的,面向数分的海量异构数据的统一计算、存储方法。

2005年Hadoop出现,大数据技术才普及。Hadoop是论文的开源实现

2.2 Hadoop V.S 传统数仓

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

随Hadoop成熟,2010年,Pentaho创始人兼CTO James Dixon在Hadoop World大会提出

2.3 数据湖(Data Lake)

以原始格式存储数据的存储库或系统。数据湖是Hadoop从开源走向商业化成熟的标志。企业可基于Hadoop构建数据湖,将数据作为企业核心资产。

但一个商用Hadoop包含20多种计算引擎, 数据研发流程多,技术门槛限制Hadoop商用化。如何让数据加工像工厂,直接在设备流水线完成?

3 数据工厂:大数据平台

3.1 数据开发流程

  • 先将数据导入大数据平台
  • 再按需求进行数据开发
  • 开发完成后,数据验证比对,确认是否符合预期
  • 把数据发布上线,提交调度
  • 日常任务运维,确保任务每日能够正常产出数据

若无高效平台,就跟写代码没有IDE,别人完成十个需求,你一个需求都完成不了。

大数据平台就是为提高数据研发效率,降低数据研发门槛,让数据在一个设备流水线快速完成加工。

大数据平台面向数据研发场景,覆盖数据研发的完整链路的数据工作台

3.2 大数据平台使用场景

  • 数据集成
  • 数据开发
  • 数据测试
  • 发布上线
  • 任务运维

大数据平台使用对象是数据开发。大数据平台底层以Hadoop为代表的基础设施,分为计算、资源调度和存储。

3.3 大数据计算引擎

  • Hive、Spark 解决离线数据清洗、加工,Spark用得越来越多,性能要比Hive 高不少
  • Flink解决实时计算
  • Impala解决交互式查询

这些计算引擎统一运行在Yarn,Yarn来分配计算资源。也有基于k8s实现资源调度,如Spark版本(2.4.4)能运行在k8s管理的集群,可实现在线和离线的资源混合部署,节省机器成本。

3.4 数据存储

  • HDFS 不可更新,主要存全量数据
  • HBase提供了一个可更新的KV,主要存一些维度表
  • ck/Kudu 提供实时更新,一般用在实时数仓的构建场景中

大数据平台像一条设备流水线,经过大数据平台的加工,原始数据变成了指标,出现在各个报表或者数据产品中。随着数据需求的快速增长,报表、指标、数据模型越来越多,找不到数据,数据不好用,数据需求响应速度慢等问题日益尖锐,成为阻塞数据产生价值的绊脚石。

4 数据中台(数据价值)

2016年前后,互联网高速发展,对数据需求越来越多,数据应用场景也越来越多,大量数据产品进入运营日常工作,成为运营工作。电商业务有供应链系统,会根据各个商品的毛利、库存、销售数据以及商品的舆情,产生商品的补货决策,然后推送给采购系统。

4.1 大规模数据的应用暴露问题 - 数据割裂

不敢用数据

业务发展前期,为快速实现业务,烟囱式开发导致企业不同业务线,甚至相同业务线不同应用数据都割裂。两个数据应用的相同指标,展示结果不一致,导致运营对数据信任度下降。如你是运营,当你想看一下商品的销售额,发现两个报表都叫销售额的指标出现两值,第一反应数据算错,不敢用这数据。

大量重复计算、开发

导致的研发效率的浪费,计算、存储资源的浪费,大数据的应用成本越来越高。

  • 运营想要一个数据时,开发说至少一周,能不能快?
  • 数据开发面对大量需求,抱怨需求太多,干不完
  • 老板看到每月账单成指数级增长,觉得这也太贵,能不能再省

这些问题根源是

4.2 数据无法共享

2016年,阿里巴巴提“数据中台”。数据中台的核心,是避免数据的重复计算,通过数据服务化,提高数据的共享能力,赋能数据应用。

  • 之前,数据是要啥没啥,中间数据难于共享,无法积累
  • 建设数据中台之后,要啥有啥,数据应用的研发速度不再受限于数据开发的速度,一夜就可根据场景,孵化出很多数据应用,这些应用让数据产生价值

5 总结

  1. 数据中台构建于数据湖之上,具备数据湖异构数据统一计算、存储的能力,同时让数据湖中杂乱的数据通过规范化的方式管理起来。
  2. 数据中台需要依赖大数据平台,大数据平台完成了数据研发的全流程覆盖,数据中台增加了数据治理和数据服务化的内容。
  3. 数据中台借鉴了传统数据仓库面向主题域的数据组织模式,基于维度建模的理论,构建统一的数据公共层。

数据中台:

  • 吸收传统数仓、数据湖、大数据平台优势
  • 又解决数据共享的难题,通过数据应用,实现数据价值落地

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1044919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker安装高斯数据库openGauss数据库

1.创建容器 #创建数据没有挂在的容器 docker run --name opengauss --privilegedtrue -d -e GS_PASSWORDEnmo123 -p 8090:5432 enmotech/opengauss:latest 2. 进入容器,并切换omm用户,使用gsql连接高斯数据库 [rootansible ~]# docker ps -a CONTAIN…

【Proteus仿真】【STM32单片机】多功能智能台灯

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1604液晶、按键、蜂鸣器、语音识别模块、PCF8591 ADC模块、DHT11温湿度传感器、光线传感器、台灯、人体红外传感器等。 主要功能&#xff1a…

华为Mate 60系列搭配出境易,轻松玩转出境游高能体验~

今年中秋国庆假期“合体”,长达8天的超级黄金周即将到来。不少朋友期待来一场说走就走的出境旅行,趁此机会远游异国他乡,领略不一样的风土人情。众所周知,海外的应用生态和网络环境和国内并不相同。想要获得“一机在手&#xff0c…

python二级

python二级Turtle 太阳花四瓣花正六边形和圆内切六边形质数(素数)鲁棒输入异常处理python math模块 解密函数的返回结果是元组类型类 太阳花 题目:用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200的太阳花。绘制效果如图&…

感性负载箱与电容负载箱有什么区别?

感性负载箱和电容负载箱在电力系统中的应用场景有所不同,感性负载箱通常用于测试和评估电力系统中的感性负载设备,如电动机和变压器。这些设备在运行过程中会产生感性负载,即对电流的相位差有一定要求。感性负载箱可以通过调节串联的电感元件…

小米科技笔记 | ElasticSearch与Redis底层原理解析

大家好,我是小米,一个热衷于技术分享的小伙伴!今天,我们来探讨一下两个非常重要的数据存储和检索工具:ElasticSearch和Redis。虽然它们都是高度优化的工具,但在底层原理上有着明显的区别。接下来&#xff0…

多维时序 | MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络)

多维时序 | MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络) 目录 多维时序 | MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.MATLAB实现GA-BP多变量时间序列预测(遗传算法优化BP神经网络)&…

Linux IP地址、主机名

查看ip地址指令 ifconfig 如无法使用ifconfig命令,可以安装 yum -y install net-tools ip address show--显示协议地址

AEM TESTPRO K50 ROADSHOW华南区路演

AEM的测试和测量解决方案是由一个具有四十多年经验的团队为企业和汽车客户的解决方案而设计开发的。AEM的解决方案也是专为用户在整个产品生命周期阶段,包括布线和连接器,无论是制造和实验室环境,在安装或日常网络故障排除方面,其…

Zabbix5.0_介绍_组成架构_以及和prometheus的对比_大数据环境下的监控_网络_软件_设备监控_Zabbix工作笔记001

z 这里Zabbix可以实现采集 存储 展示 报警 但是 zabbix自带的,展示 和报警 没那么好看,我们可以用 grafana进行展示,然后我们用一个叫睿象云的来做告警展示, 会更丰富一点. 可以看到 看一下zabbix的介绍. 对zabbix的介绍,这个zabbix比较适合对服务器进行监控 这个是zabbix的…

Win11系统安装WSA 的简单方式

Win11 WSA 的简单安装方式,无需开启Hyper-V,无需下载安装包。 ​ Win11系统安装WSA 1. 开启虚拟机 注:我只开启了虚拟机平台和Bios的虚拟化,其他没有操作,其他人出现问题可以用通过Hyper-v解决,但我并不…

jvm垃圾回收机制概述

一、jvm内存的分区 JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。 其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收…

boost序列化单例3

源码见文章底部。 class singleton 声明了一个静态引用 static T & m_instance; 这个静态引用是用来干嘛的呢&#xff1f;注意到该文件末尾有如下代码&#xff1a; template<class T> T & singleton< T >::m_instance singleton< T >::get_instan…

第8讲:Vue 对象的生命周期

Vue 实例在创建时有一系列初始化步骤——例如&#xff0c;它需要建立数据观察&#xff0c;编译模板&#xff0c;创 建必要的数据绑定。在此过程中&#xff0c;它也将调用一些生命周期钩子&#xff0c;给自定义逻辑提供运行机 会。 生命周期图示 Vue 对象的生命周期函数 1、bef…

04 Zookeeper集群详解

上一篇&#xff1a;03-Zookeeper客户端使用 Zookeeper 集群模式一共有三种类型的角色 Leader: 处理所有的事务请求&#xff08;写请求&#xff09;&#xff0c;可以处理读请求&#xff0c;集群中只能有一个LeaderFollower&#xff1a;只能处理读请求&#xff0c;同时作为 Le…

TCP连接的三次握手与四次挥手【重点】

TCP的运输连接管理概述 TCP是面向连接的协议&#xff0c;它基于运输连接来传送TCP报文段 TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程 TCP运输连接有以下三个阶段 TCP的运输连接管理就是使运输连接的建立和释放都能正常的进行 TCP建立连接的三次握手&a…

ChatGPT 在机器学习中的应用

办公室里一个机器人坐在人类旁边&#xff0c;Artstation 上的流行趋势&#xff0c;美丽的色彩&#xff0c;4k&#xff0c;充满活力&#xff0c;蓝色和黄色&#xff0c; DreamStudio出品 一、介绍 大家都知道ChatGPT。它在解释机器学习和深度学习概念方面也非常高效&#xff0c;…

springboot 简单配置mongodb多数据源

准备工作&#xff1a; 本地mongodb一个创建两个数据库 student 和 student-two 所需jar包&#xff1a; # springboot基于的版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

csdn未经允许将我的文章设置成vip收费

以前在csdn写了一些笔记&#xff0c;后来不用csdn了&#xff0c;想着留下这些笔记或多或少能帮助其他初学者&#xff0c;就没管它。结果csdn把文章设置成收费了&#xff0c;这个收费不是我本人弄的&#xff0c;是csdn弄的&#xff01;我现在只能把这些文章删除掉了。

ThreeJS-3D教学三:平移缩放+物体沿轨迹运动

我们在项目中会有一些这样的需求&#xff0c;我们可视化一个场景&#xff0c;需要俯视、平移、缩放&#xff0c;方便观察场景中的数据或者模型&#xff0c;之所以把这个案例拿出来 1、这是个很实用的需求&#xff0c;我相信很多人会用到 2、我自己认为在实际案例中我们可以学习…