Partilhar via


O que é Delta Live Tables?

Nota

O Delta Live Tables requer o plano Premium. Entre em contato com sua equipe de conta Databricks para obter mais informações.

O Delta Live Tables é uma estrutura declarativa projetada para simplificar a criação de pipelines de extração, transformação e carga (ETL) confiáveis e fáceis de manter. Você especifica quais dados ingerir e como transformá-los, e o Delta Live Tables automatiza os principais aspetos do gerenciamento de seu pipeline de dados, incluindo orquestração, gerenciamento de computação, monitoramento, imposição de qualidade de dados e tratamento de erros.

O Delta Live Tables é construído no Apache Spark, mas em vez de definir seus pipelines de dados usando uma série de tarefas separadas do Apache Spark, você define tables de streaming e materializou views que o sistema deve criar e as consultas necessárias para preencher e update esses tables de streaming e materializados views.

Para saber mais sobre os benefícios de criar e executar os seus pipelines de ETL com o Delta Live Tables, consulte a página de produto Delta Live Tables.

benefícios do Delta Live Tables em comparação com o Apache Spark

O Apache Spark é um mecanismo de análise unificado de código aberto versátil, incluindo ETL. O Delta Live Tables se baseia no Spark para lidar com tarefas específicas e comuns de processamento de ETL. O Delta Live Tables pode acelerar significativamente seu caminho para a produção quando seus requisitos incluem essas tarefas de processamento, incluindo:

  • Ingerir dados de fontes típicas.
  • Transformação incremental de dados.
  • Realização de captura de dados de alteração (CDC).

No entanto, o Delta Live Tables é inadequado para implementar alguns tipos de lógica processual. Por exemplo, requisitos de processamento como gravar em um table externo ou incluir uma condicional que opera em armazenamento de arquivos externo ou banco de dados tables não podem ser executados dentro do código que define um conjunto de dados Delta Live Tables. Para implementar o processamento não suportado pelo Delta Live Tables, o Databricks recomenda usar o Apache Spark ou incluir o pipeline em um trabalho do Databricks que executa o processamento em uma tarefa de trabalho separada. Consulte tarefa de pipeline do Delta Live Tables para trabalhos.

A seguinte table compara o Delta Live Tables com o Apache Spark:

Capacidade Delta Live Tables Apache Spark
Transformações de dados Você pode transformar dados usando SQL ou Python. Você pode transformar dados usando SQL, Python, Scala ou R.
Processamento incremental de dados Muitas transformações de dados são processadas automaticamente de forma incremental. Você deve determinar quais dados são novos para que possa processá-los incrementalmente.
Orquestração As transformações são orquestradas automaticamente na ordem correta. Você deve certificar-se de que as diferentes transformações sejam executadas na ordem correta.
Paralelismo Todas as transformações são executadas com o nível correto de paralelismo. Você deve usar threads ou um orquestrador externo para executar transformações não relacionadas em paralelo.
Tratamento de erros As falhas são repetidas automaticamente. Você deve decidir como lidar com erros e tentativas.
Monitorização As métricas e eventos são registrados automaticamente. Você deve escrever código para coletar métricas sobre execução ou qualidade de dados.

Conceitos-chave do Delta Live Tables

A ilustração a seguir mostra os componentes importantes de um pipeline Delta Live Tables, seguido por uma explicação de cada um.

Delta Live Tables conceitos-chave.

Streaming table

Um table de streaming é um table Delta que tem um ou mais fluxos gravando nele. Os tables de streaming são comumente usados para ingestão porque processam dados de entrada exatamente uma vez e podem processar grandes volumes de dados somente de acréscimo. Streaming tables são também úteis para a transformação de fluxos de dados de grande volume e baixa latência.

Vista materializada

