Ver categorias

API REST do Power BI: Conecte-se a dados SQL em tempo real sem drivers ODBC

14 minutos de leitura

POWER BI POWER QUERY M

Aponte o Power BI para uma API REST em vez de um driver de banco de dados.

O Query Streams transforma qualquer consulta SQL salva em um endpoint JSON autenticado e, em seguida, gera o Power Query M que a lê. Cole um bloco no Editor Avançado e o relatório será atualizado com dados em tempo real.

Não há driver ODBC Nenhuma porta de entrada Chave, não credenciais Um arquivo .pq

O Query Streams é uma plataforma de integração de banco de dados segura e em tempo real que publica qualquer consulta SQL salva como um endpoint REST autenticado e, em seguida, fornece o Power Query M para que você a leia no Power BI. Saiba mais em QueryStreams.com e inscreva-se gratuitamente Crie seu primeiro endpoint e cole-o em um relatório hoje mesmo.

Por que o Power BI geralmente precisa de um driver, um gateway ou ambos?

A maneira mais comum de integrar um banco de dados SQL ao Power BI é por meio de um conector nativo ou um driver ODBC. Isso funciona bem quando o banco de dados está em um local acessível ao Power BI. O processo se torna caro quando isso não acontece.

Se o banco de dados estiver na sua própria rede, o Power BI não poderá acessá-lo diretamente; portanto, a resposta da Microsoft é a seguinte: gateway de dados localUm serviço que você instala, registra, atualiza e monitora, e que mantém um conjunto de credenciais para cada fonte de dados subjacente. Se o banco de dados for um mecanismo para o qual o Power BI não possui um conector nativo, você precisará instalar e compatibilizar a versão de um driver ODBC em cada máquina que abrir o relatório. Em ambos os casos, o próprio relatório mantém uma conexão com o banco de dados, o que significa que qualquer pessoa que possa editar o conjunto de dados está a apenas uma janela de distância das credenciais.

Um endpoint REST contorna todos os três problemas, porque o Power BI já sabe como ler JSON via HTTPS sem precisar de nenhum driver. A dificuldade nunca esteve no Power BI. O desafio era criar um endpoint seguro, parametrizado e autenticado para um banco de dados sem precisar construir um serviço de API do zero. Essa é a função do Query Streams.

Não há driver ODBC para instalar.

O Power BI lê JSON via HTTPS nativamente. Não é necessário instalar nada na máquina do autor do relatório, nem verificar a compatibilidade de versões.

Nenhuma regra de firewall de entrada

O agente Query Streams se conecta à internet a partir da sua rede. A porta do seu banco de dados permanece fechada para a internet.

Uma chave, não uma credencial.

O relatório contém uma chave de API com escopo para um único endpoint. Ele nunca contém um nome de usuário ou senha do banco de dados.

Somente leitura, aplicado no agente

O agente valida cada instrução antes que ela chegue ao banco de dados. Um relatório não pode escrever, excluir ou alterar nada.

Os parâmetros acompanham o arquivo.

Cada filtro que sua consulta expõe chega como uma entrada nomeada no M, comentada com seu tipo, valor padrão e se é obrigatório.

Registro completo de auditoria

Cada atualização é uma chamada de API registrada com uma chave, um carimbo de data/hora e uma contagem de linhas. Você pode ver qual relatório extraiu quais dados e quando.

O que o arquivo de exportação do Power Query M realmente contém

Abra qualquer ponto de extremidade no portal do Query Streams, clique em "Exportar" e escolha "Power Query M (.pq)" em Ferramentas de Dados. Você obterá um único arquivo. deixe ... entrar ... Expressão escrita para o seu endpoint, com os parâmetros já definidos. Veja como fica um arquivo gerado para um endpoint GET com dois filtros:

receita-mensal-por-região.pq
// ─ ... // // COMO USAR // Excel: Dados → Obter Dados → De Outras Fontes → Consulta em Branco // → Editor Avançado → cole todo este bloco. // Power BI: Página Inicial → Transformar dados → Nova Fonte → Consulta em Branco // → Editor Avançado → cole todo este bloco. // // Substitua a chave de API de espaço reservado na linha 'ApiKey ='. Ajuste // qualquer valor de parâmetro no registro 'Params'. Execute. // ─────────────────────────────────────────────────────────────

