在过去的数年间,数据分析技术栈经历了许多重要变革,从最初数据仓库概念的诞生,到数据湖的兴起,进而演进到湖仓一体解决方案。这一技术路线的演进,反映出现代企业在数据分析领域对性能、实时性、一致性、开放性、统一管理方面的需求不断增强。
湖仓一体的演进
01 传统数据仓库的出现
在企业信息化发展初期、业务流程数字化的不断推进下,积累的数据愈发繁杂。管理层亟需快速整理这些数据,清晰洞察业务状况以精准决策,在此背景下催生了数据仓库。
数据仓库的核心目标是助力商业智能(BI)决策,将分散于各业务系统的结构化数据抽取、转换、加载(ETL)至集中存储库。数据仓库的显著优势包括:
•高效的结构化数据分析:严格的 Schema 设计确保数据高质量,为后续处理和分析奠定坚实基础;列式存储可以提高特定查询的效率;精心设计的专用数据格式,能够更好适应结构化数据的特点和分析需求;存算一体架构减少了数据传输的开销,提升了分析性能。
•成熟的 SQL 查询支持:基于关系模型的数据仓库完美适配 SQL 语言,相关人员可运用熟悉的查询语句,快速检索、统计、分析数据及生成各类报表,满足企业经营分析、销售趋势预测等方面的需求。
•数据一致性保障:通过集中式存储与管理,数据仓库在严格的事务处理机制下能够确保数据的准确性与一致性,避免冗余和不一致带来的分析误差,为企业提供可靠的数据依据。
•伴随互联网普及、物联网兴起,非结构化数据(如时序数据、图片、视频、文档)大量涌现,传统数据仓库无论从扩展性、成本,还是对非结构化数据的支持方面都难以承载新的需求,企业迫切寻求更高性价比的存储分析方案。同时,数据科学与机器学习的蓬勃发展推动了探索式分析需求,催生了数据湖技术的出现。
02 数据湖的兴起
Google 在大数据领域的开创性研究成果—— Google 文件系统(GFS)、MapReduce 和 BigTable,犹如灯塔般引领了全球大数据技术的蓬勃发展之路,基于 Hadoop 的技术架构和生态系统自此诞生,催生了数据湖这一概念。Hadoop 使得在低成本的商用服务器上进行大数据处理成为可能,它能够很好支持以下应用场景:
•超大规模数据处理:通过分布式存储和并行计算技术,可以在通用计算节点上进行高效地大规模数据处理,避免了依赖特殊硬件带来的高昂成本。
•多模态数据支持与低成本存储:不同于传统数仓需要严格的表模式定义,数据湖能够以原始格式存储任意数量和类型的数据。通过 Schema-on-Read 机制,可在读取时再进行模式定义,最大限度地保留数据价值。这种灵活性尤其适用于图像、音视频和日志等信息,提供了更为敏捷的探索性分析能力。此外,依托于对象存储,不仅降低了存储成本,还实现了极高的可扩展性。
•多模态计算:利用不同的计算引擎,在同一份数据集上执行包括 SQL 查询、机器学习、AI 训练等不同计算任务,满足多样化的数据处理需求。
•“数据湖”这个名称生动诠释了企业数据状态:大量原始数据汇聚在一个统一的存储底座中形成“湖”,然后在湖上构建各类系统进行数据分析和处理。随着技术的发展,数据湖也逐渐形成了以存储、计算、元数据为主的三层架构,为后续的湖仓一体发展奠定了基础。
•存储层:数据湖通常使用分布式文件系统或者对象存储进行数据存储,比如 HDFS、AWS S3、Azure Blob Storage、阿里云 OSS、华为云 OBS、腾讯云 COS 等。它们提供几乎无限的存储容量,具备高可用性、低成本等优势,企业可按需使用。数据以原始格式存储,避免了传统数据仓库复杂的数据建模与结构化过程,为后续多样化的数据处理需求提供了灵活的基础。
•计算层:存储的数据允许被不同计算引擎访问,多引擎相互合作可满足不同场景下的数据处理速度与灵活性要求,如 Hive 引入 HiveQL,通过 SQL 进行批量数据加工处理;Spark 支持批处理、流处理、机器学习等多种计算场景;Presto 则专注交互式查询,快速响应复杂的即席查询请求。
•元数据层:以 Hive Metastore 为代表的元数据服务,记录了数据湖中的表结构、分区信息、数据存储位置等关键元数据,使得不同的计算引擎与工具能够基于统一的元数据理解数据,实现数据共享与协同处理,是维持数据湖有序运行的重要组件。
03 数据处理的新挑战
数据仓库和数据湖技术经过多年的发展,在各自领域都发挥的重要作用。这里简要总结了两类系统在不同技术方面的对比:

随着企业对数据实时性、准确性、开放性等需求的日益增加,传统数据仓库和数据湖都各自面临来自不同方面的挑战:
传统数据仓库:
•数据实时性匮乏:在电商大促和实时监控场景下,企业要求达到秒级甚至亚秒级的数据洞察能力。数据仓库基于静态的 ETL(Extract, Transform, Load)过程,难以处理持续变更的数据,无法满足实时决策的需求。例如,物流企业追踪货物的实

3397

被折叠的 条评论
为什么被折叠?