Uma vista materializada é uma vista que contém registos pré-calculados com base na consulta que define a vista materializada. Os registos na visualização materializada são atualizados automaticamente pelo Delta Live Tables com base na agenda update ou nos gatilhos do pipeline. Cada vez que uma vista materializada é atualizada, é garantido que terá os mesmos resultados que executar a consulta definidora sobre os dados mais recentes disponíveis. No entanto, isso geralmente é feito sem recalcular desde o início o resultado completo, usando refreshincremental. Os objetos materializados views são frequentemente usados para transformações.

Views

Todos os views no Azure Databricks computam resultados de conjuntos de dados de origem à medida que são consultados, aproveitando otimizações de cache quando disponíveis. O Delta Live Tables não publica views para o catalog, portanto, os views podem ser referenciados apenas no pipeline em que estão definidos. Views são úteis como consultas intermediárias que não devem ser expostas a usuários finais ou sistemas. O Databricks recomenda o uso de views para impor restrições de qualidade de dados ou transformar e enriquecer conjuntos de dados que geram várias consultas downstream.

Gasoduto

Um pipeline é uma coleção de tables de transmissão contínua e views materializados que são atualizados em conjunto. Esses tables de streaming e views materializados são declarados em arquivos de origem Python ou SQL. Um pipeline também inclui uma configuração que define a computação utilizada para update o streaming tables e a materialização views quando o pipeline é executado. Semelhante a como um modelo Terraform define a infraestrutura em sua conta de nuvem, um pipeline Delta Live Tables define os conjuntos de dados e transformações para seu processamento de dados.

Como os conjuntos de dados Delta Live Tables processam dados?

O seguinte table descreve como os dados são processados através dos processos de materialização views, streaming tables, e views.

Tipo de conjunto de dados Como os registros são processados por meio de consultas definidas?
Streaming table Cada registo é processado exatamente uma vez. Isso pressupõe uma fonte somente de acréscimo.
Vista materializada Os registros são processados conforme necessário para retornar resultados precisos para o estado atual dos dados. Os views materializados devem ser usados para tarefas de processamento de dados, como transformações, agregações ou consultas lentas de pré-computação e cálculos usados com frequência.
Vista Os registros são processados sempre que a exibição é consultada. Use views para transformações intermediárias e verificações de qualidade de dados que não devem ser publicadas em conjuntos de dados públicos.

Declare os seus primeiros conjuntos de dados no Delta Live Tables

O Delta Live Tables introduz uma nova sintaxe para Python e SQL. Para aprender as noções básicas da sintaxe de pipeline, consulte Desenvolver código de pipeline com Python e Desenvolver código de pipeline com SQL.

Nota

O Delta Live Tables separa as definições de conjunto de dados do processamento de update, e os notebooks Delta Live Tables não se destinam à execução interativa.

Como você configura os pipelines Delta Live Tables?

As configurações para os pipelines Delta Live Tables dividem-se em duas grandes categorias:

  1. Configurações que definem uma coleção de blocos de anotações ou arquivos (conhecidos como código-fonte) que usam a sintaxe Delta Live Tables para declarar conjuntos de dados.
  2. Configurações que controlam a infraestrutura de pipeline, o gerenciamento de dependências, como as atualizações são processadas e como tables são salvas no espaço de trabalho.

A maioria das configurações é opcional, mas algumas exigem atenção cuidadosa, especialmente ao configurar pipelines de produção. Estas incluem o seguinte:

  • Para disponibilizar dados fora do pipeline, você deve declarar um de destino publicar no metastore do Hive ou um de destino e de destino para publicar no Unity .
  • As permissões de acesso a dados são configuradas através do cluster usado para execução. Verifique se o cluster tem as permissões apropriadas configuradas para as fontes de dados e para o local de armazenamento de destino , caso especificado.

Para obter detalhes sobre como usar Python e SQL para escrever código-fonte para pipelines, consulte a referência da linguagem Delta Live SQL Tables e a referência da linguagem Delta Live Python Tables.

Para obter mais informações sobre definições e configurações de pipeline, consulte Configurar um pipeline Delta Live Tables.

Implante seu primeiro pipeline e acione atualizações