deixar
    ApiKey = "qsk_live_replace-me",

    // ── PARÂMETROS ──────────────────────────────────────────────── // Edite os valores abaixo. Cada comentário mostra o contrato // (obrigatório vs. opcional, tipo, padrão, descrição). // 'compression=none' é intencional: o Power Query M não possui // um decodificador LZ4, então solicitamos JSON bruto à API.
    Parâmetros = [ compressão = "nenhum",
        // obrigatório, data -- primeiro dia do período de relatório
        data_inicial = "2026-01-01",
        // opcional, texto, padrão "todos" -- filtro de região de vendas
        região = "todos"
    ], BaseUrl = "https://api.querystreams.com/v1/endpoints/8f2c1a94-...", Resposta = Json.Documento(
        Conteúdo da Web(BaseUrl, [ Cabeçalhos = [ #"X-API-Key" = ApiKey, #"Aceitar"    = "application/json"
                ], Consulta = Parâmetros ] ) )
em
    Resposta

// ─ ... // 3. Clique em 'Para Tabela' e expanda a coluna de registros para // visualizar os campos individuais de cada linha. // ───────────────────────────────────────────────────────────────

Quatro itens nesse arquivo estão realizando mais trabalho do que aparentam.

URL base Uma string estática, nunca construída por concatenação. O Power BI se recusa a agendar uma atualização quando uma URL é montada a partir de variáveis, porque não consegue verificar o destino antecipadamente. Manter a URL literal e colocar todos os parâmetros no próprio URL resolve o problema. Consulta O registro é o que torna o relatório atualizável no serviço do Power BI.
Chave X-API Uma chave por destinatário, não um login de banco de dados. O acesso é restrito aos endpoints que você concedeu, possui sua própria cota mensal e pode ser revogado automaticamente, sem afetar o banco de dados ou qualquer outro relatório.
Parâmetros Os filtros da sua consulta, com o contrato embutido. Cada entrada é gerada a partir das definições de parâmetros da consulta salva, e o comentário acima dela indica se o parâmetro é obrigatório, seu tipo, seu valor padrão e sua função. Nomes que M não pode usar sem formatação, como ID do pedido, venham pré-cotados como #"id-do-pedido".
Resposta Deixado propositalmente como o registro bruto. A exportação para em Json.Documento Em vez de achatar automaticamente em uma tabela, os pontos finais retornam formatos diferentes e uma etapa "Expandida" gerada falharia no momento em que você apontasse o mesmo M para um ponto final diferente. O comentário final orienta você pelos três cliques.

Conecte o Power BI à sua API REST em quatro etapas.

1

Publique a consulta

Salve uma consulta SQL em Fluxos de Consulta e transforme-a em um endpoint. Adicione filtros como parâmetros, se o relatório precisar deles.

2

Exporte o M

Clique em 'Exportar' e, em seguida, em 'Power Query M (.pq)'. Abra o arquivo e substitua qsk_live_replace-me Com uma chave de API real.

3

Cole-o em

No Power BI Desktop: Página Inicial, depois 'Transformar dados', em seguida 'Nova Fonte', depois 'Consulta em branco' e, por fim, 'Editor Avançado'. Cole o bloco inteiro.

4

Forma e carga

Clique no dados No campo, clique em 'Para tabela', expanda a coluna de registros e, em seguida, em 'Fechar e aplicar'.

Dica profissional: promover Chave de API e qualquer filtro que você queira que os usuários de negócios alterem para parâmetros reais do Power Query (Página Inicial, depois "Gerenciar Parâmetros"). O autor do relatório os edita a partir de um menu suspenso, em vez de abrir o Editor Avançado, e você pode manter um conjunto de dados atendendo a várias regiões ou intervalos de datas.

Por que a exportação desativa a compressão?

Os endpoints do Query Streams comprimem suas respostas com LZ4 por padrão, e é por isso que grandes conjuntos de resultados são rapidamente transferidos para o suplemento do Excel, o suplemento do Google Sheets e os aplicativos clientes. O Power Query M não possui um decodificador LZ4. Ao receber um corpo comprimido, ele leria os bytes delimitados como lixo e falharia em algum ponto irrelevante.

Assim, o M gerado sempre envia compressão=nenhuma e a API retorna JSON puro. É a única linha do arquivo que você não deve excluir. É também por isso que um conjunto de resultados muito amplo parecerá mais lento no Power BI do que a mesma consulta no suplemento do Excel, que descompacta os dados.

É importante saber disso antes de começar a usar: Como o caminho do Power BI não é compactado, uma atualização transfere mais bytes pela rede do que a mesma consulta faria pelo suplemento do Excel, e esses bytes contam para o limite de dados do seu plano. Para uma tabela de resumo que alimenta um painel, isso é irrelevante. Para um relatório que extrai centenas de milhares de linhas brutas de forma programada, agregue os dados em SQL antes do endpoint, em vez de no Power Query, e você transferirá uma fração dos dados.

O mesmo arquivo funciona no Microsoft Excel.

