Compartir a través de


Consulta de varios orígenes de datos en la API de Fabric para GraphQL

Una de las principales ventajas de Fabric API para GraphQL es la capacidad de exponer varios orígenes de datos( como lakehouses, almacenes y bases de datos) a través de un único punto de conexión de API unificado. Esto significa que las aplicaciones pueden recuperar datos de orígenes diferentes en una sola consulta de GraphQL, lo que elimina la necesidad de conectarse a varias API o bases de datos por separado.

Por ejemplo, es posible que tenga datos de cliente en un almacén y datos de inventario en otra instancia de LakeHouse. En lugar de realizar dos llamadas API independientes, puede consultar ambos orígenes simultáneamente a través de GraphQL API, lo que reduce la sobrecarga de red y simplifica el código de la aplicación.

Funcionamiento de las consultas de varios orígenes

Cuando se emite una consulta graphQL que abarca varios orígenes de datos, la API asigna automáticamente solicitudes individuales a cada origen de datos en paralelo y, a continuación, combina los resultados en una única respuesta. Este enfoque:

  • Reduce los recorridos de ida y vuelta: la aplicación realiza una solicitud en lugar de varias llamadas secuenciales
  • Mejora el rendimiento: la ejecución en paralelo significa tiempos de respuesta generales más rápidos.
  • Simplifica el código de cliente: trabaja con una sola interfaz de API, independientemente de dónde se almacenen los datos.

Importante

Las consultas de varios orígenes tienen las siguientes limitaciones:

  • No se pueden crear relaciones entre tipos que abarquen distintos orígenes de datos. Las relaciones solo funcionan dentro de un único origen de datos.
  • Las solicitudes individuales a cada origen de datos se ejecutan en paralelo sin ningún orden garantizado.
  • Cada solicitud a un origen de datos es independiente; no hay ninguna transacción que abarque varios orígenes.

Ejemplo de consulta

Escenario empresarial: imagine que va a crear un panel que muestre la información del cliente y el estado del inventario de productos en paralelo. Los datos de tus clientes se encuentran en un almacén de ventas (ContosoSales), mientras que el inventario de productos se gestiona en un lakehouse independiente (ContosoInventory) actualizado por los sistemas de tu cadena de suministro. Sin soporte para múltiples fuentes, tendría que hacer dos llamadas API por separado, gestionar dos conexiones diferentes y combinar los datos usted mismo en el código de su aplicación.

Con Fabric API para GraphQL, puede recuperar datos de ambos orígenes en una sola consulta:

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

Esta única solicitud recupera los registros de cliente del origen de datos ContosoSales y los elementos de inventario del origen de datos ContosoInventory en paralelo, combinándolos en una respuesta. El panel obtiene todos los datos que necesita con una llamada API en lugar de dos.

La salida de la solicitud es:

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

La estructura de respuesta refleja la estructura de consulta. Dentro del data objeto, tiene dos campos de nivel superior (customers y inventories) correspondientes a las dos consultas realizadas. Cada campo contiene una items matriz con los resultados reales. Los customers elementos tienen propiedades como FirstName y LastName, mientras que los inventories elementos tienen propiedades como Name, exactamente como se solicita en la consulta.

Así es como se ve la vista de consulta al ejecutar esta solicitud:

Captura de pantalla de la pantalla del editor que muestra una consulta que abarca dos orígenes de datos.