Esta é uma publicação colaborativa entre Databricks e Matillion. Agradecemos a David Willmer, Product Marketing da Matillion, por suas contribuições.
À medida que mais e mais clientes modernizam seu Enterprise Data Warehouse legado e plataformas ETL mais antigas, eles estão procurando adotar uma pilha de dados moderna na nuvem usando a Databricks Lakehouse Platform e o Matillion para ETL baseado em GUI. A plataforma ELT visual e de baixo código da Matillion facilita a integração de dados de qualquer fonte no Databricks SQL Warehouse, tornando os dados de análise e IA prontos para os negócios e mais rápidos.
Este blog mostrará como criar um pipeline de ETL que carrega uma Dimensão de Alteração Lenta (SCD) Tipo 2 usando Matillion na Databricks Lakehouse Platform. O Matillion tem uma interface de usuário moderna baseada em navegador com funcionalidade ETL/ELT push-down. Você pode integrar facilmente seus warehouses ou clusters Databricks SQL com o Matillion. Agora, se você está se perguntando como se conectar ao Matillion usando o Databricks, a maneira mais fácil de fazer isso é usar o Partner Connect, que simplifica o processo de conexão de um SQL warehouse ou cluster existente em seu espaço de trabalho Databricks ao Matillion. Aqui estão os passos detalhados.
Uma SCD Tipo 2 é uma técnica comum para preservar o histórico em uma tabela de dimensão usada em toda a arquitetura de modelagem/data warehousing. As linhas inativas têm um sinalizador booleano, como a coluna ACTIVE_RECORD definida como 'F' ou uma data de início e término. Todas as linhas ativas são exibidas retornando uma consulta onde a data de término é nula ou ACTIVE_RECORD diferente de 'F'
Matillion ETL para Delta Lake no Databricks usa uma abordagem de duas etapas para gerenciar dimensões de alteração lenta do tipo 2. Essa abordagem de duas etapas envolve primeiro identificar as alterações nos registros de entrada e sinalizá-las em uma tabela ou visualização temporária. Depois que todos os registros de entrada são sinalizados, as ações podem ser tomadas na tabela de dimensão de destino para concluir a atualização.
Agora, vamos dar uma olhada mais de perto na implementação das transformações SCD Tipo 2 usando Matillion, onde seu destino é uma tabela Delta Lake e a op ção de computação subjacente usada é um Databricks SQL Warehouse.
Ao analisarmos a Etapa 1 abaixo, o pipeline de ETL lê os dados de nossa tabela de dimensão Delta Lake existente e identifica apenas os registros mais atuais ou ativos (este é o fluxo de dados inferior). Ao mesmo tempo, leremos todos os nossos novos dados, certificando-nos de que a chave primária pretendida seja exclusiva para não interromper o processo de detecção de alterações (este é o fluxo de dados superior). Esses dois caminhos então convergem para o componente de detecção de alterações.
Dentro do Matillion ETL, o componente Detect Changes é um mecanismo central para determinar as atualizações e inserções para registros alterados. Ele compara um conjunto de dados de entrada com um conjunto de dados de destino e determina se os registros são Idênticos, Alterados, Novos ou Excluídos usando uma lista de colunas de comparação configuradas dentro do componente. Cada registro do novo conjunto de dados é avaliado e recebe um Campo Indicador na saída do componente Detect Changes - 'I' para Idêntico, 'C' para Alterado, 'N' para Novo e 'D' para Excluído.
A ação final na Etapa 1 desta abordagem de duas etapas é adicionar uma data de carregamento a cada registro antes de gravar cada novo registro, agora sinalizado com seu indicador de alteração, em uma tabela Delta Lake de dimensão temporária. Isso se tornará a entrada da Etapa 2.
Ao passarmos para a Etapa 2, começamos lendo a tabela de dimensão intermediária ou temporária em nosso lakehouse. Usaremos o Campo Indicador que foi derivado do componente Detect Changes e criaremos 3 caminhos separados usando um componente Filter simples. Não faremos nada para registros idênticos (identificados com um 'I'), pois nenhuma alteração é necessária, então esses registros são filtrados. Para sermos explícitos em nossa explicação neste blog, deixamos este caminho. Ainda assim, seria desnecessário para fins práticos, a menos que algo específico precisasse ser feito com esses registros.
O próximo caminho, para registros Novos ou Alterados, gerará um novo registro atual para cada registro novo ou alterado identificado. O componente Filter processa apenas os registros com um 'N' (para Novo) ou 'C' (para Alterado) conforme identificado pelo componente Detect Changes. O componente Rename atua como um mapeador de coluna para mapear os dados alterados dos campos dos novos registros (identificados pelo prefixo compare_) para os nomes de coluna reais conforme definidos pela tabela de dimensão de destino Delta Lake. Finalmente, o componente "New fields" é um componente Calculator configurado para definir o timestamp de expiração dos registros ativos como "infinito", identificando-os assim como o registro mais atual.
O caminho final é fechar ou expirar os registros existentes identificados como Alterados ou Excluídos. Lembre-se, no SCD2, as alterações são adicionadas como um novo registro (conforme descrito no caminho Novo ou Alterado acima) e, portanto, cada registro anterior deve ser marcado como expirado ou inativo. Da mesma forma, os registros excluídos precisam de uma data de expiração para que não sejam mais identificados como ativos. Aqui, o caminho Alterado ou Excluído processa cada 'C' (para Alterado) ou 'D' (para Excluído) mapeando as colunas apropriadas que identificam exclusivamente o registro para expiração. Uma vez identificado, a data de expiração é definida para o timestamp atual e a atualização é feita dentro da tabela de dimensão de destino Delta Lake.
Mostramos como implementar dimensões de alteração lenta na plataforma Databricks Lakehouse usando a integração de dados de baixo código/sem código do Matillion. É uma excelente opção para todas as organizações que preferem ferramentas ETL baseadas em GUI, como o Matillion, para implementar e manter pipelines de engenharia de dados, ciência de dados e machine learning na nuvem. Ele realmente desbloqueia o poder do Delta Lake no Databricks e melhora a produtividade de dados, oferecendo o desempenho, a velocidade e a escalabilidade para impulsionar sua análise de dados na nuvem.
Se você deseja saber mais sobre a integração do Matillion e Databricks, sinta-se à vontade para consultar a documentação detalhada aqui.
Experimente o Databricks gratuitamente por 14 dias.
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
