Pular para o conteúdo principal

Práticas recomendadas para serverless compute

Siga estas recomendações para maximizar a produtividade, reduzir custos e melhorar a confiabilidade ao usar compute serverless para Notebooks, Jobs e pipelines no Databricks.

Migração de cargas de trabalho para serverless compute

Para garantir o isolamento do código do usuário no ambiente compute serverless compartilhado, Databricks utiliza o Lakeguard para isolar o código do usuário do mecanismo Spark e de outros usuários.

Por isso, algumas cargas de trabalho exigem alterações de código para continuar funcionando na compute serverless . Para obter uma lista de limitações, consulte Limitações compute sem servidor.

Algumas cargas de trabalho são mais fáceis de migrar do que outras. As cargas de trabalho que atenderem aos seguintes requisitos serão as mais fáceis de migrar:

  • Os dados que estão sendo acessados devem ser armazenados no Unity Catalog.
  • A carga de trabalho deve ser compatível com computepadrão.
  • A carga de trabalho deve ser compatível com Databricks Runtime 14.3 ou acima.

Para testar se uma carga de trabalho funcionará em compute serverless , execute-a em um recurso compute clássico com modo de acesso padrão e um Databricks Runtime de 14.3 ou superior. Se a execução for bem-sucedida, a carga de trabalho estará pronta para migração.

Databricks recomenda priorizar a compatibilidade compute serverless ao criar novas cargas de trabalho. Para cargas de trabalho existentes que exigem alterações de código, migre-as incrementalmente como parte do seu ciclo regular de desenvolvimento e manutenção.

Especificar versões do pacote Python

Ao migrar para compute serverless , pin seu pacote Python em versões específicas para garantir ambientes reproduzíveis. Se você não especificar uma versão, o pacote poderá ser resolvido para uma versão diferente com base na versão do ambiente serverless , o que pode aumentar a latência, pois novos pacotes precisam ser instalados.

Por exemplo, seu arquivo requirements.txt deve incluir versões específicas do pacote, como esta:

Text
numpy==2.2.2
pandas==2.2.3

Use nomes exclusivos para visualizações temporárias.

compute sem servidor utiliza Spark Connect, uma arquitetura cliente-servidor que avalia visualizações temporárias de forma preguiçosa. Esse comportamento difere da arquitetura clássica Spark e pode causar erros quando o código reutiliza o mesmo nome view temporária, como em um loop.

Para evitar erros, use nomes únicos para todas as visualizações temporárias em seu código.

Redes e conectividade

compute sem servidor não suporta o peering VPC , que é uma maneira comum de conectar Databricks clássico à compute de dados em sua account cloud . Como alternativa, utilize as configurações de conectividade de rede para gerenciar endpoints, firewalls e conectividade com serviços externos.

nota

Serviços de armazenamento de objetos como Amazon S3 são serviços regionais que não utilizam VPCs e, portanto, não são afetados por essa limitação.

Por exemplo, você pode adicionar um conjunto de IPs de saída estáveis em VPCs externas a uma lista de permissões para habilitar a conectividade de e para compute serverless Databricks . Para conectar-se a aplicativos corporativos (como o Salesforce) ou gerenciar bancos de dados (como MySQL), use LakeFlow Connect.

Para restringir e monitorar o tráfego de saída compute serverless , configure os controles de saída para seu workspace. Consulte as políticas de gerenciamento de rede para controle de saída serverless.

versões de ambiente sem servidor

compute sem servidor usa versões de ambiente em vez das versões tradicionais Databricks Runtime . Isso representa uma mudança na forma como você gerencia a compatibilidade da carga de trabalho:

  • AbordagemDatabricks Runtime : você seleciona uma versão específica Databricks Runtime para sua carga de trabalho e gerencia as atualizações manualmente para manter a compatibilidade.
  • Abordagem sem servidor : você escreve o código para uma versão de ambiente específica e Databricks atualiza o servidor subjacente de forma independente.

As versões de ambiente fornecem uma API de cliente estável que garante a compatibilidade da sua carga de trabalho, enquanto o Databricks oferece, de forma independente, melhorias de desempenho, aprimoramentos de segurança e correções de bugs sem exigir alterações de código em suas cargas de trabalho.

