Partilhar via


Consultar várias fontes de dados na API de malha para GraphQL

Uma das principais vantagens da API Fabric para GraphQL é a capacidade de expor múltiplas fontes de dados — como lakehouses, armazéns e bases de dados — através de um único endpoint API unificado. Isto significa que as suas aplicações podem recuperar dados de diferentes fontes numa única consulta GraphQL, eliminando a necessidade de se ligar separadamente a múltiplas APIs ou bases de dados.

Por exemplo, pode ter dados de clientes num armazém e dados de inventário noutra lakehouse. Em vez de fazer duas chamadas de API separadas, pode consultar ambas as fontes simultaneamente através da sua API GraphQL, reduzindo a sobrecarga da rede e simplificando o código da sua aplicação.

Como funcionam as consultas multi-fonte

Quando emite uma consulta GraphQL que abrange várias fontes de dados, a API espalha automaticamente pedidos individuais para cada fonte de dados em paralelo, e depois combina os resultados numa única resposta. Esta abordagem:

  • Reduz viagens de ida e volta: A sua aplicação faz um pedido em vez de várias chamadas sequenciais
  • Melhora o desempenho: Execução paralela significa tempos de resposta globais mais rápidos
  • Simplifica o código do cliente: Trabalha com uma única interface API independentemente de onde os dados estão armazenados

Importante

As consultas multi-fonte têm as seguintes limitações:

  • Não se podem criar relações entre tipos que abrangem diferentes fontes de dados. As relações só funcionam dentro de uma única fonte de dados.
  • Pedidos individuais para cada fonte de dados são executados em paralelo sem ordem garantida.
  • Cada pedido a uma fonte de dados é independente — não existe transação que abrange múltiplas fontes.

Exemplo de consulta

Cenário de negócio: Imagine que está a construir um painel que mostra a informação dos clientes e o estado do inventário dos produtos lado a lado. Os seus dados de clientes vivem num armazém de vendas (ContosoSales), enquanto o seu inventário de produtos é gerido num lakehouse separado (ContosoInventory) que é atualizado pelos seus sistemas da cadeia de abastecimento. Sem suporte multi-fonte, terias de fazer duas chamadas API separadas, gerir duas ligações diferentes e combinar os dados tu próprio no código da tua aplicação.

Com a API do Fabric para GraphQL, pode obter dados de ambas as fontes numa única consulta:

query {
  customers (first: 1) {
    items {
      FirstName
      LastName
    }
  }
  inventories (first: 1) {
    items {
      Name
    }
  }
}

Este único pedido recupera registos de clientes da fonte de dados ContosoSales e itens de inventário da fonte de dados ContosoInventory em paralelo, combinando-os numa única resposta. O teu dashboard recebe todos os dados de que precisa com uma chamada API em vez de duas.

A saída para a solicitação é:

{
  "data": {
    "customers": {
      "items": [
        {
          "FirstName": "Orlando",
          "LastName": "Gee"
        }
      ]
    },
    "inventories": {
      "items": [
        {
          "Name": "AWC Logo Cap"
        }
      ]
    }
  }
}

A estrutura de resposta espelha a estrutura da consulta. Dentro do data objeto, tens dois campos de topo (customers e inventories) correspondentes às duas consultas que fizeste. Cada campo contém um items array com os resultados reais. Os customers itens têm propriedades como FirstName e LastName, enquanto os inventories itens têm propriedades como Name—exatamente como solicitado na consulta.

Esta é a aparência do modo de exibição de consulta quando você executa essa solicitação:

Captura de tela da tela do editor mostrando uma consulta abrangendo duas fontes de dados.