数据平台发展史-从数据仓库数据湖到数据湖仓 1

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 数据平台发展史-从数据仓库数据湖到数据湖仓

数据平台发展史-从数据仓库数据湖到数据湖仓

做数据的同学经常听到一些数据相关的术语,常见的包括数据仓库,逻辑数据仓库,数据湖,数据湖仓/湖仓一体,数据网格 data mesh,数据编织 data fabric等.

笔者在这里回顾了下数据平台的发展史,也介绍和对比了下常见的概念,主要包括数据仓库,数据湖和数据湖仓,希望大家有所收获。

1 数据平台概述

所谓「数据平台,主要是指数据分析平台,其消费(分析)内部和外部其它系统生成的各种原始数据(比如券商柜台系统产生的各种交易流水数据,外部行情数据等),对这些数据进行各种分析挖掘以生成衍生数据,从而支持企业进行数据驱动的决策」:An analytics platform is a unified solution that combines technologies to meet enterprise needs across the end-to-end analytics lifecycle from data storage, data management, data preparation, and other data analytics processes.

数据分析平台既可以部署在本地,也可以部署在云端,其典型特征有:

  • 数据分析平台,需要上游系统(内部或外部)提供原始数据; - 数据分析平台,会经过分析生成各种结果数据(衍生数据);
  • 数据分析平台,生成的结果数据,一般主要服务于企业自身,支持企业进行数据驱动的决策,从而助力企业更好地经营:为顾客提供更好的服务,企业自身降本增效更好地运营,或发现新的商业洞察从而支持新的商业创新和新的业务增长点等(foster innovation);
  • 数据分析平台,生成的结果数据,也可以服务于外部客户: 通过数据变现,为企业创造新的业务模式和利润增长点;(各种提供数据服务的公司)
  • 数据分析平台,支持各种类型的数据分析应用,包括BI也包括AI;

640.png

数据(分析)平台,常见的相关术语有:数据仓库,数据湖,数据湖仓,数据中台,逻辑数仓 Logical data warehouse,数据编织 Data fabric,Data mesh 等:

  • 数据仓库,数据湖,数据湖仓/湖仓一体:是数据平台主要的支撑载体,是当前使用最广泛的术语,其中数据湖仓也称湖仓一体,本质是数据湖的2.0版本;
  • 国内也经常讲数据中台:数据中台在数据仓库数据湖数据湖仓的基础上,强调了将数据进行服务化API化,从而支持更快速敏捷地开发各种新型数据应用;
  • 数据编织 Data fabric,数据网格 Data mesh:是随着企业云化迁移以及微服务架构兴起,逐渐流行起来的新的术语,在管理数据时更强调数据天然分布式的特性和数据产品的理念(数据是一种产品,来自不同服务由不同团队管理);
  • 需要注意的是,数据仓库,数据湖与数据湖仓虽然有着明显的学术定义上的区别,但是在业界很多场景下我们并不严格区分三者;

本次分享,我们主要关注数据仓库数据湖和数据湖仓

2 数据平台发展史-从数据仓库数据湖到数据湖仓

整个数据平台的发展史,其实可以用一句话简单概括下:「数据平台的发展,是随着企业信息化和数字化的逐渐推进,从数据库,数据仓库,数据湖到数据湖仓逐渐演进的」

  • 在企业信息化早期,建设了各种线上业务系统如 ERP/CRM/OA等,这些业务系统通过数据库沉淀了多种数据,其数据库一般采用的是 OLTP的关系型数据库;
  • 随着信息技术的进一步发展,企业逐渐意识到数据具有价值,并可以通过各种分析方法挖掘其中的价值,支持企业的管理决策,于是逐渐有了数据仓库平台(数据仓库诞生于数据库时代);
  • 随着大数据时代的到来,数据在种类和体量上都有了爆炸式的增长,数据的存储和分析处理技术也有了进一步发展,为更好地挖掘数据中的价值,出现了数据湖平台(数据湖脱胎于大数据时代,有着很强的开源和开放的基因);
  • 随着企业向数字驱动进一步迈进,对数据的存储和分析处理有了更高的要求,出现了融合数据仓库和数据湖各自特点的新型数据平台,其实质是数据湖2.0,也被称为数据湖仓;

2.1 数据仓库

