查看原文
其他

【译】Azure帮你简化Lakehouse架构

alitrack alitrack 2022-10-01

原文:Simplify Your Lakehouse Architecture with Azure Databricks, Delta Lake, and Azure Data Lake Storage[1]

当今的公司正在处理许多不同类型,许多不同大小且以不同频率出现的数据。这些公司正在寻求超越传统数据架构的局限性,以对所有这些数据进行云弹性分析,数据科学和机器学习。解决传统数据体系结构的许多挑战的一种体系结构模式是Lakehouse 体系结构[2]

图1

Lakehouse 将数据湖的低成本和灵活性与数据仓库的可靠性和性能相结合。Lakehouse 体系结构提供了几个关键功能,包括:

  • 开放格式的可靠,可扩展且低成本的存储
  • 使用 ACID 事务进行 ETL 和流处理
  • 元数据,版本控制,缓存和索引编制,以确保查询时的可管理性和性能
  • 用于 BI 和报告的 SQL API,以及用于数据科学和机器学习的声明性 DataFrame API

Lakehouse 原理和组成部分

图2

在建造 Lakehouse 时,请牢记以下三个关键原则及其相关组成部分:

  1. 一个存储所有数据的数据湖,有一个开源格式的管理层。数据湖应该能够容纳任何类型、大小和速度的数据。lake 中的管理数据格式应该是开放的,与云本地安全服务集成,并且应该支持 ACID 事务。
  2. 建立在开放标准之上的基础计算层。 应该有一个基础计算层来支持所有核心的 Lakehouse 用例,包括管理数据湖(ETL 和流处理),数据科学和机器学习以及数据湖上的 SQL 分析。该层还应该建立在开放标准之上,以确保快速创新,并且是非锁定的和面向未来的。
  3. 轻松集成额外的和(或)新的用例。 没有单一的服务可以做所有的事情。总是会有新的或额外的用例,它们不是核心 lakehouse 用例的一部分。这些新的或额外的用例通常需要专门的服务或工具。这就是为什么管理数据湖、基础计算层和其他服务和工具之间的容易集成是关键需求。

让我们看一下 Azure Databricks 以及 Azure Data Lake Storage 和 Delta Lake 如何使用这 3 条原则来帮助构建 Lakehouse 体系结构。

使用 Azure Data Lake Storage + Delta Lake 的开放式事务存储

图3

第一个原则的一部分是有一个数据湖来存储所有的数据。Azure Data Lake 存储提供了一种廉价、安全的对象存储,能够存储任何大小、任何类型(结构化或非结构化)以及任何速度(快或慢)的数据。第一个原则的第二部分是让数据湖中的被管理数据以支持 ACID 事务的开放格式存在。公司通常使用Delta Lake[3]来建立他们的数据湖的规划区域。Delta Lake 是一种基于 Parquet 的开放文件格式,可以存储在 Azure 数据湖存储中。在其他方面,它支持 ACID 事务(更新、删除,甚至合并)、时间旅行、模式演变(执行),以及作为源和同步的流。这些特性使得 Azure Data Lake 存储中使用的 Delta Lake 格式成为 Lakehouse 架构的首要原则的理想组件。

适用于核心 Lakehouse 用例的 Azure Databricks


图4

上面讨论的第二个原则是在开放标准上构建一个基本的计算层,可以处理所有核心 Lakehouse 用例。Azure Databricks 中的Photon-powered Delta Engine(光驱动 Delta 引擎)[4]是这些核心用例的理想层。Delta 引擎根植于 Apache Spark,支持所有 Spark API,并支持 SQL、Python、R 和 Scala。此外,Azure Databricks 还提供了其他开源框架,包括:

  • 始终是 Spark 的最新最好版本,非常适合ETL(ELT),流处理[5]分布式数据科学和 ML 以及数据湖上的 SQL 分析
  • 针对 Delta Lake 文件格式的优化计算[6],包括数据跳过和数据源缓存功能,可实现更快的查询
  • 预装了一个机器学习运行时[7],优化的模型开发和培训库。这也包括开源的Koalas[8],它使数据科学家能够使用在 Apache Spark 之上运行的 Pandas API 处理大数据。
  • 紧密集成的MLflow[9]可帮助开发,训练和操作(批处理,流或 API)数据科学和机器学习模型

