Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Одним из ключевых преимуществ API Fabric для GraphQL является возможность предоставления нескольких источников данных, таких как lakehouses, хранилища и базы данных, через одну единую конечную точку API. Это означает, что приложения могут получать данные из разных источников в одном запросе GraphQL, устраняя необходимость подключения к нескольким API или базам данных отдельно.
Например, у вас могут быть данные клиента в одном хранилище и данные инвентаризации в другом лейкхаусе. Вместо двух отдельных вызовов API можно одновременно запрашивать оба источника через API GraphQL, уменьшая нагрузку на сеть и упрощая код приложения.
Как работают запросы с несколькими источниками
При выполнении запроса GraphQL, охватывающего несколько источников данных, API автоматически распределяет отдельные запросы к каждому источнику данных параллельно, а затем объединяет результаты в один ответ. Такой подход:
- Уменьшает круглые пути: приложение выполняет один запрос вместо нескольких последовательных вызовов
- Повышение производительности: параллельное выполнение означает более быстрое общее время отклика
- Упрощает код клиента: вы работаете с одним интерфейсом API независимо от того, где хранятся данные.
Это важно
Запросы с несколькими источниками имеют следующие ограничения:
- Нельзя создавать связи между типами, охватывающими различные источники данных. Связи работают только в одном источнике данных.
- Отдельные запросы к каждому источнику данных выполняются параллельно без гарантированного заказа.
- Каждый запрос к источнику данных является независимым — отсутствует транзакция, охватывающая несколько источников.
Пример запроса
Бизнес-сценарий: представьте, что вы создаете панель мониторинга, которая отображает сведения о клиентах и состоянии инвентаризации продуктов параллельно. Данные клиента находятся в складе продаж (ContosoSales), в то время как инвентаризация продуктов управляется в отдельном озерохранилище (ContosoInventory), которое обновляется системами цепочки поставок. Без поддержки с несколькими источниками необходимо выполнить два отдельных вызова API, управлять двумя разными подключениями и объединять данные в коде приложения.
С помощью API Fabric для GraphQL можно получить данные из обоих источников в одном запросе:
query {
customers (first: 1) {
items {
FirstName
LastName
}
}
inventories (first: 1) {
items {
Name
}
}
}
Этот отдельный запрос получает записи клиентов из источника данных ContosoSales и элементов инвентаризации из источника данных ContosoInventory параллельно, объединяя их в один ответ. Панель мониторинга получает все необходимые данные с одним вызовом API вместо двух.
Выходные данные для запроса:
{
"data": {
"customers": {
"items": [
{
"FirstName": "Orlando",
"LastName": "Gee"
}
]
},
"inventories": {
"items": [
{
"Name": "AWC Logo Cap"
}
]
}
}
}
Структура ответа отражает структуру запроса.
data Внутри объекта есть два поля верхнего уровня (customersиinventories) соответствующие двум выполненным запросам. Каждое items поле содержит массив с фактическими результатами. Элементы customers имеют такие свойства, как FirstName и LastName, а элементы inventories имеют свойства, такие как Name — точно как запрошено в запросе.
Вот как выглядит представление запроса при выполнении этого запроса: