Pular para o conteúdo principal

Databricks Unity Catalog Tipos de Tabela

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

Tabelas gerenciadas

As tabelas gerenciadas são o tipo de tabela default e recomendado. O Unity Catalog gerencia o ciclo de vida dos dados, o local de armazenamento e as otimizações. Quando uma tabela gerenciada é descartada, tanto os metadados quanto os arquivos de dados subjacentes são excluídos.

Tabelas gerenciadas são suportadas pelo Delta Lake ou Apache Iceberg e fornecem:

  • Otimização automática para redução de custos de armazenamento e compute
  • Desempenho mais rápido de queries em todos os tipos de cliente
  • Manutenção automática de tabela
  • Acesso seguro para clientes que não são do Databricks por meio de APIs abertas
  • Atualizações automáticas para os recursos mais recentes da plataforma

Arquivos de dados são armazenados no esquema ou catálogo que contém a tabela. Consulte tabelas gerenciadas do Unity Catalog no Databricks para Delta Lake e Apache Iceberg.

Tabelas externas

Tabelas externas registram dados armazenados em armazenamento de objetos em cloud que você gerencia. O Unity Catalog governa o acesso a dados, mas não gerencia o ciclo de vida dos dados, as otimizações ou a disposição de armazenamento. Quando se descarta uma tabela externa, apenas os metadados são removidos e os arquivos de dados subjacentes permanecem.

As tabelas externas do Unity Catalog suportam o formato Delta Lake (recomendado) e os formatos CSV, JSON, AVRO, Parquet, ORC e TEXT. As tabelas externas que não são Delta não possuem as garantias transacionais e as otimizações de desempenho do Delta Lake.

Use tabelas externas quando for necessário:

  • Cadastrar dados existentes que não são compatíveis com tabelas gerenciadas do Unity Catalog
  • Fornecer acesso direto a dados de clientes que não são do Databricks e que não oferecem suporte a outros padrões de acesso externo.

Consulte Trabalhar com tabelas externas.

Tabelas externas

Tabelas externas (também chamadas de tabelas federadas) são registradas utilizando o Unity Catalog como parte de um catálogo externo. Sistemas externos gerenciam os dados e metadados, enquanto o Unity Catalog adiciona governança de dados para consulta.

Databricks oferece suporte a dois métodos para o registro de tabelas externas:

  • Federação de consultas : Usa conexões JDBC seguras para sistemas de dados externos como PostgreSQL e MySQL
  • Federação de catálogos : Conecta catálogos externos para consultar dados diretamente no armazenamento de arquivos

Tabelas estrangeiras suportadas pelo Delta Lake carecem de muitas otimizações disponíveis em tabelas gerenciadas do Unity Catalog. Para cargas de trabalho de produção ou datasets frequentemente consultados, migre para tabelas gerenciadas do Unity Catalog para um melhor desempenho. Consulte Trabalhar com tabelas externas.

Comparação de tipos de tabela

A tabela a seguir compara os três tipos de tabela:

Recurso

Tabelas gerenciadas

Tabelas externas

Tabelas externas

Gerenciamento do ciclo de vida dos dados

Unity Catalog gerencia

Gerencia

Sistema externo gerencia

Localização de armazenamento

Unity Catalog gerencia

Especifica-se

Sistema externo gerencia

Otimizações automáticas

Sim

Limitado

Não

Formatos compatíveis

Delta Lake, Apache Iceberg

Delta Lake (recomendado), CSV, JSON, AVRO, PARQUET, ORC, TEXT

Depende do sistema externo

Dados excluídos em DROP TABLE

Sim

Não

Não

Melhor para

Cargas de trabalho de produção, dados de queries frequentes

Integrações legadas, dados existentes

Migração de sistemas externos, acesso temporário

Outros tipos de tabela

O Databricks também oferece suporte a tipos de tabela especializados para casos de uso específicos:

  • Tabelas de transmissão : Datasets de pipelines declarativos do LakeFlow Spark baseados em Delta Lake com lógica de processamento incremental.
  • Visões materializadas : datasets do LakeFlow Spark Declarative Pipelines apoiados por Delta Lake que materializam resultados de consulta usando lógica de fluxo gerenciada

Tipos de tabela legados

Os seguintes tipos de tabela legados são suportados para compatibilidade com versões anteriores, mas não são recomendados para novo desenvolvimento.

Tabelas Hive

Tabelas Hive usam padrões legados, incluindo o Hive metastore legado, codecs Hive SerDe ou sintaxe Hive SQL. Por default, as tabelas registradas usando o Hive metastore legado armazenam dados no DBFS root legado.

Migre todas as tabelas do HMS legado para o Unity Catalog. Consulte Objetos de banco de dados no Hive metastore legado. Opcionalmente, é possível federar um Hive metastore para o Unity Catalog. Consulte Federação de Hive metastore: habilite o Unity Catalog para controlar tabelas registradas em uma Hive metastore.

O Apache Spark permite o registro e a consulta de tabelas Hive, mas esses codecs não são otimizados para o Databricks. Registrar tabelas Hive apenas para dar suporte a consultas contra dados gravados por sistemas externos. Consulte tabela Hive (legado).

Tabelas dinâmicas

O termo live tables refere-se a uma implementação anterior de funcionalidade agora disponível como visualizações materializadas . Atualizar o código legado que faz referência a mesas ao vivo para usar a sintaxe de exibição materializada. Veja Lakeflow Spark Pipelines Declarativos e visualizações materializadas.