O Power Query é o mesmo mecanismo em ambos os produtos, portanto, o exportado .pq Não é específico do Power BI. No Microsoft Excel, o caminho é 'Dados', depois 'Obter Dados', depois 'De Outras Fontes', depois 'Consulta em Branco' e, por fim, 'Editor Avançado' — cole o bloco idêntico. O comentário do cabeçalho do arquivo gerado lista ambas as rotas exatamente por esse motivo.

Dito isso, se o Excel for o destino dos dados, então... Suplemento Query Streams para Excel é a melhor ferramenta. Ela lida com a autenticação para você, lista suas consultas salvas em uma barra lateral, expõe filtros como controles reais, executa várias consultas em várias planilhas simultaneamente e usa o transporte compactado. O Power Query M existe para os casos que o suplemento não cobre: o próprio Power BI, implantações do Office restritas onde os suplementos são bloqueados e conjuntos de dados que precisam ser atualizados de acordo com uma programação no servidor.

Power Query M em relação às rotas de conexão usuais do Power BI

Do que você precisa Conector nativo ou ODBC API REST de fluxos de consulta
Acesse um banco de dados em uma rede privada. Gateway de dados local para instalar e manter. O agente fez a chamada; nada para instalar no Power BI.
Conecte um motor sem um conector original. Encontre, licencie e verifique a versão de um driver ODBC. O mesmo endpoint JSON, independentemente do mecanismo.
Não inclua as credenciais do banco de dados no relatório. O conjunto de dados armazena uma credencial da fonte de dados. O relatório contém uma chave de API revogável e com escopo definido.
Garanta que o relatório não pode ser escrito Depende da conta de banco de dados que você concedeu. Validação somente leitura no agente, a cada chamada.
Forneça ao parceiro uma tabela, não o esquema. Visualizações e contas de banco de dados por parceiro Um ponto final, uma chave, sua própria cota.
Incorporar filtros do lado do relatório de volta ao SQL O recurso de dobra de consultas envia filtros para o mecanismo de busca. Os filtros são parâmetros do endpoint, definidos antes da chamada.

Essa última linha representa uma negociação real, não uma estratégia de marketing. Um conector nativo oferece suporte ao recurso de "query folding" (dobramento de consultas), permitindo que um segmentador de dados no Power BI reescreva o SQL que acessa o banco de dados. Um endpoint REST não permite isso: o formato da consulta é fixo ao salvá-la, e o relatório escolhe entre os parâmetros que você expôs. Projete o endpoint para retornar a granularidade necessária para o relatório, exponha os filtros relevantes como parâmetros e a diferença deixará de ser importante. Aponte um relatório para uma tabela de fatos bruta e espere que o Power Query a segmente; você sentirá a diferença.

Quais bancos de dados o Power BI consegue acessar dessa forma?

Como o Power BI só vê JSON, todos os mecanismos aos quais o Query Streams se conecta são idênticos para o relatório. Isso inclui Microsoft SQL Server, PostgreSQL, MySQL, MariaDB, Oracle, SQLite, Microsoft Access, Snowflake, BigQuery e DuckDB, além de variantes hospedadas como Amazon RDS, Azure SQL Database, Google Cloud SQL, Neon, Supabase e PlanetScale. Também abrange os conectores de API — Stripe, HubSpot, Shopify, Google Analytics, Google Ads, Google Search Console — o que significa que um relatório do Power BI pode ler uma plataforma SaaS como se fosse uma tabela SQL.

O ponto final é onde a diferença desaparece. Independentemente de o SQL subjacente ser executado no Oracle em uma máquina no seu data center ou em uma instância do Postgres na nuvem, o "M" no seu relatório terá as mesmas nove linhas. Veja a lista completa em [link para a lista completa]. página de integrações de banco de dadosou leia Como uma consulta salva se torna um endpoint.

Perguntas frequentes