Antes de processar dados com o Delta Live Tables, você deve configurar um pipeline. Depois que um pipeline é configurado, você pode acionar um update para calcular resultados para cada conjunto de dados em seu pipeline. Para get começou a usar pipelines Delta Live Tables, consulte Tutorial: Corra o seu primeiro pipeline Delta Live Tables.

O que é um pipeline update?

Os pipelines implementam a infraestrutura e recalculam o estado dos dados quando se inicia um update. Um update faz o seguinte:

  • Inicia um cluster com a configuração correta.
  • Descobre todos os tables e views definidos e verifica se há erros de análise, como nomes de column inválidos, dependências ausentes e erros de sintaxe.
  • Cria ou atualiza tables e views com os dados mais recentes disponíveis.

Os pipelines podem ser executados continuamente ou em um cronograma, dependendo dos requisitos de custo e latência do seu caso de uso. Consulte Executar um update em um pipeline Delta Live Tables.

Ingerir dados com o Delta Live Tables

O Delta Live Tables dá suporte a todas as fontes de dados disponíveis no Azure Databricks.

A Databricks recomenda usar o streaming tables na maioria dos casos de uso de ingestão. Para arquivos que chegam no armazenamento de objetos na nuvem, a Databricks recomenda o Auto Loader. Consegue ingerir dados diretamente com o Delta Live Tables da maioria dos barramentos de mensagens.

Para obter mais informações sobre como configurar o acesso ao armazenamento em nuvem, consulte Configuração de armazenamento em nuvem.

Para formatos não suportados pelo Auto Loader, você pode usar Python ou SQL para consultar qualquer formato suportado pelo Apache Spark. Consulte Carregar dados com Delta Live Tables.

Monitorar e impor a qualidade dos dados

Você pode usar expectativas para especificar controles de qualidade de dados no conteúdo de um conjunto de dados. Ao contrário de um CHECKconstraint em um banco de dados tradicional, que impede a adição de registros que falham no constraint, as expectativas fornecem flexibilidade ao processar dados que não cumprem os requisitos de qualidade de dados. Essa flexibilidade permite que você processe e armazene dados que você espera que sejam confusos e dados que devem atender a rigorosos requisitos de qualidade. Consulte Gerenciar a qualidade dos dados com as expectativas do pipeline.

O Delta Live Tables amplia a funcionalidade do Delta Lake. Como os tables, criados e geridos pela Delta Live Tables, são os Delta tables, eles têm as mesmas garantias e recursos fornecidos pela Delta Lake. Veja O que é Delta Lake?.

O Delta Live Tables adiciona várias propriedades table, além das muitas propriedades table que podem ser set no Lago Delta. Consulte a referência de propriedades Delta Live Tables e a referência de propriedades Delta table.

Como tables são criados e gerenciados pelo Delta Live Tables

O Azure Databricks gerencia automaticamente tables criados com o Delta Live Tables, determinando como as atualizações precisam ser processadas para calcular corretamente o estado atual de um table e executando várias tarefas de manutenção e otimização.

Para a maioria das operações, deve-se permitir que o Delta Live Tables processe todas as atualizações, inserções e exclusões no tablede destino. Para obter detalhes e limitações, consulte Reter exclusões ou atualizações manuais.

Tarefas de manutenção realizadas pela Delta Live Tables

O Delta Live Tables executa tarefas de manutenção dentro de 24 horas após a atualização de um table. A manutenção pode melhorar o desempenho da consulta e reduzir os custos removendo versões antigas do tables. Por padrão, o sistema executa uma operação de OPTIMIZE completa seguida por VACUUM. Você pode desativar para um definindo nas propriedades do para o . As tarefas de manutenção são executadas somente se um pipeline update tiver sido executado nas 24 horas anteriores ao agendamento das tarefas de manutenção.

Limitações

Para obter uma list de limitações, consulte Delta Live Tables Limitações.

Para obter uma list de requisitos e limitações específicos para usar o Delta Live Tables com o Unity Catalog, consulte Usar o Unity Catalog com os seus pipelines do Delta Live Tables

Recursos adicionais