Compartilhar via


Práticas recomendadas de desempenho da API do Fabric para GraphQL

A API do Microsoft Fabric para GraphQL oferece uma maneira poderosa de consultar dados com eficiência, mas a otimização de desempenho é fundamental para garantir um desempenho suave e escalonável. Se você estiver lidando com consultas complexas ou otimizando tempos de resposta, as práticas recomendadas a seguir ajudam você a obter o melhor desempenho da implementação do GraphQL e maximizar a eficiência da API no Fabric.

Quem precisa de otimização de desempenho

A otimização de desempenho é crucial para:

  • Desenvolvedores de aplicativos que criam aplicativos de alto tráfego que consultam lakehouses e armazéns do Fabric
  • Engenheiros de dados otimizando padrões de acesso a dados do Fabric para aplicativos de análise em larga escala e processos ETL
  • Administradores de workspace do Fabric gerenciando o consumo de capacidade e garantindo uma utilização eficiente de recursos
  • Desenvolvedores de BI melhorando os tempos de resposta para aplicativos de análise personalizados baseados em dados do Fabric
  • Equipes de DevOps solucionando problemas de latência em aplicativos de produção que consomem APIs do Fabric

Use essas práticas recomendadas quando a API do GraphQL precisar lidar com cargas de trabalho de produção com eficiência ou quando você estiver enfrentando problemas de desempenho.

Alinhamento da região

As chamadas à API entre regiões são uma causa comum de alta latência. Para obter um desempenho ideal, verifique se os aplicativos cliente, o locatário do Fabric, a capacidade e as fontes de dados estão todos na mesma região do Azure.

Verifique sua região de locatário

Para encontrar a região do cliente do Fabric:

  1. Entre no portal do Microsoft Fabric com uma conta de administrador
  2. Selecione o ícone de Ajuda (?) no canto superior direito
  3. Na parte inferior do painel Ajuda, selecione Sobre o Fabric
  4. Observe a região exibida nos detalhes do locatário

Verifique sua região de capacidade

Sua API para GraphQL é executada dentro de um limite de capacidade específico. Para localizar a região de capacidade:

  1. Abra o workspace que hospeda sua API para GraphQL

  2. Ir para Configurações do workspace>Informações de licença

  3. Localizar a região na capacidade de licença

    Captura de tela mostrando como obter a região de capacidade para seu workspace.

Verificar a região da fonte de dados

A localização de suas fontes de dados também afeta o desempenho:

  • Fontes de dados do Fabric (Lakehouse, Data Warehouse, Banco de Dados SQL): usam a mesma região que a capacidade do espaço de trabalho
  • Fontes de dados externas (Banco de Dados SQL do Azure etc.): verifique o local do recurso no portal do Azure

Prática recomendada: implantar aplicativos cliente na mesma região que sua capacidade do Fabric e fontes de dados para minimizar a latência de rede.

Práticas recomendadas de teste de desempenho

Ao avaliar o desempenho da API, siga estas diretrizes para resultados confiáveis e consistentes.

Usar ferramentas de teste realistas

Teste com ferramentas que correspondem de perto ao seu ambiente de produção:

  • Scripts ou aplicativos: Use scripts Python, Node.js ou .NET que simulem o comportamento real do cliente
  • Pool de conexões HTTP: reutilize conexões HTTP para reduzir a latência, especialmente importante para cenários entre regiões
  • Gerenciamento de sessão: manter sessões entre solicitações para refletir com precisão o uso do mundo real

Recursos de exemplo:

Coletar métricas significativas

Para uma avaliação precisa de desempenho:

  1. Automatizar testes: use scripts ou ferramentas de teste de desempenho para executar testes consistentemente durante um período definido
  2. Aquecer a API: executar várias consultas de teste antes de medir o desempenho (consulte os requisitos de aquecimento)
  3. Analisar distribuições: use métricas baseadas em percentil (P50, P95, P99) em vez de apenas médias para entender os padrões de latência
  4. Teste sob carga: medir o desempenho com volumes de solicitação simultâneos realistas
  5. Condições do documento: registrar a hora do dia, a utilização da capacidade e quaisquer cargas de trabalho simultâneas durante o teste

Problemas comuns de desempenho

Entender esses problemas comuns ajuda você a diagnosticar e resolver problemas de desempenho com eficiência.

Requisitos de aquecimento

Problema: a primeira solicitação de API leva significativamente mais tempo do que as solicitações subsequentes.

Por que isso acontece:

  • Inicialização da API: quando ocioso, o ambiente de API precisa ser inicializado durante a primeira chamada, adicionando alguns segundos de latência
  • Aquecimento de fonte de dados: muitas fontes de dados (especialmente Pontos de extremidade do SQL Analytics e data warehouses) passam por uma fase de aquecimento quando acessadas após ficarem ociosas.
  • Inicialização combinada: se a API e a fonte de dados estiverem ociosas, os tempos de inicialização serão compostos

Solution:

  • Execute de 2 a 3 consultas de teste antes de medir o desempenho
  • Para aplicativos de produção, implemente endpoints de verificação de integridade que mantêm a API ativa
  • Considere usar consultas agendadas ou ferramentas de monitoramento para manter um estado ativo durante o horário comercial

Desalinhamento regional

Problema: latência consistentemente alta em todas as solicitações.

Por que isso acontece: As chamadas de rede entre regiões adicionam latência significativa, especialmente quando o cliente, a API e as fontes de dados estão em diferentes regiões do Azure.

Solution:

  • Verifique se o aplicativo cliente, a capacidade do Fabric e as fontes de dados estão na mesma região
  • Se o acesso entre regiões for inevitável, implemente estratégias agressivas de cache
  • Considere implantar réplicas de API regionais para aplicativos globais

Desempenho da fonte de dados

Problema: as solicitações de API são lentas mesmo quando a API é aquecida e as regiões são alinhadas.

Por que isso acontece: A API para GraphQL atua como uma interface de consulta em suas fontes de dados. Se a fonte de dados subjacente tiver problemas de desempenho, como índices ausentes, consultas complexas ou restrições de recurso, a API herdará essas limitações.

Solution:

  1. Teste diretamente: consultar diretamente a fonte de dados (usando SQL ou outras ferramentas nativas) para estabelecer um desempenho de linha de base
  2. Otimize a fonte de dados:
  3. Capacidade dimensionada corretamente: Garanta que o SKU de capacidade do Fabric fornece recursos de computação suficientes. Consulte os conceitos do Microsoft Fabric para obter diretrizes sobre como selecionar a capacidade apropriada.

Design de consulta

Problema: algumas consultas têm um bom desempenho, enquanto outras são lentas.

Por que isso acontece:

  • Over-fetching: solicitar mais campos do que o necessário aumenta o tempo de processamento
  • Aninhamento profundo: consultas com muitos níveis de relações aninhadas exigem várias execuções de resolvedores
  • Filtros ausentes: consultas sem filtros apropriados podem retornar dados excessivos

Solution:

  • Solicitar somente os campos necessários na consulta GraphQL
  • Limitar a profundidade das relações aninhadas sempre que possível
  • Usar filtros e paginação apropriados em suas consultas
  • Considere dividir consultas complexas em várias consultas mais simples quando apropriado