Azure Data Lake 在存储用于 Power BI 可视化的 SQL 数据库方面有多好?

How good is Azure Data Lake for storing an SQL database used for Power BI visualizations?

我们有一个 Azure SQL 数据库,我们在其中收集大量传感器数据,我们定期从中提取数据并使用 python 脚本对其进行一些转换。最终结果是一个 pandas DataFrame 文件。我们想将转换后的数据存储在 Azure 数据库中,并将其用作 Power BI 仪表板的来源。

一方面,我们希望在仪表盘上显示“几乎”实时的数据(由于转换等造成的延迟是可以接受的,但仪表盘需要非常频繁地刷新,比如说一次分钟),但我们也想存储转换后的数据并稍后查询它,例如仅可视化给定日期的数据。 是否可以将 pandas DataFrame 转换为 SQL 并将其存储在 Data Lake 上并从那里流式传输数据?我读到可以在 Data Lake 上存储结构化数据甚至查询它,但我不确定这是否是最佳解决方案。

(我目前的任务是选择最好的数据库来存储转换后的数据,以便以后可以进行流式传输和查询。我是 Azure 产品的新手,我还没有沙盒帐户,甚至无法尝试并找出可能的陷阱。我刚刚发现 PowerBI 不支持 DataLake 的 DirectQuery,我觉得这可能是个问题——这意味着我们必须首先查询 DataLake 上的数据,然后将其存储在某个地方,如果我们想可视化一个子集,对吗?)

Azure Datalake 不是数据库,只是结构化和非结构化数据的存储,因此如前所述,除非您具有一定的计算能力(Databricks、Azure Synapse、Azure DataLake Analytics、Power具有增强计算的 BI Premium)

根据您的方法,最好从 Azure SQL 数据库和 Pandas 迁移到 Azure Databricks,它可以摄取流数据、转换并提供输出 table 存储在数据湖中。然后,您将 Power BI 连接到 Databricks 实例并进行查询。数据仅在集群 运行 时可用。 迁移到 Databricks,将涉及将您的 Panda 代码重写为 Koalas,或者最好是 Pyspark。

您可以选择使用 Databricks 将项目写回 Azure SQL 数据库 table。根据您正在进行的转换,您可以将其全部保存在 Azure SQL 中,或者如果它是传感器数据流,则通过 Azure 事件中心将数据传输到 Azure 流分析(进行转换),再传输到 Azure SQL 数据库(存储实时和历史)。