数据资源管理器 - Power BI

你好,
我正在使用以下代码通过 API 将 Data Explorer 的数据调用到 PBI。

(queryID) => let
resultCount = 10000,
otherNameForPage = 0,

    GetPage = (otherNameForPage) =>
        let
            content1 = "params={"\"page\"":"\"" & Number.ToText(otherNameForPage) & "\""}",
            RawData = Json.Document(Web.Contents(
                "https://forum.xxxxxx.com/admin/plugins/explorer/queries",
                [RelativePath=Number.ToText(queryID) & "/run",
                    Query=[
                        params="{\"\"page\"\":\"\"\" & Number.ToText(otherNameForPage) & \"\"\"}"
                    ],

                    Headers=[
                    #"api-username"="xxxxxxxx",
                    #"api-key"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                    #"Content-Type" = "application/x-www-form-urlencoded"
                    ],
                    Content=Text.ToBinary(content1)
                ]

            ) ),
            resultCount = RawData[result_count]
        in
            if RawData[result_count] = 0 then null else RawData,
        Pages = List.Generate(
            () => [i = 0, RawData = GetPage(i)],
            each [RawData] <> null,
            each [i=[i]+1, RawData = GetPage(i)],
            each Table.Combine(let raw = [RawData] in List.Transform(raw[rows], each Table.FromRows({_}, raw[columns])))),
        Output = Table.Combine(Pages)

in
Output

我能够使用包含以下代码的查询加载数据:

–[params]
– integer :page = 0

select users.id, users.username, user_custom_fields.value from users, user_custom_fields
where users.id = user_custom_fields.user_id and user_custom_fields.name =‘user_field_1’

OFFSET :page * 10000
LIMIT 10000

但是,当我调用包含以下查询的另一个报表时:

SELECT
  user_id,
  COUNT(*) AS visits
FROM user_visits
WHERE visited_at > CURRENT_DATE - 30
GROUP BY 1
ORDER BY 2 DESC

它返回 422:无法处理的实体
(需要很长时间才返回此错误)

可以修复吗?

该查询是否在 Data Explorer UI 上运行?如果它在那里运行正常,但在你的 PowerBI 集成中出现问题,那么问题就出在 Discourse 的其他地方。

1 个赞

@Falco,没错,该报告在 Data Explorer UI 中即时生效

我正在查找错误的来源,我找到了这个描述:
超文本传输​​协议(HTTP)**422 Unprocessable Entity** 响应状态码表示服务器理解请求实体的内容类型,并且请求实体的语法是正确的,但它无法处理包含的指令。
它似乎来自服务器?不是吗?