Práticas recomendadas de configuração de computação
Este artigo descreve as recomendações para definir configurações de computação opcionais. Para reduzir as decisões de configuração, o Azure Databricks recomenda aproveitar as políticas de computação e computação sem servidor.
A computação sem servidor não requer a definição de configurações de computação. A computação sem servidor está sempre disponível e é escalada de acordo com a sua carga de trabalho. Confira Tipos de computação.
As políticas de computação permitem criar a computação pré-configurada projetada para casos de uso específicos, como computação pessoal, computação compartilhada, usuários avançados e trabalhos. Se você não tiver acesso às políticas, entre em contato com o administrador do workspace. Confira Políticas padrão e famílias de políticas.
Se você optar por criar computação com suas próprias configurações, as seções abaixo fornecerão recomendações para casos de uso típicos.
Observação
Este artigo pressupõe que você tenha a criação irrestrita do cluster. Os administradores do workspace só devem conceder este privilégio a usuários avançados.
Considerações sobre o dimensionamento da computação
As pessoas costumam pensar no tamanho da computação em termos do número de trabalhos, mas existem outros fatores importantes a considerar:
- Total de núcleos de executor (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 quantos dados podem ser armazenados na memória antes de serem despejados no disco.
- Armazenamento local do executor: o tipo e a quantidade de armazenamento em disco local. O disco local usado principalmente no caso de despejos 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, pense no seguinte:
- Quantos dados sua carga de trabalho consumirá?
- Qual é a complexidade computacional de sua carga de trabalho?
- De onde você está lendo dados?
- Como os dados são particionados no armazenamento externo?
- De quanto paralelismo você precisa?
Responder a essas perguntas ajudará você a determinar as configurações de computação ideais com base em cargas de trabalho.
Há um ato de balanceamento entre o número de trabalhadores e o tamanho dos tipos de instância de trabalho. Configurar a computação com dois trabalhos, cada um com 16 núcleos e 128 GB de RAM, resulta na mesma computação e memória que configurar a computação com 8 funções de trabalho, 4 núcleos e 32 GB de RAM.
Exemplos de tamanhos 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 para evitar e por que essas configurações não são adequadas para os tipos de carga de trabalho.
Análise de dados
Os analistas de dados normalmente executam o processamento exigindo dados de várias partições, levando a muitas operações de embaralhamento. A computação com um número menor de nós pode reduzir a E/S de rede e o disco necessários para executar esses embaralhamentos.
Se você estiver escrevendo apenas SQL, a melhor opção para análise de dados será um SQL warehouse sem servidor.
Observação
Se o workspace estiver habilitado para a computação sem servidor para notebooks e trabalhos, você poderá usar a computação sem servidor para executar a análise em Python ou SQL. Consulte Conectar-se ao computador sem servidor.
Se você precisar configurar uma nova computação, uma computação de nó único com um tipo de VM grande provavelmente será a melhor opção, especialmente para um único analista.
Cargas de trabalho analíticas provavelmente exigirão a leitura dos mesmos dados repetidamente; portanto, os tipos de nó recomendados são otimizados para armazenamento com o cache de disco habilitado.
Recursos adicionais recomendados para cargas de trabalho analíticas incluem:
- Habilite a terminação automática 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.
- Pense em usar os pools, que permitirão limitar as computações aos tipos de instância pré-aprovados e garantir configurações de computação consistentes.
ETL de lote básico
Observação
Se o workspace estiver habilitado para computação sem servidor para trabalhos, você poderá usar a computação sem servidor para executar seus trabalhos. Confira Executar seu trabalho do Azure Databricks com computação sem servidor para fluxos de trabalho.
Trabalhos simples de ETL em lote que não exigem grandes transformações, como junções ou agregações, normalmente se beneficiam de tipos de trabalho com otimização de computação.
Os trabalhadores com otimização de computação têm requisitos mais baixos para memória e armazenamento e podem resultar em economia de custos em relação a outros tipos de trabalho.
ETL de lote complexo
Observação
Se o workspace estiver habilitado para computação sem servidor para trabalhos, você poderá usar a computação sem servidor para executar seus trabalhos. Confira Executar seu trabalho do Azure Databricks com computação sem servidor para fluxos de trabalho.
Para um trabalho complexo de ETL, como um que exige uniões e junções em várias tabelas, o Databricks recomenda reduzir o número de trabalhadores para reduzir a quantidade de dados embaralhados.
Transformações complexas podem ser de computação intensiva. Se você observar um despejo significativo no disco ou erros de OOM, você deverá adicionar mais nós.
O Databricks recomenda tipos de trabalho com otimização de computação. Os trabalhadores com otimização de computação têm requisitos mais baixos para memória e armazenamento e podem resultar em economia de custos em relação a outros tipos de trabalho. Opcionalmente, use pools para diminuir os tempos de inicialização de computação e reduzir o tempo de execução total ao executar pipelines de trabalho.
Treinamento de modelos de machine learning
O Databricks recomenda computação de nó único com um tipo de nó grande para experimentação inicial com modelos de modelo de machine learning de treinamento. Ter menos nós reduz o impacto de embaralhamentos.
Adicionar mais trabalhadores pode ajudar com a estabilidade, mas você deve evitar adicionar muitos trabalhadores devido à sobrecarga de embaralhar dados.
Os tipos de trabalho recomendados são otimizados para armazenamento com o cache de disco habilitado para considerar leituras repetidas dos mesmos dados e habilitar o cache de dados de treinamento. Se as opções de computação e armazenamento fornecidas por nós otimizados para armazenamento não são suficientes, considere nós otimizados para GPU. Uma possível desvantagem é a falta de suporte ao cache de disco com esses nós.
Entre os recursos adicionais recomendados para cargas de trabalho de machine learning estão:
- Habilite a terminação automática para garantir que a computação seja encerrada após um período de inatividade.
- Use os pools, que permitirão limitar as computações aos tipos de instância pré-aprovados e garantir configurações de computação consistentes.