马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
从1990年代Bill Inmon提出数据仓库概念后经过四十多的发展,经历了早期的PC时代、互联网时代、移动互联网时代再到当前的云盘算时代,但是数据仓库的构建目标基本没有变化,都是为了支持企业大概用户的决策分析,包罗运营报表、企业营销、用户画像、BI分析等。
广义上看数据库仓库并不是一项技术大概产品而是数据处置惩罚过程,从不同的数据源举行数据会集,然后经过数据的统一建模成适合于分析的数据模子,最终辅助企业的决策分析。这个过程涉及到ETL、数据建模及数据可视化等一系列实现,这也是与数据库的本质区别。
随着盘算机科学技术发展与财产变革,数据仓库在应对从数据特征出现多样化、海量化到业务特征复杂化、智能化及实时化等,再到底子设施(存储、网络及盘算资源)能力的提拔、云盘算技术的发展等变化,数仓的整个体系也在持续演进中,这里从数据仓库的系统架构及内核引擎的实现角度去分析数据仓库的发展过程,基本上如下图所示:
从数仓的核心能力去分析各个阶段实现的变化,我将重点分析以下几个方面:
- 存储引擎:主要是数据的组织方式,界说了数据怎样存储及压缩、索引的创建和更新、锁机制、事务及缓存管理等。在数仓中数据是面向主题的将数据举行整理归纳和重组,这是进步数据分析性能的核心,在分析过程只必要处置惩罚部分维度的数据,并且大量的统计任务必要举行数据的扫描大概精确检索,因此存储引擎的公道设计是数仓架构发展的紧张部分。
- 盘算引擎:分析型任务涉及到大量的盘算,盘算服从往往会成为数据库系统的瓶颈,盘算模子(框架)、优化技术、和运行中心数据的处置惩罚等都是数仓演进的突破点。MPP盘算、分布式流盘算、分布式批盘算等都有相应的使用场景,在具体的算子执行过程中向量盘算、编译执行及硬件加快技术等都是近年有效的提拔性能的方法。
- 技术实现架构,数据库可以基于功能分为存储、盘算及管理等层次,这些功能的运行机制影响着系统的机动性、可运维性、本钱及分析的性能等。云盘算的出现为数仓架构的演进提供了新的方向,赋予数仓得到自服务、弹性等能力,同时目前企业将底子系统、平台部署到云端降低信息化建立本钱及优化运行管理流程等成为趋势。
数据仓库的演进变革的因素有许多,例如快速的业务模式与群体规模的数据量带来的大数据处置惩罚技术、互联网的发展带来的数据源及数据类型的增多、人工智能的发展带来数智的融合、云盘算交付模式的出现必要的细粒度的资源管理与隔离等,业务实时性的要求等都会带来数据仓库架构的变化。本文将分三章分析不同阶段数据仓库的核心特性的变化,包罗传统数仓、大数据数仓、云数仓,并逐一举行解说,本章紧接第二章大数据数仓,先容云数仓以及团体总结。
传统数仓将盘算与存储部署在同一个节点,集群的扩容复杂,必要举行数据的迁移,同时架构存在木桶效应,单节点故障会影响团体的性能,且资源管理不机动,无法满足不同场景下资源隔离及动态调整的需求。云盘算的出现为数仓架构的演进提供了新的方向,赋予数仓得到自服务、弹性等能力,同时目前企业将底子系统、平台部署到云端降低信息化建立本钱及优化运行管理流程等成为趋势。
数仓在云端提供服务可以利用公有云强大的底子设施能力(弹性盘算、存储、网络及安全能力),同时让用户更加轻松将数据举行集成,并降低使用、维护与架构本钱。这就产生了云数仓(基于云原生的数据仓库),业界没有明确的界说,但是Snowflake是云数仓的里程碑产品,目前出现的云数仓产品许多都会鉴戒该产品的设计头脑,架构如下图所示:
云数仓、现代MPP架构都可以称为现代化数仓,但是这两种产品体系都是对传统数仓举行了不同角度的革新,现代MPP架构是从底层存储引擎角度(数据的组织与盘算优化)而云数仓是从底子架构的角度举行了升级。云数仓的基本特征如下:
- 盘算与存储分离(Disaggregation),在云环境下网络传输能力已经基本上能追上磁盘的IO的能力,存算分离后可以实现存储的横向扩展,并且在盘算低峰时举行缩容,进一步降低数据分析的本钱,最后是可以根据数据的热度举行存储分级,保证性能的同时进一步降低存储本钱;存储不再是服务本身的一部分,演变为独立的服务,扩容无需数据的重分布;
- 资源扩展秒级弹性,盘算层实现无状态可以随时扩缩容,并且随时热升级,为了实现无状态必要对元数据举行“分解”,盘算层无状态后才可以或许随机增减节点、故障后快速切换且不必要复制/迁移数据,从而实现可靠性的提拔及降低本钱;弹性的扩缩可以基于定时大概负载(Workload Manager)等规则来控制,在资源不必要时可以举行关闭;
- 数据共享(Multi Cluster, Shared Data),盘算资源可以根据不同的业务举行分别后构成捏造数仓,捏造数仓共享底层的数据,可以通过MVCC机制来实现数据访问的一致性。
在公有云中云数仓以服务的模式来举行交互,降低数据仓库的管理复杂度,用户将运维、升级等工作交由云厂商来实现,并且以Web的方式来使用数据仓库服务。目前各种云数仓产品层出不穷,从公有云厂商推出的Google BigQuery、Redshift、Synapse、Snowflake、国内云厂商的阿里云ADB、华为云GaussDB、移动云海山数仓,到近期开源的DataBend、ByConity等,这些产品之间的功能基本相同,只是在技术细节的实现各有不同。
移动云云原生数据库海山数仓产品是中国移动自主研发的云原生分析型(OLAP)数据库。接纳基于 Shared-Data与存储盘算分离架构,具备zero-ETL能力,具备程度在线扩缩容,金融级高可用,提供全面向量化引擎与多种数据源联邦查询等紧张特性。兼容 MySQL 协议和 MySQL 生态。支持海量数据在线查询,复杂查询快速响应,多维数据查询分析等。不仅有力辅助企业客户驾驭复杂的盘算场景与海量数据需求,简化数据流转流程,使用户得以快速洞悉业务运营的真实面目,而且还能有效资助企业捉住数据时代的战略机遇,驱动业务模式的创新与升级。
数据仓库从概念提出后随着用户使用需求的变化、新技术的出现等多种因素促使架构不断演进,在这个过程中不同的厂商针对各自的观点和需求,例如原始数据(数据湖)、实时性、多模数据及呆板学习等,不断的在举行架构优化和新技术的引入,针对数仓的概念也在不断的重新界说,下图对这些概念举行了总结:
在图中数据库、数据仓库与数据湖保持明确的功能定位,产品体系的界限相对比力清楚,但是随着技术的发展,产品也在相互鉴戒融合。数据仓库由于对数据实时性的需求演进到了实时数仓,在这个过程中数据的实时接入框架、查询性能的提拔、交互式查询等能力让数仓的实现复杂化;为了面向满足不同数据类型的需求,数据仓库逐步举行数据的融合处置惩罚,形成了湖仓、多模数据库的概念。随时云原生技术的发展,目前各种类型的数据仓库在加快向云架构转型,力求打造新一代云数据仓库。目前在业界虽然数仓的产品数量及类型较多,但从技术实现的角度观察,它们正在朝着相似的核心技术和设计理念靠拢例如向量化执行、编译执行、盘算Pipeline模子、盘算存储分离、机动弹缩等。
- 数据仓库发展史:数据库发展史2--数据仓库_Data_Oracle_Inmon
- 从数仓架构到大数据架构的九种演进:
账号已迁移
3)从Snowflake看数据仓库将来演进方向:
从Snowflake看数据仓库将来演进方向:盘算存储分离、弹性盘算、统一存储和Serverless化_文化 & 方法_蔡芳芳_InfoQ精选文章
- DB Engine 数据库排行及先容 : https://db-engines.com/en/
5)墨天轮中国数据库盛行度排行:https://www.modb.pro/dbRank
6)CliBench数据仓库评测:https://benchmark.clickhouse.com
7)各产品官网与开源社区:
https://github.com/ClickHouse/ClickHouse
GitHub - apache/doris: Apache Doris is an easy-to-use, high performance and unified analytics database.
https://github.com/greenplum-db/gpdb
https://clickhouse.com/
Apache Doris: Open-Source Real-Time Data Warehouse - Apache Doris
https://github.com/datafuselabs/databend
ByConity · GitHub
冯永设,中国移动云能力中心数据库产品部-OLAP数据库开辟工程师。主要参与OLAP数据库产品架构设计/内核优化等工作。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |