数据架构 - 完整的 Azure Stack 与集成的 Delta Lake

Posted

技术标签:

【中文标题】数据架构 - 完整的 Azure Stack 与集成的 Delta Lake【英文标题】:Data Architecture - Full Azure Stack vs Integrated Delta Lake 【发布时间】:2021-12-10 18:35:36 【问题描述】:

朋友的公司正在研究一种数据架构,对我们来说,它似乎相当复杂,并且存在一些可扩展性和成本问题。

如果可能的话,我想听听您对旧的和提议的架构(或替代方案)的看法,讨论它们的优缺点,并可能发现不可预见的问题/限制。

当前架构 - Azure Stack

摄取层

多个源存储到 Azure Data Lake Gen2 通过 Azure Databricks

处理层

Azure Databricks 清理数据并将它们存储回 Azure Data Lake Gen2 到不同的部分:原始、干净

加载层

Azure Databricks 用于将数据加载到 Azure SQL Server 实例 Azure Synapse 用作 Azure SQL ServerAzure 分析服务 之间的层

表示层

Azure Analysis Services 中创建并提供给 Power BI 或 Excel 的数据模型

这种方法的优点

通过 Azure 分析服务 生成的模型和优化 (OLAP) 完全集成在 Azure 生态系统中

这种方法的缺点

垂直可扩展:随着数据的增长,用于存储数据仓库的 Azure SQL Server 也会垂直增长,处理所需的 Azure 分析服务 也将如此数据 高成本 令人费解:很多服务充当粘合剂,更难管理/维护 始终开启的方法:Azure SQL ServerAzure 分析服务 都需要始终开启,这表示不需要的费用

提议的架构 - 带 Delta Lake 的 Azure

替代架构依赖于 Azure Databricks 已在 ETL 流程中使用这一事实,并尝试最大限度地利用其以提供水平可伸缩性和无服务器资源。

摄取层

(相同)多个源存储到 Azure Data Lake Gen2 通过 Azure Databricks

处理和加载层

(相同)Azure Databricks 清理数据并将它们存储回 Azure Data Lake Gen2 的不同部分:原始、干净 Azure Databricks 使用 Delta Lake 生成数据仓库,将其直接存储在 Azure Data Lake Gen2 中,从而创建银牌和金牌(聚合/多维数据集)质量李>

表示层

使用 Azure Synapse Analytics(无服务器) 直接在 Azure Data Lake Gen2 上指定访问和查询功能,然后将其暴露给 Power BIExcel 用于治理目的

这种方法的优点

更简单 水平可扩展:管道依赖于 Azure Delta Lake Gen2 (Parquet),自然可水平扩展;和 Azure Synapse Analytics(无服务器),由于它的无服务器池,它也可以被认为是水平可扩展的。 Delta Lake 提供了一个自然的审计层,并且很容易与现有的数据目录解决方案集成

这种方法的缺点

没有数据模型可以方便通过 Power BI 和 Excel 使用 根据 Azure Synapse Analytics 的查询对 Parquet 文件进行分区至关重要,否则我们可能会产生高传输成本 没有真正的 OLAP 功能

【问题讨论】:

【参考方案1】:

我想你几乎涵盖了。根据我的经验给出一些建议。如果您的商业模式允许,您可以考虑这种方法。

摄取层:

每个团队(业务部门)应该有不同的容器来存储数据。 原因:我们可以在团队级别保持访问级别。 由于任何分发环境,总是推荐 ELT 过程而不是 ETL ,我们可以使用 Azure 数据工厂作为摄取工具来构建数据湖。 原因:Databricks 用于计算目的,没有任何意义用于摄取目的。 每个容器在同一个容器中应该有 3 个不同的文件夹。 在第一层,Stage - 每天从源头保持增量负载。(基于频率)。 因此,每次阶段数据都将附加到原始图层数据中。最后,原始图层将包含源的精确快照。 我们应该维护一些精选文件夹,有时我们可能需要处理一些安全数据。届时我们可以将安全数据与其他数据隔离开来。

结构层:

在这一层中,我们需要维护数据的正确结构。 举个例子,有时,我们可能需要维护或从一种格式转换为另一种格式。考虑,源中有一列是字符串类型,但业务需要将字符串转换为十进制。在这一层应该注意这些过程。

我们可以通过 Azure Databricks 处理这种转换。

服务层:

这是我们将为报告层进行所有转换的层。示例 Team-1 和 team-2 应在此层中加入。

我们可以通过 Azure Databricks 处理这种转换

表示层:

使用 Azure Synapse Analytics(无服务器)直接在 Azure Data Lake Gen2 上指定访问和查询功能,然后将其公开给 Power BI 和 Excel 以用于治理目的

或者我们可以通过 Databricks 集群 JDBC 连接来连接服务层。因此,如果从数据块连接报告层,则处理所有访问控制非常容易。

【讨论】:

以上是关于数据架构 - 完整的 Azure Stack 与集成的 Delta Lake的主要内容,如果未能解决你的问题,请参考以下文章

Azure Stack中添加镜像

Tableau 中的组(group)与集(set)

Azure Stack技术深入浅出系列3: Azure Stack运维工具Azure Stack Tools的使用及实战

Azure Stack运维工具Azure Stack Tools的使用及实战

Azure Stack技术深入浅出系列1:Azure Stack与Azure的有QoS保证的网络联通实现方法和对比测试

Azure Stack实验和测试资源