Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A API Executar Consultas DAX permite executar consultas DAX em modelos semânticos Power BI e recuperar resultados programaticamente no formato IPC Apache Arrow, um formato binário colunar projetado para análise de alto desempenho. Ao retornar os resultados da consulta diretamente no formato Arrow, a API elimina a sobrecarga de serialização e fornece ao seu aplicativo acesso a dados fortemente tipados e prontos para análise.
Por que seta?
O endpoint Execute Queries existente retorna resultados como JSON. O endpoint Executar Consultas DAX mais recente retorna resultados exclusivamente no formato Apache Arrow IPC, um formato colunar binário projetado para análise de alto desempenho. A tabela a seguir compara os dois formatos de resposta:
| JSON (Executar API de Consultas) | Arrow (API de Execução de Consultas DAX) | |
|---|---|---|
| Formato | JSON orientado a linhas | Arrow IPC em formato colunar |
| Tamanho da carga | Maior (sobrecarga de codificação de cadeia de caracteres) | Menor (binário, compactado) |
| Fidelidade de tipo | Perda (tudo é cadeia de caracteres/número) | Sem perda (data nativa, decimal, int64) |
| Desserialização | Análise + coerção de tipo | Leitura sem cópia em DataFrame |
| Mais adequado para | Consultas pequenas, integrações simples | Grandes conjuntos de resultados, fluxos de análise |
Dica
"
Use a API Executar Consultas DAX para qualquer aplicativo cliente que possa consumir fluxos de IPC Arrow binário — isso inclui Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go e outras linguagens com suporte à biblioteca Arrow. Para plataformas de baixo código/sem código, fluxos de Power Automate ou outras soluções que só podem consumir JSON, continue a usar a API Execute Queries mais antiga. Embora a API Executar Consultas não tenha os parâmetros avançados disponíveis em Consultas Execute DAX (como queryTimeout e resultsetRowcountLimit), ela continua sendo a escolha apropriada quando a saída JSON é necessária.
Formato IPC do Apache Arrow
O Apache Arrow define um formato de memória colunar independente de linguagem que foi amplamente adotado em todo o ecossistema de dados, tornando-o uma das representações de dados mais amplamente compatíveis disponíveis. O formato de streaming Arrow IPC (Comunicação entre processos) encapsula lotes de registros em formato columnar com metadados de esquema, habilitando:
- Leituras sem cópias – os clientes podem mapear a resposta diretamente na memória, sem precisar analisar ou mover dados entre buffers.
-
Suporte entre linguagens — existem bibliotecas nativas para Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript e muito mais, para que você possa consumir resultados em praticamente qualquer linguagem. - Compactação eficiente – a compactação LZ4 reduz o tamanho da carga.
- Design baseado em esquema – cada fluxo Arrow começa com uma mensagem de esquema que declara nomes de coluna, tipos e metadados, para que os clientes conheçam o layout exato dos dados antes de ler qualquer linha.
Mapeamento de tipo DAX para Arrow
A API Executa Consultas DAX mapeia os tipos de dados DAX para tipos Arrow da seguinte maneira:
| Tipo DAX | Tipo de seta | Notes |
|---|---|---|
| Inteiro (número inteiro) | int64 |
Inteiro direto de 64 bits |
| Decimal | double |
Ponto flutuante de precisão dupla |
| Moeda (decimal fixa) | decimal128(19, 4) |
Precisão sem perdas de quatro casas decimais |
| Double | double |
Ponto flutuante de precisão dupla |
| DateTime | date64 |
Milissegundos desde a época do Unix |
| booleano | bool |
|
| String | utf8 |
O uso de codificação por dicionário é o padrão para garantir eficiência. |
| Binário | binary |
|
| Variant | dense_union |
União de int64, moeda, bool, date64, float64, utf8 |
Quando usar o endpoint Arrow
Utilize o ponto de extremidade de seta quando:
- Recupere mais de algumas centenas de linhas de um modelo semântico.
- Alimente os resultados em pandas, polares, Spark ou outras estruturas de processamento colunar.
- Crie um serviço de camada intermediária que faz proxies de consultas DAX para consumidores downstream.
- Precisa de tipos numéricos ou de data precisos sem coerção de tipo manual.
Para consultas simples e pequenas ou pesquisas ad hoc rápidas em que o JSON é preferencial, a API Execute Queries mais antiga permanece como uma escolha direta.
Considerações e limitações
Antes de adotar a API Executar Consultas DAX, examine as seguintes diferenças e restrições em comparação com a API Executar Consultas mais antiga:
| Executar API de Consultas | Executar a API de Consultas DAX | |
|---|---|---|
| Ponto de extremidade | executeQueries |
executeDaxQueries |
| Requisito de capacidade | Funciona com Pro, PPU e Premium/Fabric | Somente capacidade Premium e Fabric |
| Configurações de locatário | API REST executar consultas do conjunto de dados (em configurações de desenvolvedor) | Dataset Execute Queries REST API (em configurações do desenvolvedor) e Permitir pontos de extremidade XMLA e analisar no Excel com modelos semânticos locais (em configurações de integração). Permitir que principais de serviço usem APIs do Power BI (em Configurações do desenvolvedor) é necessário somente ao autenticar com um principal de serviço. |
| Entrada de consulta |
queries[] matriz (uma consulta por chamada) |
Cadeia de caracteres única query (várias EVALUATE instruções permitidas) |
| Formatos de resposta | Somente JSON | Arrow IPC somente |
| Parâmetros adicionais | Limited |
queryTimeout, resultsetRowcountLimit, schemaOnly, , executionMetricsmemoryLimit |
| Streaming | Não transmitido | Transmissão contínua de ponta a ponta (transferência segmentada) |
| Limites de tamanho do resultado | Limite rígido de 100.000 linhas e 1.000.000 valores por consulta | Sem limite de linha ou valor fixo (use resultsetRowcountLimit para limitar, se necessário) |
| Paginação | Sem suporte | Sem suporte — use TOPN ou resultsetRowcountLimit para resultados grandes |
| Biblioteca de setas necessária | Não (somente JSON) | Sim — uma biblioteca de setas (como pyarrow ou Apache.Arrow) é necessária para desserializar a resposta |
Conteúdo relacionado
- Comece com a API REST para executar consultas DAX
- Tutorial: Criar um serviço de execução de consulta DAX de camada intermediária
- Tutorial: extração de Python de alto volume para ciência de dados
- Práticas recomendadas para a API REST executar consultas DAX
- Executar referência da API REST de consultas DAX
- APIs REST Power BI