Tipos de tabela do Databricks Unity Catalog

O Unity Catalog suporta três tipos principais de tabelas: geridas, externas e estrangeiras. Cada tipo difere na forma como os dados são armazenados, geridos e governados.

Tabelas gerenciadas

As tabelas geridas são o tipo de tabela padrão e recomendado. O Unity Catalog gere o ciclo de vida dos dados, a localização do armazenamento e as otimizações. Quando se elimina uma tabela gerida, tanto os metadados como os ficheiros de dados subjacentes são eliminados.

As tabelas geridas são suportadas por Delta Lake ou Apache Iceberg e proporcionam:

  • Otimização automática para redução dos custos de armazenamento e computação
  • Desempenho de consultas mais rápido em todos os tipos de clientes
  • Manutenção automática da tabela
  • Acesso seguro para clientes não-Databricks através de APIs abertas
  • Atualizações automáticas para as funcionalidades mais recentes da plataforma

Os ficheiros de dados são armazenados no esquema ou catálogo que contém a tabela. Ver tabelas geridas pelo Unity Catalog em Azure Databricks para Delta Lake e Apache Iceberg.

Tabelas externas

Tabelas externas referem-se a dados armazenados em armazenamento de objetos na cloud que tu geres. O Unity Catalog regula o acesso aos dados, mas não gere o ciclo de vida dos dados, as otimizações ou o layout do armazenamento. Quando se elimina uma tabela externa, apenas os metadados do catálogo são removidos e os ficheiros de dados subjacentes permanecem.

As tabelas externas do Unity Catalog suportam os formatos Delta Lake, CSV, JSON, AVRO, PARQUET, ORC e TEXT. A Databricks recomenda que utilize o formato Delta Lake porque tem garantias transacionais e otimizações de desempenho que os outros formatos não têm.

Use tabelas externas quando precisar:

  • Registar dados existentes que não sejam compatíveis com tabelas geridas do Unity Catalog
  • Fornecer acesso direto a dados a partir de clientes que não sejam Databricks e que não suportem outros padrões de acesso externos

Consulte Trabalhar com tabelas externas.

Tabelas estrangeiras

Tabelas estrangeiras (também chamadas tabelas federadas) são tabelas apenas de leitura geridas por um catálogo estrangeiro registado no Catálogo Unity. Sistemas externos gerem os dados e metadados, enquanto o Unity Catalog adiciona governação de dados para consultas.

O Azure Databricks suporta dois métodos para registar tabelas estrangeiras:

  • Federação de consultas: Utiliza ligações JDBC seguras a sistemas de dados externos como PostgreSQL e MySQL
  • Federação de catálogos: Liga catálogos externos para consultar dados diretamente no armazenamento de ficheiros

As tabelas estrangeiras que utilizam o formato Delta Lake não possuem muitas otimizações disponíveis nas tabelas geridas pelo Unity Catalog. Para cargas de trabalho de produção ou conjuntos de dados frequentemente consultados, migre para tabelas geridas pelo Unity Catalog para melhor desempenho. Veja Trabalhar com tabelas estrangeiras.

Comparação de tipos de tabelas

A tabela seguinte compara os três tipos de tabelas:

Feature Tabelas gerenciadas Tabelas externas Tabelas estrangeiras
Gerenciamento do ciclo de vida dos dados Unity Catalog gerencia Tu consegues Sistema externo gerir
Local de armazenamento Unity Catalog gerencia Tu especificas Sistema externo gerir
Otimizações automáticas Yes Limited No
Formatos suportados Lago Delta, Icebergue Apache Delta Lake (recomendado), CSV, JSON, AVRO, PARQUET, ORC, TEXTO Depende do sistema externo
Dados eliminados em DROP TABLE Yes No No
Melhor para Cargas de trabalho de produção, dados frequentemente consultados Integrações legadas, dados existentes Migração de sistemas externos, acesso temporário

Outros tipos de tabelas

O Azure Databricks também suporta tipos de tabelas especializados para casos de uso específicos:

  • Tabelas de streaming: conjuntos de dados Lakeflow Spark Declarative Pipelines apoiados por Delta Lake com lógica de processamento incremental
  • Vistas materializadas: conjuntos de dados Lakeflow Spark Declarative Pipelines apoiados pelo Delta Lake que materializam resultados de consulta usando lógica de fluxo gerido

Tipos de tabelas legadas

Os seguintes tipos de tabelas legadas são suportados para compatibilidade retroativa, mas não são recomendados para novos desenvolvimentos.

Tabelas do Hive

As tabelas Hive são geridas pelo metastore herdado do Hive e utilizam padrões herdados, incluindo codecs SerDe do Hive e sintaxe SQL do Hive. Por defeito, as tabelas registadas usando o metastore Hive antigo armazenam dados na raiz legada do DBFS.

O Databricks recomenda que migre todas as tabelas do HMS antigo para o Unity Catalog. Consulte Objetos de base de dados na metastore herdada do Hive.

Podes opcionalmente federar uma metastore Hive para o Unity Catalog e aceder às tabelas como tabelas estrangeiras no Unity Catalog. Consulte Federação de Metastore do Hive: ativar o Unity Catalog para governar tabelas registadas num metastore do Hive.

O Apache Spark suporta o registo e consulta de tabelas Hive, mas os codecs Hive SerDe não estão otimizados para Azure Databricks. Regista tabelas Hive apenas quando precisar de suportar consultas a dados escritos por sistemas externos. Consulte tabela Hive (legado).

Tabelas em Tempo Real

O termo tabelas ativas refere-se a uma implementação anterior de funcionalidades agora disponíveis como vistas materializadas. Atualize o código legado que faz referência a tabelas ativas para usar a sintaxe da visualização materializada. Veja Pipelines Declarativas do Lakeflow Spark e Vistas Materializadas.