Práticas recomendadas de configuração de computação

Este artigo descreve recomendações para definir configurações de computação opcionais. Para reduzir as decisões de configuração, o Azure Databricks recomenda tirar proveito das 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 é dimensionada de acordo com a sua carga de trabalho. Consulte Tipos de computação.

  • As políticas de computação permitem criar 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 espaço de trabalho. Consulte 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 fornecem recomendações para casos de uso típicos.

Nota

Este artigo pressupõe que você tenha criação irrestrita de cluster. Os administradores do espaço de trabalho só devem conceder esse privilégio a usuários avançados.

Considerações sobre dimensionamento de computação

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 do trabalhador, 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?

Responder a essas perguntas ajudará você a determinar as configurações de computação ideais com base em cargas de trabalho.

Há um equilíbrio entre o número de trabalhadores e o tamanho dos tipos de instância de trabalho. Configurar computação com dois trabalhadores, cada um com 40 núcleos e 100 GB de RAM, tem a mesma computação e memória que configurar computação com 10 núcleos e 25 GB de RAM.

Exemplos de dimensionamento 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.

Análise de dados

Os analistas de dados normalmente executam o processamento que requer 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 de disco necessária para executar esses embaralhamentos.

Se você estiver escrevendo apenas SQL, a melhor opção para análise de dados será um armazém SQL sem servidor.

Nota

Se seu espaço de trabalho estiver habilitado para a visualização pública de computação sem servidor, você poderá usar computação sem servidor para executar análises em Python ou SQL. Consulte Computação sem servidor para blocos de anotações.

Se você precisar configurar uma nova computação, uma computação de nó único com um tipo de VM grande provavelmente será a melhor escolha, especialmente 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 otimizados para armazenamento com cache de disco habilitado.

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.
  • Considere o uso de pools, que permitirão restringir a computação a tipos de instância pré-aprovados e garantir configurações de computação consistentes.

ETL em lote básico

Nota

Se seu espaço de trabalho estiver habilitado para computação sem servidor para fluxos de trabalho (Visualização Pública), você poderá usar a computação sem servidor para executar seus trabalhos. Consulte Computação sem servidor para blocos de anotações.

Trabalhos de ETL em lote simples que não exigem grandes transformações, como junções ou agregações, normalmente se beneficiam de tipos de trabalho otimizados para computação.

Os trabalhadores otimizados para computação têm requisitos mais baixos de memória e armazenamento e podem resultar em economia de custos em relação a outros tipos de trabalho.

ETL em lote complexo

Nota

Se seu espaço de trabalho estiver habilitado para computação sem servidor para fluxos de trabalho (Visualização Pública), você poderá usar a computação sem servidor para executar seus trabalhos. Consulte Computação sem servidor para blocos de anotações.

Para um trabalho de ETL complexo, como um que requer sindicatos e se junta em várias tabelas, a Databricks recomenda reduzir o número de trabalhadores para reduzir a quantidade de dados embaralhados.

Transformações complexas podem ser intensivas em termos de computação. Se você observar erros significativos de derramamento para disco ou OOM, você deve adicionar nós adicionais.

O Databricks recomenda tipos de trabalho otimizados para computação. Os trabalhadores otimizados para computação têm requisitos mais baixos de 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.

Treinar modelos de aprendizagem automática

O Databricks recomenda computação de nó único com um tipo de nó grande para experimentação inicial com modelos de aprendizado de máquina de treinamento. Ter menos nós reduz o impacto dos embaralhamentos.

Adicionar mais trabalhadores pode ajudar na estabilidade, mas você deve evitar adicionar muitos trabalhadores devido à sobrecarga de embaralhar dados.

Os tipos de trabalho recomendados são armazenamento otimizado com cache de disco habilitado para contabilizar leituras repetidas dos mesmos dados e habilitar o cache de dados de treinamento. Se as opções de computação e armazenamento fornecidas pelos nós otimizados para armazenamento não forem suficientes, considere os nós otimizados para GPU. Uma possível desvantagem é a falta de suporte ao cache de disco com esses nós.

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 pools, que permitirão restringir a computação a tipos de instância pré-aprovados e garantir configurações de computação consistentes.