Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API Microsoft Fabric для GraphQL предлагает эффективный способ эффективного запроса данных, но оптимизация производительности является ключом к обеспечению плавной и масштабируемой производительности. Независимо от того, обрабатываете ли вы сложные запросы или оптимизируете время отклика, приведенные ниже рекомендации помогут повысить производительность реализации GraphQL и повысить эффективность API в Fabric.
Кто нуждается в оптимизации производительности
Оптимизация производительности имеет решающее значение для:
- Разработчики приложений, разрабатывающие высоконагруженные приложения, которые обращаются к lakehouses и хранилищам данных Fabric
- Инженеры данных оптимизируют шаблоны доступа к данным Fabric для крупномасштабных аналитических приложений и процессов ETL
- Администраторы рабочей области Fabric управляют потреблением ресурсов и обеспечивают их эффективное использование
- Разработчики бизнес-аналитики улучшают время отклика для пользовательских приложений аналитики, созданных на основе данных Fabric
- Команды DevOps , устраняющие проблемы с задержкой в рабочих приложениях, использующих API Fabric
Используйте эти рекомендации, если API GraphQL должен эффективно обрабатывать рабочие нагрузки или при возникновении проблем с производительностью.
Выравнивание региона
Вызовы API между регионами являются распространенной причиной высокой задержки. Для оптимальной производительности убедитесь, что клиентские приложения, клиент Fabric, емкость и источники данных находятся в одном регионе Azure.
Проверьте регион клиента
Чтобы найти регион клиента Fabric, выполните приведенные ниже действия.
- Войдите на портал Microsoft Fabric с учетной записью администратора
- Щелкните значок справки (?) в правом верхнем углу
- В нижней части области справки выберите О Fabric
- Обратите внимание на регион, отображаемый в сведениях о клиенте.
Проверьте регион емкости
Ваш API для GraphQL выполняется в пределах определенной производительности. Чтобы найти регион емкости, выполните следующие действия.
Откройте рабочую область, в которой размещен API для GraphQL.
Перейдите кпараметрам рабочей области>сведениям о лицензии
Найдите регион по лицензионной емкости
Проверка региона источника данных
Расположение источников данных также влияет на производительность:
- Источники данных Fabric (Lakehouse, хранилище данных, база данных SQL): они используют тот же регион, что и емкость рабочей области.
- Внешние источники данных (база данных SQL Azure и т. д.): проверьте расположение ресурса на портале Azure.
Рекомендация. Развертывание клиентских приложений в том же регионе, что и емкость и источники данных Fabric, чтобы свести к минимуму задержку в сети.
Рекомендации по тестированию производительности
При оценке производительности API следуйте этим рекомендациям для надежных и согласованных результатов.
Использование реалистичных средств тестирования
Проверьте с помощью инструментов, которые тесно соответствуют рабочей среде:
- Скрипты или приложения: используйте скрипты Python, Node.jsили .NET, имитирующие фактическое поведение клиента.
- Пул http-подключений: повторное использование HTTP-подключений для уменьшения задержки, особенно важной для сценариев между регионами
- Управление сеансами: поддержание сеансов между запросами для точного отражения использования в реальных условиях
Примеры ресурсов:
- Пример скрипта теста производительности (записная книжка Python)
- Объекты сеанса HTTP в Python
- Рекомендации по HttpClient для .NET
Сбор значимых метрик
Для точной оценки производительности:
- Автоматизация тестирования. Использование скриптов или средств тестирования производительности для последовательного выполнения тестов в течение определенного периода
- Разогрейте API: выполните несколько тестовых запросов перед измерением производительности (см. сведения о требованиях к прогревам)
- Анализ распределения: используйте метрики на основе процентиля (P50, P95, P99), а не просто средние значения для понимания шаблонов задержки
- Тестирование под нагрузкой: Измерение производительности при реалистичных объемах параллельных запросов
- Условия документа: запишите время дня, использование емкости и любые параллельные рабочие нагрузки во время тестирования
Распространенные проблемы с производительностью
Общие сведения об этих распространенных проблемах помогают эффективно диагностировать и устранять проблемы с производительностью.
Требования к прогревам
Проблема. Первый запрос API занимает значительно больше времени, чем последующие запросы.
Почему это происходит:
- Инициализация API: при простое среда API должна инициализироваться во время первого вызова, добавив несколько секунд задержки.
- Прогрев источников данных: многие источники данных (особенно SQL Analytics и хранилища данных) проходят стадию прогрева после простоя.
- Объединенная инициализация: если API и источник данных неактивны, время инициализации суммируется.
Solution:
- Выполнение 2-3 тестовых запросов перед измерением производительности
- Для производственных приложений реализуйте конечные точки проверки работоспособности, которые поддерживают API в активном состоянии.
- Рекомендуется использовать запланированные запросы или средства мониторинга для поддержания активного состояния в рабочее время
Региональное несоответствие
Проблема: постоянно высокая задержка во всех запросах.
Почему это происходит: Сетевые вызовы между регионами добавляют значительную задержку, особенно если клиент, API и источники данных находятся в разных регионах Azure.
Solution:
- Убедитесь, что клиентское приложение, емкость Fabric и источники данных находятся в одном регионе
- Если доступ между регионами неизбежен, реализуйте агрессивные стратегии кэширования
- Рассмотрите возможность развертывания региональных реплик API для глобальных приложений
Производительность источника данных
Проблема: Запросы API медленные, даже когда API разогреты и регионы выровнены.
Почему это происходит: API для GraphQL выступает в качестве интерфейса запроса по источникам данных. Если базовый источник данных имеет проблемы с производительностью, такие как отсутствующие индексы, сложные запросы или ограничения ресурсов, API наследует эти ограничения.
Solution:
- Тестирование напрямую. Запрос источника данных напрямую (с помощью SQL или других собственных средств) для установления базовой производительности
-
Оптимизация источника данных:
- Добавление соответствующих индексов для часто запрашиваемых столбцов
- Рассмотрим правильное хранилище данных для вашего варианта использования: руководство по принятию решений Fabric — выбор хранилища данных
- Просмотр планов выполнения запросов для возможностей оптимизации
- Оптимальная емкость: проверьте, что емкость SKU для Fabric предоставляет достаточные вычислительные ресурсы. Рекомендации по выбору соответствующей емкости см. в концепциях Microsoft Fabric .
Конструктор запросов
Проблема. Некоторые запросы выполняются хорошо, а другие медленно.
Почему это происходит:
- Чрезмерное получение: запрос большего количества полей, чем это необходимо, увеличивает время обработки
- Глубокое вложение: Запросы с множеством уровней вложенных отношений требуют нескольких выполнений резолвера.
- Отсутствующие фильтры: запросы без соответствующих фильтров могут возвращать чрезмерные данные
Solution:
- Запрос только полей, необходимых в запросе GraphQL
- Ограничение глубины вложенных связей по возможности
- Использование соответствующих фильтров и разбиения на страницы в запросах
- При необходимости рассмотрите возможность разбиения сложных запросов в несколько простых запросов.