数据仓库(Data Warehouse),是由被誉为全球数据仓库之父的 W.H.Inmon 于1990年提出的,其相对学术的解释:「数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策和信息的全局共享」

  • 所谓主题:是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;
  • 所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的;
  • 所谓集成:是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。
  • 所谓随时间变化:是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测;
  • 之所以使用数据仓库而不是前台线上业务系统的OLTP数据库进行BI等数据分析,一个重要的原始是OLTP只能应对简单的关联查询,支撑基本的和日常的事务处理,不适用数据的多维度分析;而数仓底层一般是擅长多维分析的OLAP数据库(还有一个原因是数据分析属于后台系统,不能影响前台线上业务系统的性能)

640.png

数据仓库一般具有以下特点:

  • 数仓强调数据建模,需要根据领域知识按照分层建模理论,进行详细的模型设计;
  • 数据由外部系统进入数仓时,需要经过清洗转化后加载进数据仓库,即 ETL;
  • 数据需要ETL后进入数仓,本质是由于外部系统中的数据模型跟数仓中的数据模型是不同的(外部OLTP系统一般是按照范式设计的数据库中的表,而数仓一般是OLAP中反范式的大宽表);
  • 数仓模型的建设一般耗时耗力,但数仓模型一旦创建完毕,相对来说不会轻易做出改变;
  • ETL的本质是 SCHEMA ON WRITE,即数据进入数仓时经由 ETL 完成了清洗和转换,所以数仓中的数据质量较高;
  • 数仓分层比较经典的有:ODS,DWD,DWS,ADS等;
  • 数仓是商业智能BI的基础,主要基于建好的数仓模型,经过分析回答固定的已知问题,从而支撑BI的报表和大屏等;
  • 数仓一般内置存储系统,且不对外直接暴露存储系统接口(不允许外部系统直接访问数仓底层存储系统中的数据比如文件),而是将数据抽象的表或视图的方式,通过提供数据进出的服务接口对外提供访问(最常见的数据访问方式是SQL,有的数仓对加载数据也提供了RESTFUL接口或专用的LOAD/COPY等命令);
  • 数据仓库通过抽象数据访问接口/权限管理/数据本身,带来了一定的封闭性,但换取了更高的性能(无论是存储还是计算)、闭环的安全体系、数据治理的能力等,可以应对安全/合规等企业级要求;
  • 数仓内置存储系统但不对外直接暴露存储系统接口,而是提供数据进出的服务接口,带来了以下优缺点:
  • 数仓具有封闭性,只能使用数仓专用的分析引擎,一般不能对接三方其它引擎;
  • 数仓具有封闭性,不同数仓之间的数据迁移相对较难;
  • 数仓性能较好:数仓计算引擎对内置存储系统的数据存储格式有深入了解,存储和计算可以配合着做深度优化,提高数仓的性能;
  • 数仓在数据治理上具有优势:有完善的元数据管理能力,完善的血缘体系等,可以对数据进行全生命周期的细粒度的治理;

关于数仓,有以下几点需要注意下:

  • 传统的数仓,底层一般是基于数据库的,底层只能以表的形式存储结构化数据,如 GreenPlum,Teradata,Vertica等,成本相对较高;
  • 传统的数仓,一般是存储计算耦合的架构,在横向扩展性和弹性能力上相对不足,能管理的数据量相对较小;
  • 新兴的云数仓,底层一般是基于云上对象存储的,如 AWS Redshift、Google BigQuery、阿里云MaxCompute, Snowflake 等;
  • 新兴的云数仓,一般是存算分离的架构,存储和计算可以独立进行扩展,有着很好的横向扩展性和弹性,可以管理大量数据;

2.2 数据湖

数据湖是大数据时代的产物,本身没有相对官方的概念,其最早是由 Pentaho 的创始人兼首席技术官James Dixon 与2010年10月提出的,其后不同厂商有所延伸和细化:

  • AWS的定义相对简洁:数据湖是一个集中式存储库,允许以任意规模存储所有结构化和非结构化数据,可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析 – 从控制面板和可视化到大数据处理、实时分析和机器学习,以指导做出更好的决策;
  • 维基的定义:数据湖将数据以自然/原始格式存储在对象存储或文件系统中,数据湖通常把企业所有数据统一存储,包括源系统中的原始数据副本,传感器数据,社交媒体数据等,也包括转换后的数据,以用于支撑报表, 可视化, 高级数据分析和机器学习等。数据湖中的数据包括关系数据库的结构化数据(行与列)、半结构化的数据(CSV,日志,XML, JSON),非结构化数据 (电子邮件、文件、PDF)和 二进制数据(图像、音频、视频);
  • Wiki: A data lake is a system or repository of data stored in its natural/raw format, usually object blobs or files. A data lake is usually a single store of data including raw copies of source system data, sensor data, social data etc., and transformed data used for tasks such as reporting, visualization, advanced analytics and machine learning);
  • 数据湖是人工智能AI的基础,存储了企业内部各种原始数据,支持丰富的计算模型/范式,所以数据科学家和数据分析人员,可以采用各种统计分析,机器学习,深度学习等方法,对数据进行各种探索性分析挖掘,回答各种已知问题和未知问题,从而支撑各种AI场景;

数据湖为什么叫数据湖,而不叫数据河,数据海?一个贴切的解释是:

  • “河”强调的是流动性,河终究是要流入大海的,“海纳百川”,这与企业级数据需要长期沉淀对应,因此叫“湖”比叫“河”要贴切;
  • “海”是无边无界的,而“湖”是有边界的,这与企业级数据有边界向对应(这个边界就是企业/组织的业务边界),因此叫“湖”比叫“海”要贴切;
  • “湖”天然是分层的,满足不同的生态系统要求,这与企业建设统一数据中心,存放管理数据的需求是一致的,“热”数据在上层,方便应用随时使用;温数据、冷数据位于数据中心不同的存储介质中,达到数据存储容量与成本的平衡;
  • 还有一个有关的概念是“数据沼泽”:数据湖需要精细的数据治理,包括权限管理,一个缺乏管控、缺乏治理的数据湖最终会退化为“数据沼泽”,从而使应用无法有效访问数据,使存于其中的数据失去价值(数据湖中数据越多越需要数据治理);

640.png

数据湖一般具有以下特点:

  • 数据湖使用统一的存储系统,可以存储结构化数据(数据库的表),半结构化数据(日志,JSON,xml等),也可以存储非结构化数据(图像音视频等二级制格式);
  • 数据由外部系统进入数据湖时,不需要经过清洗转化后再加载进数据湖(ETL),而是采用 ELT,直接进行抽取和加载;
  • 数据湖中的数据,在后续需要针对具体场景进行分析时,才会对湖中已经存在的原始数据进行 transform 转化到特定的结构进而进行后续分析,即采用的是 schema on read 而不是 schema on write;
  • 由于采用了 ELT 和 schema on read,所以数据湖落地初期不强调数据建模,不需要事先根据领域知识进行详细的模型设计,所以数据湖相对数据仓库,项目落地速度更快;

数据湖具有开放性,其开放性体现在以下几点:

  • 数据湖具有开放性,体现在数据湖中的数据可以使用多种文件格式进行存储(如开源的 orc/parquet/avro等等);
  • 数据湖具有开放性,体现在数据湖虽然内置了存储系统,但一般会对外开放底层存储系统的访问接口;(如可以直接访问HIVE底层表对应的HDFS/S3的文件);
  • 数据湖具有开放性,也体现在数据湖中的数据可以使用多种分析引擎进行分析(本质还是因为数据湖底层存储层是开放的,所以可以支持 spark/presto/flink 等多种分析引擎);

数据湖开放性的特点,带来了以下优缺点:

  • 通过底层存储系统的开放性,使得数据湖存储的数据结构可以是结构化的,可以是半结构化的,也可以是完全非结构化;
  • 底层存储系统的开放性,使得上层可以对接多种分析引擎,各种引擎也可以根据自己针对的场景有针对性地进行各种性能优化;
  • 但底层存储系统的开放性,也使得很多高阶的功能很难实现,例如细粒度(小于文件粒度)的权限管理和统一化的文件管理,所以数据湖中如何对数据进行全生命周期的细粒度的治理是一个难题(包括统一的完善的元数据管理和血缘体系等 );

数据湖与上云无关,底层存储可以采用文件系统也可以采用对象存储,常见的实现有:

  • 自建开源 Hadoop 数据湖架构(最常见);
  • 云上托管 Hadoop 数据湖架构(如阿里和AWS的EMR数据湖);
  • 云上非 hadoop 数据湖,如 Azure 数据湖,阿里云OSS 数据湖,Alluxio 虚拟数据湖等(对象存储)
