Pular para o conteúdo principal

Cargas de trabalho recomendadas para DLT

Este artigo descreve as cargas de trabalho recomendadas para DLT em Databricks.

ingestão de dados

A DLT pode ingerir dados de fontes somente de anexos e fontes que contêm alterações, como feeds de captura de dados de alterações (CDC) (CDC). As tabelas de transmissão oferecem suporte à funcionalidade para ambos os tipos de dados de origem.

Ingerir dados da fonte de dados somente de anexo

As tabelas de transmissão são recomendadas para a ingestão de dados somente de anexos. Somente anexar significa que somente novos dados são adicionados aos dados de origem, e os dados existentes nunca são atualizados ou excluídos. Exemplos de dados somente para anexar incluem:

  • Uma tabela Delta com a propriedade de tabela delta.appendOnly = true.
  • Um local de armazenamento em nuvem que recebe novos arquivos periodicamente.
  • Um tópico do Kafka com eventos.

Para saber mais sobre a ingestão de dados com DLT e tabelas de transmissão, incluindo exemplos, consulte Carregar dados com DLT.

Ingira dados de uma única fonte somente para anexos

Uma tabela de transmissão pode receber dados de qualquer fonte de dados append-only.

As cargas de trabalho DLT são uma fonte somente para anexos.

Ingira dados de várias fontes somente para anexos

O senhor também pode ingerir dados de várias fontes de dados somente de anexos em uma tabela de transmissão. Por exemplo, o senhor pode gravar eventos de vários tópicos do site Kafka em uma única tabela de transmissão. Para fazer isso, defina a consulta da tabela de transmissão para ler de uma fonte e, para as outras fontes, use append flows.

O DLT carrega várias fontes somente para anexos.

Ingerir dados históricos de uma fonte somente de anexos

O senhor pode usar um backfill quando tiver um dataset existente que ingere dados de uma fonte append-only e deseja anexar dados históricos ao dataset exatamente uma vez. Para fazer isso, carregue os dados históricos usando uma consulta de fluxo de acréscimo. Veja o preenchimento.

As cargas de trabalho DLT acrescentam somente a origem com um preenchimento único.

Processar feeds de dados de alteração e Snapshot do banco de dados

A Databricks recomenda o uso da DLT para processar feeds de dados de alteração (CDF) que contêm sequências de alterações potencialmente fora de ordem de uma ou mais tabelas. Os feeds de dados de alteração são produzidos pelas tabelas Delta, além de sistemas como Debezium, Qlik e Amazon DMS. O senhor pode usar Python ou SQL para processar um feed de dados de alteração com o DLT.

Databricks Também é recomendável usar a DLT quando, em vez de um feed de dados de alteração, o senhor precisar processar o Snapshot do banco de dados, como o Snapshot gerado a partir de um banco de dados Oracle, um banco de dados MySQL ou um data warehouse. O processamento do banco de dados Snapshot é suportado pela interface DLT Python.

Para processar um CDF, use a API APPLY CHANGES. Consulte Como o CDC é implementado com a APPLY CHANGES API?

Feed de mudanças contínuas de cargas de trabalho DLT.

Para processar o Snapshot do banco de dados, use o APPLY CHANGES FROM SNAPSHOT API. Consulte Como o CDC é implementado com a APPLY CHANGES FROM SNAPSHOT API?

Sequência DLT de Snapshot completo.

transformação de dados

A DLT oferece duas soluções para a transformação de dados. As visualizações materializadas são uma boa opção para default, pois sempre fornecem o resultado correto e reprocessam automaticamente os dados de origem, se necessário. As tabelas de transmissão são recomendadas para transformações de baixa complexidade em transmissões muito grandes e são recomendadas para casos de uso avançado.

transformação de dados com materialized view

A visualização materializada é o default recomendado para transformações em DLT. Eles são simples e precisos. No entanto, a desvantagem é a latência mais alta, pois a visualização materializada pode processar todos os dados de entrada para garantir que as consultas no site view materializado retornem o resultado correto.

Transformar uma única tabela com uma tabela materializada view

Um view materializado pode ler de uma tabela Delta ou de uma tabela de transmissão e realizar transformações arbitrárias nos dados de entrada. A visualização materializada pode ler todas as tabelas do site Delta, inclusive as produzidas por sistemas diferentes do Databricks, o que as torna úteis para migrações e pipeline híbrido.

DLT materializado view para uma única tabela.

unir uma tabela de fatos com uma tabela de dimensões (transmissão-Snapshot join) com uma tabela materializada view

A visualização materializada pode realizar uma união eficiente e incremental entre uma tabela Delta básica ou uma tabela de transmissão e uma tabela Delta "lookup". Essas uniões serão processadas de forma incremental sempre que possível. O senhor não precisa usar marcas d'água com a visualização materializada e a transmissão-Snapshot join.

DLT materializado view transmissão-Snapshot join.

unir duas tabelas de fatos (transmissão-transmissão join)

A visualização materializada pode realizar uma união eficiente e incremental entre duas tabelas de transmissão ou tabelas Delta. Isso é conhecido como transmissão-transmissão join, e a visualização materializada a executará de forma incremental sempre que possível. O senhor não precisa usar marcas d'água com a visualização materializada e a união de transmissão-transmissão.

DLT materializado view transmissão-Snapshot join.

transformação de dados com tabelas de transmissão

As tabelas de transmissão são recomendadas quando o senhor precisa transformar dados de transmissão de grande volume com baixa latência.

Transformar uma única tabela com uma tabela de transmissão

As tabelas de transmissão podem ser usadas para a transformação de dados de qualquer tabela Delta ou de outra tabela de transmissão.

A seguinte advertência se aplica a esse caso de uso:

  • Quando o senhor atualiza a definição da tabela de transmissão, os dados existentes na tabela de transmissão não serão atualizados para refletir a alteração, a menos que o senhor a atualize totalmente para refresh.

DLT transforma uma única tabela.

unir uma tabela de fatos com uma tabela de dimensões (transmissão-Snapshot join) usando uma tabela de transmissão

As tabelas de transmissão podem join uma tabela de fatos com uma tabela de dimensões.

As seguintes advertências se aplicam a esse caso de uso:

  • Quando o senhor atualiza a definição da tabela de transmissão, os dados existentes na tabela de transmissão não serão atualizados para refletir a alteração, a menos que o senhor a atualize totalmente para refresh.
  • Quando o senhor atualiza a tabela de pesquisa, os dados existentes na tabela de transmissão não serão atualizados para refletir a alteração, a menos que o senhor a atualize totalmente em refresh.

DLT transmissão table transmission-Snapshot join.

unir duas tabelas de fatos (transmissão-transmissão join) usando uma tabela de transmissão

As tabelas de transmissão podem join duas ou mais tabelas de fatos, também conhecidas como transmissão-transmissão join.

As seguintes advertências se aplicam a esse caso de uso:

  • Quando o senhor atualiza a definição da tabela de transmissão, os dados existentes na tabela de transmissão não serão atualizados para refletir a alteração, a menos que o senhor a atualize totalmente para refresh.
  • Para evitar erros de falta de memória, o senhor deve usar marcas d'água em ambos os lados do site join e em agregações.
  • Dados fora de ordem e de chegada tardia não são tratados, o que pode levar a dados imprecisos. Por isso, você precisa lidar manualmente com dados fora de ordem e de chegada tardia.

Consulte Usar marcas d'água com união de transmissão-transmissão.

Tabela de transmissão DLT transmissão-transmissão join.