将数据从 Databricks 加载到 Azure Analysis Services (AAS)

Load data from Databricks to Azure Analysis Services (AAS)

Objective

我在 ADLS gen2 将数据存储为 Delta Lake 格式。它们也可以通过 Hive 目录获得。 请务必注意,我们目前正在使用 PowerBI,但将来我们可能会切换到 Excel 而不是 AAS。

问题

将 AAS 连接到我的 Delta Lake 格式的 ADLS gen2 数据的最佳方式(或 hack)是什么?

问题

AAS supported sources中没有Databricks/Hive个。 AAS 通过 Blob 连接器支持 ADLS gen2,但据我所知,它不支持 Delta Lake 格式,仅支持 parquet。

可能的解决方案

从这个article I see that the issue may be potentially solved with PowerBI on-premise API gateway:

One example is the integration between Azure Analysis Services (AAS) and Databricks; Power BI has a native connector to Databricks, but this connector hasn’t yet made it to AAS. To compensate for this, we had to deploy a Virtual Machine with the Power BI Data Gateway and install Spark drivers in order to make the connection to Databricks from AAS. This wasn’t a show stopper, but we’ll be happy when AAS has a more native Databricks connection.

此解决方案的问题是我们计划停止使用 PowerBI。我不太明白它是如何工作的,它需要什么 PBI 许可和 implementation/maintenance 努力。 您能否更深入地了解它的工作原理?

UPD,2020 年 12 月 26 日

现在,当Azure Synapse Analytics is GA, it has full support of SQL on-demand. That means that serverless Synapse may theoretically be used as a glue between AAS and Delta Lake. See "Direct Query Databricks' Delta Lake from Azure Synapse".

同时,是否可以使用 ODBC 从 Synapse 按需查询 Databricks Catalog (internal/external)?突触 supports ODBC as external source.

Power BI Dataflows 现在支持 Parquet 文件,因此您可以从这些文件加载​​到 Power BI,但标准设计模式是使用 Azure SQL 数据仓库加载文件,然后分层 Azure Analysis Service ( AAS)在那上面。 AAS 不支持镶木地板,您必须创建最终 table 的 CSV 版本,或将其加载到 SQL 数据库。

如前所述,典型的架构是让 Databricks 完成部分或全部 ETL,然后让 Azure SQL DW 负责。

A​​zure SQL DW 现在已经演变成 Azure Synapse,但这的好处是 Databricks/Spark 数据库现在有一个影子副本,但可以通过 SQL 按需功能访问. SQL on Demand doesn't require to to have an instance of the data warehouse component of Azure Synapse, it runs on demand, and you per per TB of query. A good outline of how it can help is here。另一种选择是让 Azure Synapse 将数据从外部 table 加载到该服务中,然后将 AAS 连接到该服务。