相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
1月前
|
SQL 存储 大数据
数据仓库(10)数仓拉链表开发实例
拉链表是数据仓库中特别重要的一种方式,它可以保留数据历史变化的过程,这里分享一下拉链表具体的开发过程。 维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录,通过拉链表可以很方便的还原出拉链时点的客户记录。
167 13
数据仓库(10)数仓拉链表开发实例
|
1月前
|
关系型数据库 MySQL OLAP
PolarDB +AnalyticDB Zero-ETL :免费同步数据到ADB,享受数据流通新体验
Zero-ETL是阿里云瑶池数据库提供的服务,旨在简化传统ETL流程的复杂性和成本,提高数据实时性。降低数据同步成本,允许用户快速在AnalyticDB中对PolarDB数据进行分析,降低了30%的数据接入成本,提升了60%的建仓效率。 Zero-ETL特性包括免费的PolarDB MySQL联邦分析和PolarDB-X元数据自动同步,提供一体化的事务处理和数据分析,并能整合多个数据源。用户只需简单配置即可实现数据同步和实时分析。
|
1月前
|
分布式计算 大数据 Hadoop
数据仓库(13)大数据数仓经典最值得阅读书籍推荐
从事数仓工作,在工作学习过程也看了很多数据仓库方面的数据,此处整理了数仓中经典的,或者值得阅读的书籍,推荐给大家一下,希望能帮助到大家。建议收藏起来,后续有新的书籍清单会更新到这里。
245 2
数据仓库(13)大数据数仓经典最值得阅读书籍推荐
|
1月前
|
SQL 数据采集 存储
数据仓库(12)数据治理之数仓数据管理实践心得
这边文章聊聊自己对数据治理开发实践的一些思路,就是聊聊怎么开始去做数据治理这件事情。说起数据治理,有时候虽然看了很多文章,看了很多的介绍,了解数据治理的理论,但是实际上需要我们去搞的时候,就会踩很多的坑。这里记一下自己做数据治理的一些思路,做做笔记,也分享给需要的同学。 当然,想要做数据治理,想要学习了解,一下数据治理的范围,理论等,最好可以看看别人怎么做的,了解数据治理可以参考:[数据仓库(11)什么是大数据治理,数据治理的范围是哪些](https://zhuanlan.zhihu.com/p/467433967)。
305 0
|
1月前
|
存储 监控 大数据
数据仓库(11)什么是大数据治理,数据治理的范围是哪些
什么是数据治理,数据治理包含哪些方面?大数据时代的到来,给了我们很多的机遇,也有很多的挑战。最基础的调整也是大数据的计算和管理,数据治理是一个特别重要的大数据基础,他保证着数据能否被最好的应用,保证着数据的安全,治理等。那么数据治理到底能治什么,怎么治?
68 0
|
1月前
|
存储 大数据 数据管理
数据仓库(09)数仓缓慢变化维度数据的处理
数据仓库的重要特点之一是反映历史变化,所以如何处理维度的变化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化,与数据增长较为快速的事实表相比,维度变化相对缓慢。阴齿这个就叫做缓慢变化维。
218 2
数据仓库(09)数仓缓慢变化维度数据的处理
|
1月前
|
SQL Cloud Native 关系型数据库
AnalyticDB MySQL湖仓版是一个云原生数据仓库
【2月更文挑战第15天】AnalyticDB MySQL湖仓版是一个云原生数据仓库
24 2
|
3月前
|
存储 机器学习/深度学习 数据挖掘
探究数据仓库与数据湖的异同及应用场景
在数据分析与处理方面,数据仓库与数据湖是两种广泛运用的数据架构。本文将深入剖析数据仓库与数据湖的概念、特点、使用场景以及二者之间的区别和联系,帮助读者更好地了解这两种数据架构的优缺点。
|
3月前
|
存储 机器学习/深度学习 数据挖掘
数据仓库与数据湖:解析数据驱动的未来
在数字化时代,数据成为企业决策的核心资源。本文将深入探讨数据仓库和数据湖的概念、特点以及应用场景,分析其在实现数据驱动决策过程中的重要性和优势,并展望数据驱动的未来发展趋势。
54 5
|
3月前
|
SQL 关系型数据库 MySQL
在云数据仓库AnalyticDB MySQL版中,有几个参数可能影响SELECT查询的执行及其稳定性
在云数据仓库AnalyticDB MySQL版中,有几个参数可能影响SELECT查询的执行及其稳定性【1月更文挑战第16天】【1月更文挑战第80篇】
292 4

热门文章

最新文章