Sdílet prostřednictvím


Dotazování na více zdrojů dat v rozhraní FABRIC API pro GraphQL

Jednou z klíčových výhod rozhraní FABRIC API pro GraphQL je schopnost zveřejnit více zdrojů dat, jako jsou lakehouses, sklady a databáze, prostřednictvím jednoho sjednoceného koncového bodu rozhraní API. To znamená, že vaše aplikace můžou načítat data z různých zdrojů v jednom dotazu GraphQL, takže se nemusíte připojovat k více rozhraním API nebo databázím samostatně.

Můžete mít například zákaznická data v jednom skladu a inventarizační data v jiném jezeře. Místo dvou samostatných volání rozhraní API můžete dotazovat oba zdroje současně prostřednictvím rozhraní GraphQL API, což snižuje režii sítě a zjednodušuje kód aplikace.

Jak fungují dotazy s více zdroji

Když vydáte dotaz GraphQL, který zahrnuje více zdrojů dat, rozhraní API automaticky paralelně rozdá jednotlivé požadavky na každý zdroj dat a pak zkombinuje výsledky do jedné odpovědi. Tento přístup:

  • Zkracuje dobu odezvy: Vaše aplikace vytváří jeden požadavek místo více sekvenčních volání.
  • Zlepšuje výkon: Paralelní spouštění znamená rychlejší celkovou dobu odezvy.
  • Zjednodušuje klientský kód: Pracujete s jedním rozhraním rozhraní API bez ohledu na to, kde jsou uložená data.

Důležité

Dotazy s více zdroji mají následující omezení:

  • Nemůžete vytvářet relace mezi typy, které zahrnují různé zdroje dat. Relace fungují jenom v rámci jednoho zdroje dat.
  • Jednotlivé požadavky na každý zdroj dat se provádějí paralelně bez zaručeného pořadí.
  • Každý požadavek na zdroj dat je nezávislý – neexistuje žádná transakce zahrnující více zdrojů.

Příklad dotazu

Obchodní scénář: Představte si, že vytváříte řídicí panel, který zobrazuje informace o zákazníci a stav inventáře produktů vedle sebe. Vaše zákaznická data se nacházejí v prodejním skladu (ContosoSales), zatímco inventář produktů se spravuje v samostatném lakehouse (ContosoInventory), který aktualizuje vaše systémy dodavatelského řetězce. Bez podpory s více zdroji byste museli provádět dvě samostatná volání rozhraní API, spravovat dvě různá připojení a kombinovat data sami v kódu aplikace.

S rozhraním API Fabric pro GraphQL můžete načíst data z obou zdrojů v jednom dotazu:

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

Tento jediný požadavek načte záznamy zákazníků ze zdroje dat ContosoSales a položky inventáře ze zdroje dat ContosoInventory paralelně a zkombinuje je do jedné odpovědi. Řídicí panel získá všechna data, která potřebuje, s jedním voláním rozhraní API místo dvou.

Výstupem požadavku je:

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

Struktura odpovědi zrcadlí strukturu dotazu. Uvnitř objektu data máte dvě pole nejvyšší úrovně (customers a inventories) odpovídající dvěma dotazům, které jste vytvořili. Každé pole obsahuje pole items se skutečnými výsledky. Položky customers mají podobné vlastnosti FirstName a LastNamezatímco inventories položky mají vlastnosti jako Name– přesně tak, jak jsou požadovány v dotazu.

Takto vypadá zobrazení dotazu při spuštění tohoto požadavku:

Snímek obrazovky editoru zobrazující dotaz, který obsahuje dva zdroje dat