解读基于华为云 DWS 的湖仓一体方案构建
本文分享自华为云社区《数据驱动时代,基于华为云 DWS 的湖仓一体新范式解读》,作者:azu。
一、浅析数据湖与数据仓库
1 数据湖是什么
数据湖是一个大型数据存储和处理系统,其核心特点在于能够存储和处理各种类型和格式的数据,包括结构化数据、半结构化数据和非结构化数据。数据湖在存储数据时通常保持数据的原始格式,无需进行结构化处理,保留了数据的完整性和原始性。常见的数据湖架构主要包含 OBS/HDFS 等构成的存储层、元数据平台、Hive/Spark/Flink 等数据处理框架等主要组件。
2 数据仓库是什么
数据仓库是一种不同于数据湖的存储库,数据仓库存储经过处理和结构化的数据,为特定目的维护,并以特定的格式存储。数据仓库要求严格的结构化数据模式,以保证数据的一致性和准确性。它是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持经营管理中的决策制定过程。它被视为商业智能(BI)的核心组件,通过提供全面、大量的数据存储来有效支持高层决策分析。数据仓库在业务分析、决策支持、数据挖掘等方面广泛应用。
二、为什么湖仓一体是未来趋势
由前文可知,数据仓库和数据湖各有其优缺点,企业在选择时应根据自身需求和实际情况进行权衡。对于需要处理大量结构化数据并进行复杂分析的企业来说,数据仓库可能更合适;而对于需要存储大量原始数据并希望灵活地进行数据分析的企业来说,数据湖可能更合适。
但数据湖和数据仓库的分离使用在大数据管理和分析中可能带来一系列问题。这些问题主要涉及到数据的整合性、管理复杂性、性能瓶颈以及数据价值的释放等方面。
1 数据孤岛
当数据湖和数据仓库分离时,不同系统间的数据难以实现无缝集成,形成数据孤岛。这导致企业在进行综合数据分析时,需要跨越多个系统获取数据,增加了数据整合的难度和成本。
2 运维难度大 , 权限管理困难
分离的系统需要分别进行运维和管理,增加了 IT 团队的工作量和复杂性。同时,不同系统间的依赖关系也可能导致运维过程中的冲突和故障。
3 性能瓶颈及其带来的数据价值释放受限问题
分离的系统可能无法充分利用彼此的计算和存储资源,导致数据处理效率低下。例如,当数据仓库需要处理大量数据时,可能无法及时从数据湖中获取所需的数据,从而影响分析结果的时效性。分离的系统可能无法提供统一的查询接口和优化策略,导致查询性能受限。用户可能需要在不同的系统间切换以获取完整的数据视图,增加了查询的复杂性和时间成本。由于数据处理和查询性能的限制,企业可能无法及时获取准确的数据分析结果,导致业务决策滞后。在快速变化的市场环境中,这种滞后可能使企业错失商机或面临更大的风险。
分离的数据湖与数据仓库无法提供全面的数据分析能力,限制了企业对数据价值的深入挖掘。例如,数据仓库可能擅长处理结构化数据,但无法有效处理数据湖中的非结构化数据。而数据湖虽然能够存储各种类型的数据,但缺乏高效的数据分析工具和算法。那如果融合数据湖和数据仓库的优势,那是不是就可以提供一个更具性价比更有优势的解决方案?基于这个问题,湖仓一体便应运而生。
三、基于 DWS 的湖仓一体方案构建
湖仓一体可以定义为由数据湖和数据仓库组合构建的现代数据平台。更具体地说,湖仓一体拥有数据湖的非结构化数据的灵活存储特性,以及数据仓库的管理功能和工具,然后战略性地将两者作为一个更大的系统一起实施。
华为云 DWS 湖仓一体方案通过集成 DWS 高性能云数据仓库和其他云原生服务,实现了数据的统一存储、管理和分析。该方案旨在帮助企业从传统的大数据和数仓方案向 “一湖 + 多样集市 + 数据智能” 分层建设演进,实现数据的全面整合和价值最大化。
DWS 凭借优异的架构优势和性能在获得业界的诸多认可,金融、互联网、零售等多个行业的用户已基于 DWS 构建湖仓一体方案。在技术方面 DWS 具有以下优势:
- 统一元数据管理,无缝访问数据湖
DWS 对接元数据服务,Hive MetaStore、Lake Formation 元数据管理,可直接访问数据湖的数据表定义,与开源数据无缝对接,无需创建外表,自动感知 DLL 变化。DWS 支持主要的开源数据格式有 ORC,、Parquet、Hudi、Carbon、CSV。其中对于 Sql on Hudi,可进行增量查询及导入方式,既支持实时链路的增量分析,也可以支持离线链路的批量分析。
- 湖仓融合
DWS 支持查询数据湖和数据仓库内的任意数据,体验一致。高效获取外表数据,进行批量计算,内外表数据 join,可将数据直接写回数据湖,无需额外数据中转拷贝。 - 跨集群数据互访
打通不同数据系统、不同集群间的数据共享和跨库分析的能力,支持跨集群互访、集群间数据互联互通、计算下推、协同计算,实现数据多平台之间透明流动。DWS 多 VW 支持基于一份数据的实时、批量、交互式 SQL 查询,负载完全隔离,并发线性扩展。通过元数据和数据共享,实现一份数据的异构计算引擎的多样计算。 - 具有极致查询性能
在对大量数据进行复杂的查询和分析时,通过多种手段提升访问外表性能,多层缓存(内存 cache、disk cache)、分区剪枝、多层过滤下推,以及 DWS 的物化视图功能预先计算和存储这些查询的结果,大幅提高查询性能。
四、总结展望
湖仓一体是数据时代的大势所趋,是新一代数据平台的演进方向。华为云 DWS 湖仓一体方案数据统一存储、降低存储成本;简化技术架构,增强整体架构可靠性,降低运维成本;统一元数据、数据,基于开放数据格式,多服务多组件高效共享。
该方案已广泛应用于金融、电信、政府、医疗等多个行业领域,已帮助众多大型企业进行湖仓一体实践的落地,实现更高的业务价值,是构建湖仓一体方案的佳选。
在未来,DWS 会持续扩展对接 Iceberg、Avro 等开源格式,增强数据入湖能力,支持 hudi 写入能力,打造纯 Serverless 化的 Pay by Query 形态,基于 GCP Serverless 生态整合,发挥存算分离、并发扩展、数据共享等云原生特性上与生俱来的优势。更灵活的计费模式,跨数据源、跨服务、跨多云的 Serverless 生态将开启全新的 Serverless 湖仓一体化数据时代。