数据架构 - 完整的 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 Server 和 Azure 分析服务 之间的层表示层
在 Azure Analysis Services 中创建并提供给 Power BI 或 Excel 的数据模型这种方法的优点
通过 Azure 分析服务 生成的模型和优化 (OLAP) 完全集成在 Azure 生态系统中这种方法的缺点
垂直可扩展:随着数据的增长,用于存储数据仓库的 Azure SQL Server 也会垂直增长,处理所需的 Azure 分析服务 也将如此数据 高成本 令人费解:很多服务充当粘合剂,更难管理/维护 始终开启的方法:Azure SQL Server 和 Azure 分析服务 都需要始终开启,这表示不需要的费用提议的架构 - 带 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 BI和 Excel 用于治理目的这种方法的优点
更简单 水平可扩展:管道依赖于 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技术深入浅出系列3: Azure Stack运维工具Azure Stack Tools的使用及实战
Azure Stack运维工具Azure Stack Tools的使用及实战