Conceitos de tabelas do Azure Databricks

O Azure Databricks suporta três tipos principais de tabelas (geridas, externas e estrangeiras) e dois formatos de armazenamento aberto (Delta Lake e Apache Iceberg). Escolher a combinação certa determina como os dados são armazenados, governados e otimizados.

Uma tabela do Azure Databricks reside em um esquema e contém linhas de dados. O tipo de tabela padrão criado no Azure Databricks é uma tabela gerenciada pelo Catálogo Unity.

Formatos de armazenamento

Os formatos de armazenamento definem como os dados são fisicamente estruturados e acompanhados no armazenamento de objetos.

O Azure Databricks dá suporte a dois formatos principais de armazenamento de tabela aberta:

  • Delta Lake é o formato de armazenamento padrão para tabelas gerenciadas e externas no Azure Databricks. O Delta também é suportado para tabelas estrangeiras.
  • O Apache Iceberg é suportado para tabelas geridas e estrangeiras no Azure Databricks. Este formato é útil quando você está se integrando com o ecossistema Iceberg.

Ambos os formatos adicionam uma camada de armazenamento transacional que rastreia metadados e suporta conformidade com Atomicidade, Consistência, Isolamento e Durabilidade (ACID), viagens no tempo e outras funcionalidades.

Tipos de tabela

Os tipos de tabela no Azure Databricks definem como os dados são de propriedade e acessados.

O Azure Databricks suporta três tipos principais de tabelas. Os tipos de tabelas são determinados pelo catálogo que detém e gere os ficheiros de dados subjacentes, conforme descrito na tabela seguinte:

Tipo de tabela Gerenciando catálogo Suporte de leitura/gravação Otimização do desempenho Otimização dos custos de armazenamento
Gerido Catálogo Unity Yes Yes Yes
Temporary Nenhum (tabela gerida com âmbito de sessão) Yes Yes Yes
externa Nenhum (apenas ficheiros) Yes Apenas manual Apenas manual
Estrangeiros Um sistema externo ou serviço de catálogo Apenas Leitura Não Não

Para informações sobre como selecionar o tipo de tabela correto para o seu caso de uso, consulte Selecionar um tipo de tabela.

Tabelas gerenciadas

Para tabelas geridas, o Unity Catalog gere tanto os ficheiros de dados como os metadados das tabelas. Os ficheiros de dados são armazenados na localização de armazenamento gerido do Unity Catalog na cloud. As tabelas gerenciadas do Unity Catalog são o padrão quando você cria tabelas no Azure Databricks.

O Databricks recomenda que você use tabelas gerenciadas sempre que criar uma nova tabela. As tabelas geridas implementam automaticamente melhorias de desempenho, reduzem custos de armazenamento e computação, e permitem o acesso a sistemas externos, como o Trino. Consulte Tabelas gerenciadas.

O exemplo seguinte mostra uma tabela gerida nomeada prod.people_ops_employees que contém dados sobre cinco funcionários:

Tabela de exemplo contendo dados de funcionários

Tabelas externas

Tabelas externas, por vezes chamadas tabelas não geridas, referenciam dados armazenados num sistema de armazenamento externo, como o armazenamento de objetos na cloud. O Azure Databricks regista os metadados da tabela mas não gere os ficheiros de dados subjacentes. O Unity Catalog suporta tabelas externas em vários formatos, incluindo o Delta Lake, que permite lê-las com sistemas externos. Consulte Tabelas externas.

Tabelas estrangeiras

As tabelas estrangeiras representam dados armazenados em sistemas externos conectados ao Azure Databricks por meio da Lakehouse Federation. As tabelas estrangeiras são só de leitura no Azure Databricks. Consulte Tabelas estrangeiras.

Tabelas temporárias

Tabelas temporárias são tabelas com âmbito de sessão que armazenam dados durante a duração de uma sessão Azure Databricks. São úteis para materializar resultados intermédios sem criar tabelas permanentes no seu catálogo. O Azure Databricks elimina automaticamente tabelas temporárias quando a sessão termina, e não precisas de privilégios de catálogo ou esquema para as criar. Ver tabelas temporárias em Databricks SQL e Databricks Runtime.

Selecione um tipo de tabela

Use tabelas geridas para a maioria das novas tabelas. O Azure Databricks automatiza a otimização, a gestão do ciclo de vida do armazenamento e o acesso externo.

Utilize tabelas externas quando:

  • Precisa de registar dados existentes no armazenamento na cloud sem os mover.
  • Necessita de acesso direto baseado em caminhos a partir de clientes não Azure Databricks.
  • Está a trabalhar com formatos de ficheiros não suportados por tabelas geridas, como CSV ou JSON.
  • Eliminar a tabela não deve eliminar os ficheiros de dados subjacentes.

Utilize tabelas externas quando precisar de acesso apenas de leitura a dados de um sistema externo ligado através do Lakehouse Federation, como o metastore do Hive ou o catálogo do AWS Glue.

Para formato de armazenamento, o Delta Lake é o padrão e recomendado para a maioria das cargas de trabalho. Use o Apache Iceberg ao integrar com sistemas externos que requerem o formato Iceberg.

Tabelas no Unity Catalog

No Unity Catalog, as tabelas existem no terceiro nível do espaço de nomes de três níveis (catalog.schema.table), como mostrado no diagrama seguinte:

Diagrama de modelo de objeto do Unity Catalog, focado na tabela

Permissões básicas de tabela

A maioria das operações em tabelas requer USE CATALOG e USE SCHEMA permissões no catálogo e no esquema que contêm uma tabela.

A tabela a seguir resume as permissões adicionais necessárias para operações de tabela comuns no Unity Catalog:

Funcionamento Permissions
Criar uma tabela CREATE TABLE sobre o esquema que contém
Consultar uma tabela SELECT em cima da mesa
Atualizar, excluir, mesclar ou inserir dados em uma tabela SELECT e MODIFY em cima da mesa. Alternativamente, conceda acesso de escrita mais detalhado com os privilégios INSERT, UPDATE, e DELETE (Beta). Consulte Privilégios DML detalhados.
Eliminar uma tabela MANAGE em cima da mesa
Substituir uma tabela MANAGE na tabela, CREATE TABLE no esquema que contém

Para referência à sintaxe SQL destas operações, veja:

Para obter mais informações sobre as permissões do Catálogo Unity, consulte Gerenciar privilégios no Catálogo Unity.