Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jedną z kluczowych zalet interfejsu Fabric API dla języka GraphQL jest możliwość uwidacznienia wielu źródeł danych — takich jak lakehouses, magazyny i bazy danych — za pośrednictwem jednego ujednoliconego punktu końcowego interfejsu API. Oznacza to, że aplikacje mogą pobierać dane z różnych źródeł w jednym zapytaniu GraphQL, eliminując konieczność łączenia się z wieloma interfejsami API lub bazami danych oddzielnie.
Na przykład dane klientów mogą być w jednym magazynie, a dane zapasów w innym lakehouse. Zamiast wykonywać dwa oddzielne wywołania interfejsu API, można wykonywać zapytania dotyczące obu źródeł jednocześnie za pośrednictwem interfejsu API GraphQL, zmniejszając obciążenie sieci i upraszczając kod aplikacji.
Jak działają zapytania wieloźródłowe
W przypadku wysyłania zapytania GraphQL obejmującego wiele źródeł danych interfejs API automatycznie wysyła pojedyncze żądania do każdego źródła danych równolegle, a następnie łączy wyniki w jedną odpowiedź. Takie podejście:
- Zmniejsza liczbę rund: Aplikacja wysyła jedno żądanie zamiast wielu wywołań sekwencyjnych
- Poprawia wydajność: Wykonywanie równoległe oznacza szybsze ogólne czasy odpowiedzi
- Upraszcza kod klienta: pracujesz z jednym interfejsem API niezależnie od tego, gdzie są przechowywane dane
Ważne
Zapytania wieloźródłowe mają następujące ograniczenia:
- Nie można tworzyć relacji między typami obejmującymi różne źródła danych. Relacje działają tylko w jednym źródle danych.
- Pojedyncze żądania do każdego źródła danych są wykonywane równolegle bez gwarantowanej kolejności.
- Każde żądanie do źródła danych jest niezależne — nie ma transakcji obejmujących wiele źródeł.
Przykład zapytania
Scenariusz biznesowy: Załóżmy, że tworzysz pulpit nawigacyjny, który wyświetla informacje o kliencie i stan zapasów produktów obok siebie. Dane klientów są przechowywane w magazynie sprzedaży (ContosoSales), podczas gdy zapasy produktów są zarządzane w oddzielnym magazynie lakehouse (ContosoInventory), który jest aktualizowany przez systemy łańcucha dostaw. Bez obsługi wielu źródeł należy wykonać dwa oddzielne wywołania interfejsu API, zarządzać dwoma różnymi połączeniami i łączyć dane samodzielnie w kodzie aplikacji.
Za pomocą Fabric API dla języka GraphQL można pobrać dane z obu źródeł w jednym zapytaniu:
query {
customers (first: 1) {
items {
FirstName
LastName
}
}
inventories (first: 1) {
items {
Name
}
}
}
To pojedyncze żądanie pobiera rekordy klientów ze źródła danych ContosoSales i elementów zapasów ze źródła danych ContosoInventory równolegle, łącząc je w jedną odpowiedź. Pulpit nawigacyjny pobiera wszystkie potrzebne dane z jednym wywołaniem interfejsu API zamiast dwóch.
Dane wyjściowe żądania to:
{
"data": {
"customers": {
"items": [
{
"FirstName": "Orlando",
"LastName": "Gee"
}
]
},
"inventories": {
"items": [
{
"Name": "AWC Logo Cap"
}
]
}
}
}
Struktura odpowiedzi odzwierciedla strukturę zapytania.
data Wewnątrz obiektu znajdują się dwa pola najwyższego poziomu (customersi inventories) odpowiadające dwóm wykonanym zapytaniom. Każde pole zawiera tablicę items z rzeczywistymi wynikami.
customers Elementy mają właściwości takie jak FirstName i LastName, a inventories elementy mają właściwości takie jak Name— dokładnie tak, jak żądano w zapytaniu.
W ten sposób widok zapytania wygląda podczas wykonywania tego żądania: