数据湖+数据仓库 = 数据湖库架构


传统OLAP和OLTP是分离,数据是从业务数据存储库中提取,然后将其存储在数据湖中,下一步就是进行ETL数据提取转换和分析,然后,将这些数据的关键子集转移到数据仓库中,以生成用于决策的业务洞察力。这样做的问题有:

  • 可维护性差:由于存在数据湖和数据仓库两个系统,公司需要维护多个系统并促进同步,这使得系统复杂且难以长期维护。
  • 缺乏一致性:公司可能经常发现难以保持其数据湖和数据仓库架构的一致性。这不仅是一件代价高昂的事情,而且团队还需要对两个系统之间的 ETL/ELT 数据采用持续的数据工程策略。每个步骤都可能引入影响整体数据质量的故障和不需要的错误。
  • 不断变化的数据集:存储在数据仓库中的数据可能不如数据湖中的数据那么最新,这取决于数据管道的时间表和频率。
  • 供应商锁定:将大量数据转移到集中式 EDW 对公司而言变得非常具有挑战性,不仅因为执行此类任务所需的时间和资源,还因为这种架构创建了一个导致供应商锁定的闭环。此外,存储在仓库中的数据也更难与组织内的所有数据最终用户共享。
  • 数据治理:虽然数据湖中的数据大多采用不同的基于文件的格式,但数据仓库主要采用数据库格式,这增加了数据治理和沿袭的复杂性。
  • 高级分析限制: PyTorch 和 TensorFlow 等高级机器学习应用程序与数据仓库不完全兼容。这些应用程序是需要从数据质量并不受控制的数据湖中获取高质量数据的。

数据湖库=数据仓库+数据湖
数据湖库(data lakehouse解决了数据湖和数据仓库架构的这些典型限制。
 
数据湖库本质上是融合了两全其美的下一代云数据湖和仓储架构。它是一种用于管理所有数据格式(结构化、半结构化或非结构化)以及支持多种数据工作负载(数据仓库、BI、AI/ML 和流)的架构方法。数据湖库以新的开放系统架构为基础,允许数据团队通过类似于数据仓库的智能数据管理功能在类似于数据湖中使用的低成本存储平台上实施数据结构。好处:
  • 通过简化模式交付数据质量:数据湖库具有双层架构,其中仓库层嵌入在数据湖强制模式之上,该模式提供数据质量和控制,并协调更快的 BI 和报告。
  • 减少数据漂移:数据湖库架构减少了对多个数据副本的需求,并显着减少了与数据漂移相关的挑战。
  • 更快的查询:更快的交互式查询与真正的数据民主化相结合,有助于做出更明智的决策。该架构允许数据科学家、工程师和分析师快速访问所需的数据。这导致更快的洞察时间周期。
  •  有效管理:通过实施数据湖库架构,公司可以帮助其数据团队节省大量时间和精力,因为它在存储和处理数据以及提供业务洞察力方面需要更少的时间和资源。事实上,通过数据湖库建立的单一数据管理平台也可以减轻显着的管理负担。
  • 无缝数据治理:数据湖库用作单一来源,从而允许数据团队嵌入高级功能,例如审计日志和访问控制。
  • 有效的数据访问和数据安全:数据湖库为数据团队提供了跨管道维护正确的访问控制和加密以确保数据完整性的选项。此外,在数据湖库模型中,数据团队不需要管理所有数据副本的安全性,这使得安全管理变得更加容易和具有成本效益。
  •  数据冗余的可能性低:数据湖库架构减少了在实施数据湖和数据仓库的过程中对多个数据副本的需求,从而减少了数据漂移。
  • 高可扩展性:数据湖库提供数据和元数据的高可扩展性。这使公司能够以快速的洞察周期运行关键分析项目。

 
新兴的数据湖库模式产品
Azure Databricks Lakehouse 和Snowflake是公司可用于其数据管理计划的两个领先的 Lakehouse 平台。
 
  • Databricks:

数据湖上的数据处理引擎,添加了数据湖库功能。
Databricks 本质上是一个 Apache Spark 驱动的数据处理工具,它为数据团队提供了具有自动可扩展计算能力的敏捷编程环境。公司只需为使用中的计算资源付费。Databricks 平台最适合在需要准备和摄取数据的管道早期阶段进行数据处理。公司还可以利用它来准备数据以进行转换和丰富,但在处理用于报告的数据方面存在不足。
在过去几年中,Databricks 一直专注于围绕传统数据仓库构建功能。该平台带有内置的 DQL 查询界面和直观的可视化功能。除此之外,Databricks 还带有一个类似于数据库的表结构,该数据库专门以 Delta 文件格式开发。这种格式用于将数据库功能添加到数据湖中。该格式允许通过 ACID 事务和模式进行数据版本控制。
 
Azure Databricks Lakehouse 的主要特点
  • 自带即用型 spark 环境,无需配置
  • 嵌入式开源 Delta Lake 技术,用作附加存储层
  • 通过在 Delta 表中合并较小的文件来提供更好的性能
  • Delta 表中的 ACID 功能有助于确保完整的数据安全性
  • 具有多种语言选项,例如 Scala、Python、R、Java 和 SQL
  • 平台支持使用笔记本式编码进行交互式数据分析
  • 提供与 Blob 存储、Azure 数据工厂和 Azure DevOps 等其他云平台服务的无缝集成选项
  • 提供开源库支持

 
  • Snowflake

云数据仓库扩展以解决数据湖功能。
与 Databricks 不同,Snowflake 几年前通过提供高度可扩展和分布式的计算能力改变了数据仓库空间。该平台通过在数据仓库生态系统中分离存储和处理能力来实现这一点。这是 Snowflake 在数据湖空间中扩展解决方案时采用的方法之一。
多年来,Snowflake 一直在逐步扩展其 ELT 功能,允许公司与平台一起运行其 ELT 流程。例如,一些公司利用 Snowflake Streams 和 Tasks 在 Snowflake 中完成 SQL 任务,而另一些公司则使用 Snowflake 进行“dbt”。
Snowflake 数据湖库的主要特点
  • 带有内置的导出和查询工具
  • 该平台可以与Metabase、Tableau、PowerBI等BI工具无缝对接
  • 平台支持JSON格式查询和输出数据
  • 为半结构化数据提供安全和压缩的存储选项
  • 可与 Amazon S3 等对象存储轻松连接
  • 具有精细的安全性,可提供最大的数据完整性
  • 查询的大小没有明显的限制
  • 存在标准 SQL 方言和强大的函数库
  • 附带虚拟仓库,允许数据团队根据要求对工作负载进行分离和分类
  • 促进安全的数据共享和与其他云技术的简单集成

 
Dremio 和 Firebolt 
数据湖上的 SQL Lakehouse 引擎,除了 Snowflake 和 Databricks,Dremio 和 Firebolt 等数据湖库工具也推出了高级查询功能。例如,Dremio 的 SQL Lakehouse 平台能够直接在任何数据湖存储上提供高性能仪表板和直观分析,从而消除对数据仓库的需求。同样,Firebolt 具有高级索引功能,可帮助数据团队将数据访问缩小到比分区更小的数据范围。
 
云数据湖和仓库的演变
数据湖库是对云数据湖和仓储架构的演变,它为数据团队提供了利用两全其美的机会,同时减轻所有历史数据管理的弱点。如果做得好,数据湖库计划可以释放数据并使公司能够以所需的方式和所需的速度使用它。
展望未来,随着云数据仓库和数据湖架构的融合,公司可能很快就会找到结合所有数据湖库工具的所有功能的供应商。在构建和管理数据管道时,这可能会带来无穷无尽的机会。