Compartilhar via


Consultar várias fontes de dados na API do Fabric para GraphQL

Uma das principais vantagens da API do Fabric para GraphQL é a capacidade de expor várias fontes de dados, como lakehouses, warehouses e bancos de dados, por meio de um único ponto de extremidade de API unificada. Isso significa que seus aplicativos podem recuperar dados de fontes diferentes em uma única consulta GraphQL, eliminando a necessidade de se conectar a várias APIs ou bancos de dados separadamente.

Por exemplo, você pode ter dados de clientes em um warehouse e dados de inventário em outro lakehouse. Em vez de fazer duas chamadas à API separadas, você pode consultar as duas fontes simultaneamente por meio da API do GraphQL, reduzindo a sobrecarga de rede e simplificando o código do aplicativo.

Como funcionam as consultas de várias fontes

Quando você emite uma consulta GraphQL que abrange várias fontes de dados, a API automaticamente esbanja solicitações individuais para cada fonte de dados em paralelo e, em seguida, combina os resultados em uma única resposta. Essa abordagem:

  • Reduz viagens de ida e volta: seu aplicativo faz uma solicitação em vez de várias chamadas sequenciais
  • Melhora o desempenho: a execução paralela significa tempos de resposta gerais mais rápidos
  • Simplifica o código do cliente: você trabalha com uma única interface de API, independentemente de onde os dados são armazenados

Importante

As consultas de várias fontes têm as seguintes limitações:

  • Você não pode criar relações entre tipos que abrangem diferentes fontes de dados. As relações funcionam apenas em uma única fonte de dados.
  • Solicitações individuais para cada fonte de dados são executadas em paralelo sem ordem garantida.
  • Cada solicitação a uma fonte de dados é independente. Não há nenhuma transação que abrange várias fontes.

Exemplo de consulta

Cenário de negócios: imagine que você está criando um painel que exibe informações do cliente e o status do inventário de produtos lado a lado. Os dados do cliente residem em um sales warehouse (ContosoSales), enquanto o inventário de produtos é gerenciado em um lakehouse separado (ContosoInventory) que é atualizado por seus sistemas de cadeia de suprimentos. Sem suporte de várias fontes, você precisaria fazer duas chamadas à API separadas, gerenciar duas conexões diferentes e combinar os dados por conta própria no código do aplicativo.

Com a API do Fabric para GraphQL, você pode recuperar dados de ambas as fontes em uma única consulta:

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

Essa única solicitação recupera registros de clientes da fonte de dados ContosoSales e itens de inventário da fonte de dados ContosoInventory em paralelo, combinando-os em uma resposta. Seu painel obtém todos os dados necessários 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 de consulta. Dentro do data objeto, você tem dois campos de nível superior (customers e inventories) correspondentes às duas consultas que você fez. Cada campo contém uma items matriz 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.

É assim que a exibição de consulta fica quando você executa esta solicitação:

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