目前,在更新与数据库相关的报告数据时,我们遇到了加载数据的问题,因为它有太多的记录,并且需要永远加载所有数据。问题是,我如何才能只加载去年的数据,以避免花太长时间加载所有内容。正如我所看到的,尝试在框中连接到COSMO DB允许我放置一个SQL查询,但我不知道如何在这种类型的非关系数据库中执行此操作。
发布于 2020-07-01 03:12:38
Power BI具有incremental refresh功能。您应该只能刷新本年度。
如果这仍然不能满足预期,我会考虑一个叫做Azure Synapse Link的预览功能,它会自动将所有Cosmos DB更新拉出到分析存储中,你可以在Azure Synapse Analytics中更快地查询,以便更快地刷新Power BI。
发布于 2020-07-01 14:43:09
根据数据量的不同,您将遇到许多问题。首先,您可能会超出RU限制,从而减慢从CosmosDB中提取数据的速度。第二个问题是将数据从JSON格式转换为结构化格式。
我会尝试编写一个查询来指定您需要的字段和项目。这将减少处理和获取数据的时间。
对于SQL查询,它将类似于
SELECT * FROM c WHERE c.partitionEntity = 'guid'
有关CosmosDB SQL API语法的更多信息,请参阅here入门指南。你可以使用Azure中的查询窗口运行SQL命令,或使用Azure存储资源管理器测试查询,然后将其移动到Power BI。
强烈建议将数据提取到可以转换为结构化格式(如表或csv文件)的位置。
例如,使用Azure Databricks进行提取,然后将JSON格式转换为表格式的对象。您可以选择在其自己的实例中使用运行的Databricks notebook queries in CosmosDB或Azure DataBricks。另一种选择是使用change feed发送数据,并使用Azure函数发送和分解数据到Blob Storage,并从那里查询数据,使用Power BI,DataBricks,Azure SQL Database等。
发布于 2021-07-07 19:13:08
在查询源中,可以根据CosmosDB _ts系统属性进行选择,如下所示:
Query ="SELECT * FROM XYZ AS t WHERE t._ts > 1609455599"
在本例中,1609455599是31.12.2020,23:59:59对应的时间戳。因此,将只选择2021年的数据。
https://stackoverflow.com/questions/62663727
复制相似问题