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 para Delta Lake e Apache Iceberg.
Tabelas externas
As tabelas externas fazem referência a dados armazenados no 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. Ao excluir uma tabela externa, apenas os metadados do catálogo são removidos, e os arquivos de dados subjacentes permanecem.
As tabelas externas do Unity Catalog são compatíveis com os formatos Delta Lake, CSV, JSON, AVRO, PARQUET, ORC e TEXT. A Databricks recomenda o uso do formato Delta Lake porque ele oferece garantias transacionais e otimizações de desempenho que os outros formatos não possuem.
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 tabelas somente leitura gerenciadas por um catálogo externo registrado no Unity Catalog. 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 que utilizam o formato Delta Lake carecem de muitas otimizações disponíveis em tabelas gerenciadas pelo 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
As tabelas Hive são gerenciadas pelo Hive metastore legado e usam padrões legados, incluindo codecs Hive SerDe e sintaxe SQL Hive. Por default, as tabelas registradas usando o Hive metastore legado armazenam dados no DBFS root legado.
A Databricks recomenda que você migre todas as tabelas do HMS legado para o Unity Catalog. Consulte Objetos de banco de dados no Hive metastore legado.
Você pode, opcionalmente, federar um Hive metastore para o Unity Catalog e acessar as tabelas como tabelas estrangeiras no Unity Catalog. Consulte Federação do Hive metastore: habilite o Unity Catalog para controlar tabelas registradas em um Hive metastore.
O Apache Spark suporta o registro e a consulta de tabelas Hive, mas os codecs SerDe do Hive não são otimizados para o Databricks. Registre tabelas do Hive somente quando precisar dar suporte a consultas em 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.