Capítulo 5. Particionar dados
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
O particionamento é definido como "o ato de dividir; separação pela criação de um limite que divide ou mantém separado". O particionamento de dados é utilizado em ferramentas como o Spark, o Amazon Athena e o Google BigQuery para melhorar o desempenho da execução de consultas. Para escalar soluções de Big Data, os dados são divididos em partições que podem ser geridas, acedidas e executadas separadamente e em paralelo.
Conforme discutido nos capítulos anteriores deste livro, o Spark divide os dados em pedaços menores, chamados partições, e depois processa essas partições de forma paralela (muitas partições podem ser processadas simultaneamente) usando executores nos nós de trabalho. Por exemplo, se a tua entrada tiver 100 mil milhões de registos, o Spark pode dividi-la em 10.000 partições, em que cada partição terá cerca de 10 milhões de elementos:
-
Total de registos: 100,000,000,000
-
Número de partições: 10,000
-
Número de elementos por partição: 10,000,000
-
Paralelismo máximo possível: 10.000
Nota
Por padrão, o Spark implementa o particionamento baseado em hash com um HashPartitioner, que usa a função Object.hashCode() do Java.
O particionamento de dados pode melhorar a capacidade de gerenciamento e escalabilidade, reduzir a contenção e otimizar o desempenho. Suponha que tens dados de temperatura por hora para cidades em ...