O que é a transformação de dados no Azure Databricks?
A transformação de dados é o processo de conversão, limpeza e estruturação de dados em um formato utilizável. A transformação de dados normalmente segue a arquitetura Databricks medalhão de refinar incrementalmente dados brutos em um formato consumível pela empresa.
O diagrama a seguir mostra um pipeline de dados contendo uma série de transformações de dados que transformam o conjunto de dados raw_customers
no conjunto de dados clean_customers
descartando dados de clientes sem nome de cliente neste exemplo. Os dados raw_transactions
são transformados em clean_transactions
ao descartar transações com um valor zero em dólares. Um conjunto de dados resultante chamado sales_report
é a junção do clean_customers
e clean_transactions
. Os analistas podem usar sales_report
para análises e business intelligence.
Tipos de transformações de dados
O Databricks considera dois tipos de transformações de dados: declarativa e processual. O pipeline de dados no exemplo anterior pode ser expresso usando qualquer um dos paradigmas.
As transformações declarativas se concentram no resultado desejado e não em como alcançá-lo. Você especifica a lógica da transformação usando abstrações de nível superior e a DLT determina a maneira mais eficiente de executá-la.
As transformações de dados processuais concentram-se na realização de cálculos através de instruções explícitas. Esses cálculos definem a sequência exata de operações para manipular os dados. A abordagem processual proporciona um maior controlo sobre a execução, mas à custa de uma maior complexidade e de uma maior manutenção.
Escolher entre transformação de dados declarativa e processual
A transformação declarativa de dados usando DLT é melhor quando:
- Você precisa de desenvolvimento e implantação rápidos.
- Seus pipelines de dados têm padrões padrão que não exigem controle de baixo nível sobre a execução.
- Você precisa de verificações de qualidade de dados integradas.
- A manutenção e a legibilidade são as principais prioridades.
A transformação de dados processuais usando o código Apache Spark é melhor quando:
- Você está migrando uma base de código existente do Apache Spark para o Databricks.
- Você precisa de um controle refinado sobre a execução.
- Você precisa de acesso a APIs de baixo nível, como
MERGE
ouforeachBatch
. - Você precisa gravar dados em Kafka ou tabelas Delta externas.