Partilhar via


API de malha para práticas recomendadas de desempenho do GraphQL

A API do Microsoft Fabric para GraphQL oferece uma maneira poderosa de consultar dados de forma eficiente, mas a otimização do desempenho é fundamental para garantir um desempenho suave e escalável. Não importa se você está lidando com consultas complexas ou otimizando os 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 do desempenho é crucial para:

  • Desenvolvedores de aplicações a construir aplicações de grande tráfego que consultam casas de lago e armazéns em Fabric
  • Engenheiros de dados a otimizar os padrões de acesso a dados do Fabric para aplicações analíticas de grande escala e processos ETL
  • Administradores de espaço de trabalho Fabric, a gerir o consumo de capacidade, e garantir a utilização eficiente de recursos
  • Desenvolvedores de BI a melhorar os tempos de resposta para aplicações de análise personalizadas baseadas em dados Fabric
  • Equipas DevOps a resolver problemas de latência em aplicações de produção que consomem APIs do Fabric

Use estas melhores práticas quando a sua API GraphQL precisar de gerir cargas de produção de forma eficiente ou quando estiver a enfrentar problemas de desempenho.

Alinhamento regional

Chamadas de API entre regiões são uma causa comum de alta latência. Para um desempenho ótimo, certifique-se de que as suas aplicações clientes, o tenant Fabric, a capacidade e as fontes de dados estão todas na mesma região Azure.

Verifique a região do seu inquilino

Para encontrar a região do seu inquilino Fabric:

  1. Inicie sessão no portal Microsoft Fabric com uma conta de administrador
  2. Selecione o ícone de Ajuda (?) no canto superior direito
  3. No fundo do painel de Ajuda, selecione Sobre o Tecido
  4. Note a região apresentada nos detalhes do inquilino

Verifique a sua região de capacidade

A tua API para GraphQL corre dentro de uma capacidade específica. Para encontrar a região de capacidade:

  1. Abra o espaço de trabalho que aloja a sua API para o GraphQL

  2. Ir a Definições> do WorkspaceInformação da licença

  3. Encontre a região sob Capacidade de Licença

    Captura de ecrã a mostrar como obter a região de capacidade para a sua área de trabalho.

Verifique a região da sua fonte de dados

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

  • Fontes de dados Fabric (Lakehouse, Data Warehouse, SQL Database): Estas utilizam a mesma região da capacidade do espaço de trabalho
  • Fontes de dados externas (Azure SQL Database, etc.): Verifique a localização dos recursos no portal Azure

Boa prática: Implemente aplicações cliente na mesma região da capacidade do seu Fabric e das fontes de dados para minimizar a latência da rede.

Melhores práticas para testes de desempenho

Ao avaliar o desempenho da sua API, siga estas orientações para obter resultados fiáveis e consistentes.

Use ferramentas de teste realistas

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

  • Scripts ou aplicações: Use scripts em Python, Node.jsou .NET que simulem o comportamento real do cliente
  • Agrupamento de conexões HTTP: Reutilizar conexões HTTP para reduzir a latência, especialmente importante em cenários interregionais.
  • Gestão de sessões: Manter as sessões entre pedidos para refletir com precisão a utilização no mundo real

Recursos de exemplo:

Recolha métricas significativas

Para uma avaliação de desempenho precisa:

  1. Automatizar testes: Utilize scripts ou ferramentas de teste de desempenho para executar testes de forma consistente durante um período definido
  2. Aqueça a API: Execute várias consultas de teste antes de medir o desempenho (ver Requisitos de aquecimento)
  3. Analisar distribuições: Utilizar métricas baseadas em percentis (P50, P95, P99) em vez de apenas médias para compreender padrões de latência
  4. Teste sob carga: Meça o desempenho com volumes realistas de pedidos concorrentes
  5. Condições do documento: Registar a hora do dia, a utilização da capacidade e quaisquer cargas de trabalho simultâneas durante os testes

Problemas comuns de desempenho

Compreender estas questões comuns ajuda-o a diagnosticar e resolver eficazmente os problemas de desempenho.

Requisitos de aquecimento

Problema: O primeiro pedido de API demora significativamente mais do que os pedidos subsequentes.

Por que motivo isto acontece:

  • Inicialização da API: Quando inativa, o ambiente da API precisa de inicializar durante a primeira chamada, adicionando alguns segundos de latência
  • Aquecimento da fonte de dados: Muitas fontes de dados (especialmente endpoints SQL Analytics e data warehouses) passam por uma fase de aquecimento quando acedidas após estarem inativas
  • Inicialização combinada: Se tanto a API como a fonte de dados estiverem inativas, os tempos de inicialização acumulam-se

Solution:

  • Execute 2-3 consultas de teste antes de medir o desempenho
  • Para aplicações de produção, implemente endpoints de verificação de saúde que mantenham a API aquecida
  • Considere utilizar consultas agendadas ou ferramentas de monitorização para manter um estado ativo durante o horário comercial

Desalinhamento regional

Problema: Latência consistentemente alta em todos os pedidos.

Porque é que isto acontece: Chamadas de rede entre regiões adicionam latência significativa, especialmente quando o cliente, a API e as fontes de dados estão em regiões Azure diferentes.

Solution:

  • Verifique se a sua aplicação 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 implementar réplicas regionais de APIs para aplicações globais

Desempenho da fonte de dados

Problema: Os pedidos de API são lentos mesmo quando a API está aquecida e as regiões alinhadas.

Porque é que isto acontece: A API do GraphQL funciona como uma interface de consulta sobre as suas fontes de dados. Se a fonte de dados subjacente apresentar problemas de desempenho — como índices em falta, consultas complexas ou restrições de recursos — a API herda essas limitações.

Solution:

  1. Teste diretamente: Consulte diretamente a fonte de dados (usando SQL ou outras ferramentas nativas) para estabelecer uma base de desempenho
  2. Otimize a fonte de dados:
  3. Capacidade adequada: Garanta que os seus SKUs de capacidade Fabric fornecem recursos computacionais suficientes. Consulte os conceitos do Microsoft Fabric para orientações sobre como selecionar a capacidade adequada.

Desenho de consultas

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

Por que motivo isto acontece:

  • Superextração: Requisitar mais campos do que o necessário aumenta o tempo de processamento
  • Aninhamento profundo: Consultas com muitos níveis de relações aninhadas requerem múltiplas execuções do resolvedor
  • Filtros em falta: Consultas sem filtros adequados podem devolver dados excessivos

Solution:

  • Pede apenas os campos de que precisas na tua consulta GraphQL
  • Limite a profundidade das relações hierarquicamente aninhadas sempre que possível
  • Use filtros e paginação adequados nas suas consultas
  • Considere dividir consultas complexas em múltiplas consultas mais simples quando apropriado