Delen via


Query's uitvoeren op meerdere gegevensbronnen in fabric-API voor GraphQL

Een van de belangrijkste voordelen van Fabric-API voor GraphQL is de mogelijkheid om meerdere gegevensbronnen, zoals lakehouses, magazijnen en databases, beschikbaar te maken via één geïntegreerd API-eindpunt. Dit betekent dat uw toepassingen gegevens uit verschillende bronnen in één GraphQL-query kunnen ophalen, waardoor er geen verbinding hoeft te worden gemaakt met meerdere API's of databases afzonderlijk.

U hebt bijvoorbeeld klantgegevens in het ene magazijn en voorraadgegevens in een ander lakehouse. In plaats van twee afzonderlijke API-aanroepen te maken, kunt u beide bronnen tegelijk opvragen via uw GraphQL-API, waardoor de netwerkoverhead wordt verminderd en uw toepassingscode wordt vereenvoudigd.

Hoe query's met meerdere bronnen werken

Wanneer u een GraphQL-query uitvouwt die meerdere gegevensbronnen omvat, worden afzonderlijke aanvragen automatisch aan elke gegevensbron parallel gekoppeld en worden de resultaten vervolgens gecombineerd tot één antwoord. Deze aanpak:

  • Vermindert retouren: uw toepassing doet één aanvraag in plaats van meerdere sequentiële aanroepen
  • Verbetert de prestaties: parallelle uitvoering betekent snellere algemene reactietijden
  • Vereenvoudigt de clientcode: u werkt met één API-interface, ongeacht waar gegevens worden opgeslagen

Belangrijk

Query's met meerdere bronnen hebben de volgende beperkingen:

  • U kunt geen relaties maken tussen typen die verschillende gegevensbronnen omvatten. Relaties werken alleen binnen één gegevensbron.
  • Afzonderlijke aanvragen voor elke gegevensbron worden parallel uitgevoerd zonder gegarandeerde volgorde.
  • Elke aanvraag voor een gegevensbron is onafhankelijk. Er is geen transactie tussen meerdere bronnen.

Queryvoorbeeld

Bedrijfsscenario: Stel dat u een dashboard bouwt waarin klantgegevens en productinventarisstatus naast elkaar worden weergegeven. Uw klantgegevens bevinden zich in een verkoopwarehouse (ContosoSales), terwijl uw productinventaris wordt beheerd in een afzonderlijk Lakehouse (ContosoInventory) dat wordt bijgewerkt door uw supply chain-systemen. Zonder ondersteuning voor meerdere bronnen moet u twee afzonderlijke API-aanroepen maken, twee verschillende verbindingen beheren en de gegevens zelf combineren in uw toepassingscode.

Met fabric-API voor GraphQL kunt u gegevens ophalen uit beide bronnen in één query:

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

Met deze enkele aanvraag worden klantrecords opgehaald uit de contosoSales-gegevensbron en inventarisitems uit de contosoInventory-gegevensbron parallel, waarbij ze worden gecombineerd tot één antwoord. Uw dashboard haalt alle gegevens op die nodig zijn met één API-aanroep in plaats van twee.

De uitvoer voor de aanvraag is:

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

De antwoordstructuur weerspiegelt de querystructuur. Binnen het object hebt u twee velden op het data hoogste niveau (customers en inventories) die overeenkomen met de twee query's die u hebt gemaakt. Elk veld bevat een items matrix met de werkelijke resultaten. De customers items hebben eigenschappen zoals FirstName en LastName, terwijl de inventories items eigenschappen hebben zoals Name- precies zoals aangevraagd in de query.

Dit is hoe de queryweergave eruitziet wanneer u deze aanvraag uitvoert:

Schermopname van het editorscherm met een query die twee gegevensbronnen beslaat.