Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
- Inicie sessão no portal Microsoft Fabric com uma conta de administrador
- Selecione o ícone de Ajuda (?) no canto superior direito
- No fundo do painel de Ajuda, selecione Sobre o Tecido
- 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:
Abra o espaço de trabalho que aloja a sua API para o GraphQL
Ir a Definições> do WorkspaceInformação da licença
Encontre a região sob Capacidade de Licença
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:
- Exemplo de script de teste de desempenho (caderno Python)
- Objetos de sessão HTTP em Python
- Diretrizes HttpClient para .NET
Recolha métricas significativas
Para uma avaliação de desempenho precisa:
- Automatizar testes: Utilize scripts ou ferramentas de teste de desempenho para executar testes de forma consistente durante um período definido
- Aqueça a API: Execute várias consultas de teste antes de medir o desempenho (ver Requisitos de aquecimento)
- 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
- Teste sob carga: Meça o desempenho com volumes realistas de pedidos concorrentes
- 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:
- Teste diretamente: Consulte diretamente a fonte de dados (usando SQL ou outras ferramentas nativas) para estabelecer uma base de desempenho
-
Otimize a fonte de dados:
- Adicione índices apropriados para colunas frequentemente consultadas
- Considere o armazenamento de dados certo para o seu caso de uso: Guia de decisão Fabric – escolha um armazenamento de dados
- Revise os planos de execução das consultas para oportunidades de otimização
- 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