【发布时间】: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 功能
【问题讨论】:
标签: azure databricks delta-lake