Integração do Discourse Data Explorer com Power BI
Recentemente, criei uma função legal do Power BI que busca dados do Data Explorer diretamente no Power BI com sobrecarga mínima.
Assim, se você é como eu e queria que os dados fossem puxados e atualizados automaticamente pelo aplicativo do Power BI, aqui está o código da função que você deve colocar no Editor Avançado do Power BI:
(queryID) => let
resultCount = 1000,
otherNameForPage = 0,
GetPage = (otherNameForPage) =>
let
content1 = "params={""page":""" & Number.ToText(otherNameForPage) & """}",
RawData = Json.Document(Web.Contents(
"https://forumURL/admin/plugins/explorer/queries",
[RelativePath=Number.ToText(queryID) & "/run",
Query=
[
params="{""page":""" & Number.ToText(otherNameForPage) & """}"
],
Headers = [
#"api-username"="yourAPIUsername",
#"api-key"="yourAPIKey",
#"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
E aqui está uma consulta de exemplo do Data Explorer. Ela inclui paginação que é necessária para que a função acima funcione corretamente (é necessária mesmo se sua consulta retornar apenas 1 página):
--[params]
-- integer :page = 0
SELECT count(*) from badges
OFFSET :page * 1000
LIMIT 1000
(você pode adaptar facilmente suas consultas existentes incluindo a primeira e a última linha do exemplo acima)
Essa função continuará automaticamente a iterar sobre as páginas até que não haja mais resultados.
Como fazer funcionar?
Depois de carregar a função no Power BI, você precisará configurar 2 coisas:
-
O api-username e api-key (veja a função acima para os espaços reservados):
Headers = [ #"api-username"="yourAPIUsername", #"api-key"="yourAPIKey", -
O número do ID da consulta.
Para buscar seus dados, tudo o que você precisa fornecer é o ID da consulta, que é fácil de encontrar na URL da consulta:

Isso deve ficar assim no Power BI depois que você clicar na função:
Saída de exemplo
Esta é a saída da consulta de exemplo:

É isso! Agora você pode moldar seus dados da maneira que quiser.










