Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página descreve as melhores práticas para configurar recursos de computação clássicos. Para a maioria das novas cargas de trabalho, a Databricks recomenda o uso de computação serverless, que não requer configuração. Se a sua carga de trabalho não for suportada em computação serverless (ver limitações serverless), utilize as seguintes melhores práticas para configurar um recurso de computação clássico.
Nota
Os fluxos de trabalho de Streaming estruturado têm recomendações de configuração específicas. Consulte Considerações sobre produção para Streaming estruturado.
Modo de acesso
Os recursos de computação clássicos podem ser atribuídos a modo de acesso padrão ou dedicado, que determina quem pode ligar-se e usar o recurso de computação.
A Databricks recomenda usar o modo de acesso padrão para a maioria das cargas de trabalho. A computação padrão pode ser partilhada por múltiplos utilizadores e grupos, ao mesmo tempo que se aplica o isolamento do utilizador e todas as permissões de acesso a dados. Isto torna-o uma opção mais fácil de gerir e económica para a maioria das cargas de trabalho.
Só use o modo de acesso dedicado se a sua carga de trabalho tiver limitações de computação padrão específicas, como ML Runtime na GPU, APIs RDD ou R. Para mais informações, consulte Requisitos e limitações de computação padrão.
Se o Unity Catalog estiver ativado, não defina spark.databricks.passthrough.enabled. Credential passthrough é um modo de acesso legado que não é compatível com o Unity Catalog.
Consulte Modos de acesso.
Versão do Databricks Runtime
Use a versão mais recente de suporte a longo prazo (LTS) Databricks Runtime. As versões LTS recebem patches de segurança estendidos e correções de bugs, garantindo que as suas cargas de trabalho se mantenham estáveis e compatíveis com as funcionalidades mais recentes da plataforma.
Só seleciona um runtime de machine learning se a tua carga de trabalho usar GPUs, treino de ML distribuído ou AutoML. O Databricks Runtime for ML instala um grande conjunto de bibliotecas que podem entrar em conflito com as suas próprias dependências se não forem necessárias, causando erros ou problemas de correção silenciosa. Consulte Treinar modelos de IA e ML.
Higiene da configuração
Estas práticas mantêm as suas configurações de computação limpas e as cargas de trabalho portáteis.
Evite usar scripts de init
Os scripts de init podem introduzir comportamentos inesperados, incluindo conflitos de bibliotecas que quebram cargas de trabalho e tornam os ambientes menos previsíveis. Em vez disso, adicione bibliotecas às suas políticas de computação, use %pip install em cadernos ou defina dependências numa especificação de ambiente. Veja Adicionar bibliotecas a uma política.
Evite codificar configurações do Spark de forma fixa
Evite codificar fixamente configurações Spark (como spark.executor.memory ou spark.dynamicAllocation.*) em definições de computação ou de trabalho. Valores codificados fixamente sobrepõem-se às otimizações incorporadas que o Azure Databricks fornece, frequentemente levando a gastos desperdiçados ou desempenho degradado. Só uses configurações de sessão específicas do notebook quando tiveres um motivo específico para substituir uma predefinição.
Evite caminhos de armazenamento computacionais locais
Não armazene dados em caminhos computacionais locais, que não persistem para além do ciclo de vida da computação. Em vez disso, utilize volumes do Catálogo Unity ou armazenamento temporário. Consulte O que são volumes?.
Evite montagens do DBFS
Os suportes DBFS não possuem listas de controlo de acesso (ACLs) adequadas. Em vez disso, utilize volumes do Unity Catalog ou sistemas de ficheiros da área de trabalho (WSFS). Veja O que são volumes?.
Evite instalar bibliotecas de âmbito de computação
Instalar bibliotecas ao nível de computação cria desvio do ambiente entre tarefas. Em vez disso, use %pip install em cadernos ou defina dependências numa especificação de ambiente. Isto também facilita a migração das cargas de trabalho clássicas para serverless.
Desempenho
Avalie se você se beneficiaria do Photon
Muitas cargas de trabalho se beneficiam do Photon, mas ele é mais benéfico para cargas de trabalho SQL e operações de DataFrame que envolvem transformações complexas, como junções, agregações e verificações de dados em tabelas grandes. Cargas de trabalho com acesso frequente ao disco, tabelas amplas ou processamento repetido de dados também apresentam desempenho aprimorado.
Trabalhos de ETL em lote simples que não envolvem grandes transformações ou grandes volumes de dados podem ter um impacto mínimo ao habilitar o Photon, especialmente se as consultas normalmente forem concluídas em menos de dois segundos.
Utilizar dimensionamento automático
Configure o dimensionamento automático para que as tarefas de longa duração possam adicionar e remover dinamicamente nós de trabalho durante as execuções das tarefas. Veja Ativar o dimensionamento automático.
Utilize conjuntos de instâncias para reduzir os tempos de arranque
Os conjuntos de instâncias reservam recursos de computação do seu fornecedor de serviços na cloud. Os pools reduzem o tempo de início dos novos clusters e garantem a disponibilidade dos recursos de computação. Consulte Referência de configuração do pool.
Otimização de custos
Usar políticas de computação
O Azure Databricks recomenda o uso de políticas de computação. As políticas de computação permitem criar recursos de computação pré-configurados projetados para fins específicos, como computação pessoal, computação compartilhada, usuários avançados e trabalhos. As políticas limitam as decisões que você precisa tomar ao definir as configurações de computação.
Se você não tiver acesso às políticas, entre em contato com o administrador do espaço de trabalho. Consulte Políticas padrão e famílias de políticas.
Usar instâncias spot
Configure instâncias spot para cargas de trabalho com requisitos de latência flexíveis, de modo a otimizar os custos. Consulte Instâncias spot.
Considerações sobre dimensionamento de computação
Nota
As recomendações a seguir partem do princípio que tem criação irrestrita de clusters. Os administradores do espaço de trabalho só devem conceder esse privilégio a usuários avançados.
As pessoas geralmente pensam no tamanho do cálculo em termos do número de trabalhadores, mas há outros fatores importantes a considerar:
- Total de núcleos executores (computação): O número total de núcleos em todos os executores. Isso determina o paralelismo máximo de uma computação.
- Memória total do executor: A quantidade total de RAM em todos os executores. Isso determina a quantidade de dados que podem ser armazenados na memória antes de vazá-los para o disco.
- Armazenamento local do executor: o tipo e a quantidade de armazenamento em disco local. O disco local é usado principalmente no caso de derramamentos durante embaralhamentos e cache.
Considerações adicionais incluem o tipo e o tamanho da instância de trabalho, que também influenciam os fatores acima. Ao dimensionar sua computação, considere:
- Quantos dados sua carga de trabalho consumirá?
- Qual é a complexidade computacional da sua carga de trabalho?
- De onde você está lendo os dados?
- Como os dados são particionados no armazenamento externo?
- De quanto paralelismo você precisa?
Existe um equilíbrio entre o número de trabalhadores e o tamanho dos tipos de instâncias de trabalhadores. Configurar computação com dois trabalhadores, cada um com 16 núcleos e 128 GB de RAM, tem a mesma computação e memória que configurar computação com 8 trabalhadores, cada um com 4 núcleos e 32 GB de RAM.
Exemplos de configuração de computação
Os exemplos a seguir mostram recomendações de computação com base em tipos específicos de cargas de trabalho. Esses exemplos também incluem configurações a serem evitadas e por que essas configurações não são adequadas para os tipos de carga de trabalho.
Nota
Todos os exemplos nesta secção poderiam beneficiar de usar computação serverless em vez de criar um novo recurso de computação. Se a sua carga de trabalho não for suportada em serverless, use as recomendações abaixo para ajudar a configurar o seu recurso de computação clássico.
Análise de dados
Os analistas de dados normalmente realizam o processamento que necessita de dados de várias partições, levando a muitas operações de shuffle. Um recurso de computação com um número menor de nós maiores pode reduzir a E/S de rede e disco necessária para executar essas redistribuições.
Uma computação de nó único com um tipo de VM grande é provavelmente a melhor escolha, particularmente para um único analista.
As cargas de trabalho analíticas provavelmente exigirão a leitura dos mesmos dados repetidamente, portanto, os tipos de nó recomendados são o armazenamento otimizado com cache de disco habilitado ou instâncias com armazenamento local.
Os recursos adicionais recomendados para cargas de trabalho analíticas incluem:
- Habilite o encerramento automático para garantir que a computação seja encerrada após um período de inatividade.
- Considere habilitar o dimensionamento automático com base na carga de trabalho típica do analista.
ETL em lote básico
Para trabalhos de ETL em lote simples que não exigem grandes transformações, como junções ou agregações, use instâncias com requisitos mais baixos de memória e armazenamento. Isso pode resultar em economia de custos em relação a outros tipos de trabalhadores.
ETL em lote complexo
Para um processo ETL complexo, como um que exige operações UNION e JOIN entre várias tabelas, o Azure Databricks recomenda a utilização de menos workers para reduzir a quantidade de dados redistribuídos. Para compensar ter menos trabalhadores, aumente o tamanho de suas instâncias.
Transformações complexas podem ser intensivas em termos de computação. Se você observar erros significativos de derramamento para disco ou OOM, aumente a quantidade de memória disponível em suas instâncias.
Opcionalmente, utilize pools de instâncias para diminuir os tempos de lançamento de computação e diminuir o tempo total de execução ao executar pipelines de trabalhos.
Treinar modelos de aprendizagem automática
Para treinar modelos de aprendizagem automática, o Azure Databricks recomenda criar um recurso de computação usando a política de computação pessoal.
Utilize a computação de nó único com um tipo de nó grande para a experimentação inicial. Ter menos nós reduz o impacto das redistribuições.
Adicionar mais trabalhadores pode ajudar na estabilidade, mas evite adicionar demasiados trabalhadores devido à sobrecarga de embaralhar dados.
Os tipos de trabalho recomendados são armazenamento otimizado com cache de disco habilitado ou uma instância com armazenamento local para contabilizar leituras repetidas dos mesmos dados e habilitar o cache de dados de treinamento.
Recursos adicionais recomendados para cargas de trabalho de aprendizado de máquina incluem:
- Habilite o encerramento automático para garantir que a computação seja encerrada após um período de inatividade.
- Use conjuntos de instâncias, que permitem restringir a capacidade de computação a um tipo de instância pré-aprovado.
- Garanta configurações de computação consistentes usando políticas.