Azure Databricks 还提供了一个协同工作区以及一个 Delta 引擎,该引擎包括一个集成的笔记本(Notebook)环境以及一个SQL Analytics 环境[10],旨在使分析师更轻松地在数据湖上编写 SQL,可视化结果,构建仪表板以及安排查询和警报。所有这些使 Azure Databricks 和 Delta 引擎成为核心 Lakehouse 用例的理想基础计算层。

其他(新)用例的集成服务

图5

最终原则侧重于管理数据湖,基础计算层和其他服务之间的关键集成。这是必要的,因为总会有专门的或新的用例,而不是“核心的”Lakehouse 用例。同样,不同的业务领域可能更喜欢不同的或附加的工具(尤其是在 SQL 分析和 BI 空间中)。建立在 Azure Data Lake Storage,Delta Lake 和 Azure Databricks 上的 Lakehouse 为这些新的或专用的用例提供了轻松的集成。

  • Azure Data Lake 存储是 Azure 中所有数据和 AI 服务支持的存储服务。
  • Delta Lake 是一种开源存储格式,具有 Spark,Hive,Presto,Python,Scala 和 Java[11]支持的接口。它还在Azure 服务[12](例如 Azure Synapse 和 Data Factory)中具有本机连接器,并且可以与其他服务(例如 Power BI,HDInsight 和 Azure 机器学习)一起使用。
  • Azure Databricks 通过与Azure Data Factory[13]Power BI[14]Azure Synapse[15]之类的服务的优化的安全连接紧密集成到 Azure 生态系统的其余部分中。该服务还包括REST API[16]命令行[17]JDBC 与 ODBC 接口[18],允许与几乎任何工具或服务集成。

综上所述,Lakehouse 架构模式由于其灵活性、成本效率和开放标准将继续被采用。使用 Azure Databricks、Delta Lake 和 Azure Data Lake Storage 构建架构,为 Lakehouse 用例提供了开放、可扩展和未来验证的基础。

参考资料

[1]

Simplify Your Lakehouse Architecture with Azure Databricks, Delta Lake, and Azure Data Lake Storage: https://techcommunity.microsoft.com/t5/analytics-on-azure/simplify-your-lakehouse-architecture-with-azure-databricks-delta/ba-p/2027272

[2]

Lakehouse 体系结构: https://dbricks.co/38dVKYc

[3]

Delta Lake: https://dbricks.co/2LpAiqg

[4]

Photon-powered Delta Engine: https://dbricks.co/38W2hWu

[5]

ETL(ELT),流处理: https://dbricks.co/2Log5Rk

[6]

优化计算: https://dbricks.co/2MuHSQJ

[7]

机器学习运行时: https://dbricks.co/2JJU9zL

[8]

Koalas: https://dbricks.co/39fZ5Fx

[9]

MLflow: https://dbricks.co/3pPzfyM

[10]

SQL Analytics 环境: https://dbricks.co/2LoqSek

[11]

Python,Scala 和 Java: https://dbricks.co/2Xa7O6n

[12]

Azure 服务: https://dbricks.co/38dPQq3

[13]

Azure Data Factory: https://dbricks.co/3hLxP5A

[14]

Power BI: https://dbricks.co/2MAp1DZ

[15]

Azure Synapse: https://dbricks.co/2LoZlcE

[16]

REST API: https://dbricks.co/3hGo9t1

[17]

命令行: https://dbricks.co/3b7qxrj

[18]

JDBC 与 ODBC 接口: https://dbricks.co/2XcI8pQ



欢迎关注公众号

有兴趣加群讨论数据挖掘和分析的朋友可以加我微信(witwall),暗号:入群


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存