Partilhar via


Recomendações de configuração de computação

Este artigo inclui recomendações e práticas recomendadas relacionadas à configuração de computação.

Se sua carga de trabalho for suportada, o Databricks recomenda o uso de computação sem servidor em vez de configurar seu próprio recurso de computação. A computação sem servidor é a opção de computação mais simples e confiável. Não requer configuração, está sempre disponível e é dimensionado de acordo com a sua carga de trabalho. A computação sem servidor é uma opção de processamento para notebooks, jobs e Lakeflow Spark Declarative Pipelines. Consulte Conectar-se à computação sem servidor.

Além disso, os analistas de dados podem usar armazéns SQL sem servidor para consultar e explorar dados no Databricks. Consulte O que são armazéns SQL sem servidor?.

Selecione um modo de acesso apropriado

A computação clássica polivalente e de trabalhos tem uma configuração de modo de acesso que determina quem pode anexar e usar o recurso de computação. No Unity Catalog, a computação deve usar o modo de acesso padrão ou dedicado.

A computação padrão pode ser compartilhada por vários usuários e grupos, ao mesmo tempo em que impõe o isolamento do usuário e todas as permissões de acesso a dados em nível de usuário e grupo. Isso o torna uma opção mais fácil de gerenciar e econômica para a maioria das cargas de trabalho, especialmente aquelas que impõem controle de acesso refinado.

A computação dedicada é recomendada se você precisar de acesso a recursos não disponíveis na computação padrão, como APIs RDD, instâncias de GPU, R ou Databricks Container Service. Para obter mais informações, consulte Requisitos e limitações de computação padrão.

Usar políticas de computação

Se você estiver criando uma nova computação do zero, o 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.

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.

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?

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 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 seção (além do treinamento de aprendizado de máquina) poderiam se beneficiar do uso de computação sem servidor em vez de criar um novo recurso de computação. Se sua carga de trabalho não for suportada no serverless, use as recomendações abaixo para ajudar a configurar seu recurso de computação.

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 trabalho de ETL complexo, como um que requer uniões e junções em várias tabelas, a Databricks recomenda o uso 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, use pools para reduzir o tempo de inicialização e diminuir o tempo total de execução ao executar pipelines de tarefas.

Treinar modelos de aprendizagem automática

Para treinar modelos de aprendizado de máquina, a Databricks recomenda a criação de um recurso de computação usando a política de computação pessoal.

Você deve usar uma 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 das redistribuições.

Adicionar mais trabalhadores pode ajudar na estabilidade, mas deve-se evitar adicionar muitos trabalhadores devido à sobrecarga de redistribuir 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.
  • Utilize pools, que permitirão restringir o uso de recursos de computação ao tipo de instância pré-aprovado.
  • Garanta configurações de computação consistentes usando políticas.