Cada versão do ambiente inclui biblioteca de sistema, recursos e correções de bugs atualizados, mantendo a compatibilidade com versões anteriores para as cargas de trabalho. O Databricks oferece suporte a cada versão de ambiente por três anos a partir da data de lançamento, proporcionando um ciclo de vida previsível para o planejamento de atualizações.

Para selecionar uma versão de ambiente para sua carga de trabalho serverless , consulte Selecionar um ambiente base. Para obter detalhes sobre as versões de ambiente disponíveis e seus recursos, consulte Versões de ambiente sem servidor.

gerenciar dependências

compute sem servidor não suporta script de inicialização. Em vez disso, utilize ambientesserverless para instalar e gerenciar bibliotecas para suas cargas de trabalho serverless . O ambiente armazena em cache o pacote instalado, o que reduz a latência startup para execuções subsequentes.

Para usar a biblioteca a partir de um repositório privado, configure URLs pré-assinadas para acesso autenticado ao repositório nas configurações do seu ambiente.

Selecione um modo de desempenho

Databricks serverless compute oferece dois modos de desempenho que permitem equilibrar velocidade e custo com base no tipo de carga de trabalho, conforme descrito a seguir:

  • Modo otimizado para desempenho (default): Ideal para cargas de trabalho interativas que exigem tempos startup rápidos. Databricks mantém um pool de recursos compute disponíveis para minimizar o tempo de espera.
  • Modo padrão : Ideal para trabalho em lote automatizado e pipelines que toleram tempos startup mais longos, de 4 a 6 minutos. O modo padrão pode reduzir os custos em até 70% em comparação com o modo otimizado para desempenho. O modo padrão está disponível para Jobs LakeFlow e para o pipeline declarativo LakeFlow Spark , mas não para Notebooks.

Escolha o modo que melhor se adapte às suas necessidades de carga de trabalho. Para tarefas agendadas em que a latência startup não é crítica, o modo Padrão normalmente oferece a melhor relação custo-benefício. Para obter detalhes sobre os preços atuais, consulte a página de preços do Databricks.

Otimize cargas de trabalho de transmissão

compute sem servidor suporta transmissão estruturada com as seguintes considerações:

  • O modo de gatilho Trigger.AvailableNow é compatível com todos os trabalhos e pipelines serverless . Intervalos de disparo baseados em tempo não são suportados.

  • Ao usar Trigger.AvailableNow, cada gatilho processa todos os dados disponíveis na fonte, o que pode resultar em micro-lotes maiores do que um gatilho baseado em tempo. Para evitar erros de falta de memória e manter um desempenho previsível, limite a quantidade de dados processados por microlotes definindo maxFilesPerTrigger ou maxBytesPerTrigger.

Depurar cargas de trabalho serverless

A Spark UI não está disponível em compute serverless . Em vez disso, use o perfil de consulta para analisar o desempenho da consulta e solucionar problemas de carga de trabalho. O perfil da consulta fornece informações detalhadas sobre a execução e pode ser acessado no histórico de consultas da interface do usuário Databricks .

Ingestão de dados de sistemas externos

As estratégias alternativas que você pode usar para ingestão incluem:

Alternativas de ingestão

Ao usar o site serverless compute, o senhor também pode usar o seguinte recurso para consultar os dados sem movê-los.

  • Se o senhor quiser limitar a duplicação de dados ou garantir que está consultando os dados mais recentes possíveis, a Databricks recomenda o uso do Delta Sharing. Consulte O que é Delta Sharing?
  • Para relatórios ad hoc e trabalhos de prova de conceito, o Lakehouse Federation permite consultar bancos de dados externos diretamente do Databricks sem mover dados, gerenciado pelo Unity Catalog. Veja O que é a Federação Lakehouse?.

Experimente um ou ambos os recursos e veja se eles atendem aos requisitos de desempenho de sua consulta.

Configurações compatíveis com o Spark

Para automatizar a configuração de Spark em serverless compute, Databricks removeu o suporte para a definição manual da maioria das configurações de Spark. Para view uma lista dos parâmetros de configuração Spark suportados, consulte Configurar Spark propriedades para serverless Notebook e Job.

Job A execução em serverless compute falhará se o senhor definir uma configuração não suportada em Spark.

Monitorar o custo de serverless compute

Há vários recursos que o senhor pode usar para ajudá-lo a monitorar o custo do serverless compute: