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 | 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.