我们使用实时连接(即Direct Query)将PowerBI连接到数据库,其中一个表的特定列包含JSON格式的动态数据列表,如下所示:
row1 : {"models":[{"modelname":"name1","Count":value1}]}
row2: {"models":[{"modelname":"name1","Count":value1},{"modelname":"name2","Count":value2}]}"
要使此JSON数据有用,必须拆分它,然后使用它。为此,在导入查询连接中,我们希望按照中的说明进行操作:solution for import query connection
但该解决方案在直接查询连接中不可用。
是否有解决此问题的方法?
2条答案
按热度按时间w8ntj3qf1#
DirectQuery表示Power BI直接连接到源数据库,它本身不存储任何数据;所有请求都将被发送回源数据库。
您在问题中提到的Parsing JSON解决方案在数据到达Power BI后对其进行操作(然后将其存储在本地),但在DirectQuery模式下这不是一个选项。
有两种可能性值得探讨:
1.切换到导入模式,这将为您打开完整的Power Query Formula Language(但这有很多其他含义,可能意味着这对您来说是一个可行的选择,也可能不意味着这是一个可行的选择-请参见下面的文档链接)。
1.不是在直接查询模式下导入整个表,而是单击"高级选项"选项,并使用数据库引擎的内置语言编写SQL查询,该查询将在数据到达Power BI之前以您想要的方式提取您想要的数据。
对于选项#2,您可能需要做出一些限制或妥协。例如,您可能需要将提取的JSON作为源表中其余列的一个单独的表。有100万行的限制。可能没有简单的方法可以使用数据库的语言以您想要的方式提取数据。(注意:我自己从来没有这样做过,所以如果在尝试之后,你有技巧或陷阱要分享,请在这里发帖)
这里有关于直接查询模式的优点和局限性的文档:www.example.com网站。https://powerbi.microsoft.com/en-us/documentation/powerbi-desktop-use-directquery/#benefits-of-using-directquery.
以下是有关SQL Server 2016 JSON函数的信息:https://blogs.technet.microsoft.com/dataplatforminsider/2016/01/05/json-in-sql-server-2016-part-1-of-4/(如果您碰巧使用的是SQL Server 2016)
希望这个有用。
bfnvny8b2#
我只想提一下,在“高级选项”中使用的sql方言是您编写的查询必须是您选择的数据库之一..我确实假设我必须使用t-SQL,因为PowerBI是一个Microsoft产品...这花费了很多神经!