Cargas de trabalho recomendadas para Delta Live Tables
Este artigo descreve as cargas de trabalho recomendadas para Delta Live Tables em Databricks.
Ingestão de dados
Delta Live Tables 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 Delta Live Tables e tabelas de transmissão, incluindo exemplos, consulte Carregar dados com Delta Live Tables.
Ingira dados de uma única fonte somente para anexos
Uma tabela de transmissão pode receber dados de qualquer fonte de dados append-only.
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.
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.
Processar feeds de dados de alteração e Snapshot do banco de dados
A Databricks recomenda o uso do Delta Live Tables 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 por 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 Delta Live Tables.
Databricks Também recomenda o uso do Delta Live Tables 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 Delta Live Tables Python .
Para processar um CDF, use a API APPLY CHANGES
. Consulte Como o CDC é implementado com a API APPLY CHANGES?
Para processar o Snapshot do banco de dados, use o APPLY CHANGES FROM SNAPSHOT
API. Consulte Como o site CDC é implementado com a opção APPLY CHANGES FROM Snapshot API?
transformação de dados
O Delta Live Tables 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 Delta Live Tables. Eles são simples e precisos. No entanto, sua 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 visualização materializada
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.
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.
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.
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.
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.
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.