Preciso do gateway de dados local? +
Não. O gateway existe para que o Power BI possa acessar uma fonte de dados dentro de uma rede privada. O Query Streams já resolve isso de uma maneira diferente: o Agente de Rede é executado na sua rede e se conecta, portanto o Power BI só se comunica com um endpoint HTTPS público em api.querystreams.comDo ponto de vista do Power BI, não há nenhuma rede privada envolvida, e esse é o mesmo motivo pelo qual ele pode atualizar qualquer fonte de dados da web sem um gateway.
A atualização agendada funcionará no serviço do Power BI? +
Sim, e o arquivo M gerado é escrito especificamente para isso. O Power BI bloqueia a atualização agendada em fontes de dados que ele chama de dinâmicas — URLs montadas em tempo de execução a partir de variáveis — porque não consegue verificar o destino com antecedência. A exportação mantém URL base como uma string literal e passa cada parâmetro através de Conteúdo da Web' Consulta opção, que é o formato que o Serviço aceita. Defina a credencial para a fonte de dados como Anônima; a chave da API é transmitida no Chave X-API cabeçalho, não na URL.
É uma DirectQuery ou uma Importação? +
Importação. Uma fonte de dados da web carrega suas linhas no modelo quando o conjunto de dados é atualizado, portanto, o relatório está sempre atualizado até a última atualização. Esse é o modo correto para a grande maioria dos relatórios, mas se você precisar de um visual que consulte novamente o banco de dados a cada clique no filtro, um endpoint REST não é a ferramenta ideal — para isso, você precisa de um conector DirectQuery nativo.
Por que é compressão=nenhuma Na minha pergunta, posso removê-la? +
Deixe como está. Os endpoints do Query Streams retornam corpos compactados em LZ4 por padrão, e o Power Query M não possui um decodificador LZ4 — ele leria os bytes compactados como JSON malformado. Esse único parâmetro instrui a API a enviar JSON sem formatação. É o único elemento no arquivo gerado que interromperá a consulta se você o excluir.
É possível que um relatório do Power BI grave dados no meu banco de dados? +
Não, e não apenas por convenção. O Agente de Rede valida cada instrução antes que ela chegue ao banco de dados e rejeita qualquer uma que não seja uma leitura. Um endpoint não pode ser direcionado para uma instrução INSERT, UPDATE, DELETE ou DDL, portanto, não há configuração na qual um relatório possa modificar dados.
Como faço para compartilhar um relatório com alguém de fora da minha empresa? +
Em vez de compartilhar a sua, forneça a eles suas próprias chaves de API. Cada chave é vinculada a endpoints específicos, possui sua própria cota mensal de chamadas e aparece separadamente no registro de auditoria, permitindo que você veja exatamente o que cada destinatário acessou. Revogar uma chave interrompe o acesso desse destinatário, enquanto todos os outros relatórios continuam funcionando. Ninguém na cadeia recebe credenciais do banco de dados nem visualiza o SQL por trás do endpoint.
Meu endpoint aceita parâmetros. Como faço para alterá-los no relatório? +
Cada parâmetro exposto pela sua consulta salva chega como uma entrada nomeada no Parâmetros Registre o parâmetro com um comentário indicando seu tipo, valor padrão e se é obrigatório. Edite os valores ali para um relatório fixo ou promova-os a parâmetros do Power Query por meio de "Gerenciar Parâmetros" para que o autor do relatório possa alterá-los em uma lista suspensa sem precisar mexer no modelo. Observe que esses parâmetros são definidos antes da chamada, portanto, não são os mesmos que um filtro do Power BI, que filtra as linhas que o modelo já carregou.
O que mais pode consumir o mesmo ponto de extremidade? +
Qualquer coisa que utilize HTTP. Além do arquivo M do Power Query, o menu de exportação gera uma especificação OpenAPI 3.1 em JSON ou YAML, além de coleções prontas para testes no Postman, Insomnia e Hoppscotch. O mesmo endpoint também é compatível com integrações do Airtable, Baserow, SeaTable, Smartsheet e Anvil. Uma consulta salva, um endpoint, vários consumidores.
Um conjunto de resultados grande torna a atualização mais lenta? +
Sim, é possível, pois esse caminho não é compactado por necessidade. A solução quase sempre é mover a agregação para o SQL por trás do endpoint, em vez de fazê-la no Power Query. Um painel que precisa de totais mensais por região deve chamar um endpoint que retorne totais mensais por região, e não um que retorne cada linha de pedido e deixe o modelo agrupá-las.

Começar a usar

Adicione um banco de dados em tempo real ao seu próximo relatório do Power BI.

Salve uma consulta, publique-a como um ponto de extremidade, exporte o arquivo M do Power Query e cole-o no Editor Avançado. Nenhum driver ODBC, nenhum gateway, nenhuma porta de banco de dados aberta.

Guias relacionados: API REST instantânea para bancos de dados SQL | Exponha um banco de dados PostgreSQL como uma API REST segura. | Exponha um banco de dados SQL Server como uma API REST segura. | Todos os guias da Plataforma de API

Categoria: Plataforma RESTAPI

Tags: Power BI, API REST, Power Query, Power Query M, Business Intelligence, SQL

Metadescrição: Conecte o Power BI a qualquer banco de dados SQL por meio de uma API REST. Consulta Power Query M gerada, sem driver ODBC.

Atualizado em 29 de agosto de 2026

Desenvolvido por BetterDocs