Conceitos de tabelas do Databricks
O Databricks oferece suporte a três tipos de tabela principais (gerenciadas, externas e estrangeiras) e dois formatos de armazenamento abertos (Delta Lake e Apache Iceberg). Escolher a combinação certa determina como os dados são armazenados, governados e otimizados.
Uma tabela do Databricks reside em um esquema e contém linhas de dados. O tipo de tabela default criado em Databricks é uma tabela gerenciar Unity Catalog.
Formatos de armazenamento
Os formatos de armazenamento definem como os dados são estruturados fisicamente e rastreados no armazenamento de objetos.
A Databricks oferece suporte a dois formatos principais de armazenamento de tabela aberta:
- Delta Lake é o formato de armazenamento default para gerenciar tabelas externas no Databricks. Delta também é compatível com tabelas estrangeiras.
- O Apache Iceberg é compatível com tabelas gerenciadas e tabelas externas no Databricks. Esse formato é útil quando você está se integrando ao ecossistema Iceberg.
Ambos os formatos adicionam uma camada de armazenamento transacional que rastreia metadados e oferece suporte à compliance com ACID (Atomicidade, Consistência, Isolamento e Durabilidade), viagem do tempo e outros recursos.
Tipos de mesa
Os tipos de tabela no Databricks definem como os dados são possuídos e acessados.
O Databricks suporta três tipos principais de tabelas. Os tipos de tabela são determinados pelo catálogo que detém e gerencia os arquivos de dados subjacentes, conforme descrito na tabela a seguir:
Tipo de mesa | Gerenciando o catálogo | Suporte de leitura/gravação | Otimização do desempenho | Otimização do custo de armazenamento |
|---|---|---|---|---|
Unity Catalog | Sim | Sim | Sim | |
Temporário | Nenhuma (com escopo de sessão tabela) | Sim | Sim | Sim |
Nenhum (somente arquivos) | Sim | Somente manual | Somente manual | |
Um sistema externo ou serviço de catálogo | Somente leitura | Não | Não |
Para obter informação sobre como selecionar o tipo de tabela correto para seu caso de uso, consulte Selecionar um tipo de tabela.
gerenciar tabelas
Para tabelas gerenciadas, o Unity Catalog gerencia tanto os arquivos de dados quanto os metadados da tabela. Os arquivos de dados são armazenados no local de armazenamento gerenciado do Unity Catalog no armazenamento em cloud. As tabelas gerenciar do Unity Catalog são o default ao criar tabelas no Databricks.
O Databricks recomenda que você use tabelas gerenciadas sempre que criar uma nova tabela. Tabelas gerenciadas implementam automaticamente melhorias de desempenho, reduzem os custos de armazenamento e compute e habilitam o acesso para sistemas externos, como o Trino. Consulte Tabelas gerenciadas.
O exemplo a seguir mostra uma tabela gerenciada chamada prod.people_ops_employees que contém dados sobre cinco funcionários:

Tabelas externas
Tabelas externas, às vezes chamadas de tabelas não gerenciadas , referenciam dados armazenados em um sistema de armazenamento externo, como o armazenamento de objetos em cloud. O Databricks registra os metadados da tabela, mas não gerencia os arquivos de dados subjacentes. O Unity Catalog suporta tabelas externas em vários formatos, incluindo o Delta Lake, o que permite lê-las com sistemas externos. Consulte Tabelas externas.
Tabelas estrangeiras
As tabelas estrangeiras representam dados armazenados em sistemas externos conectados a Databricks por meio da Lakehouse Federation. As tabelas estrangeiras são somente leitura nos Databricks. Consulte Tabelas estrangeiras.
Mesas temporárias
Tabelas temporárias são tabelas com escopo de sessão que armazenam dados pela duração de uma sessão do Databricks. Elas são úteis para materializar resultados intermediários sem criar tabelas permanentes em seu catálogo. O Databricks descarta automaticamente as tabelas temporárias quando a sessão termina, e você não precisa de privilégios de catálogo ou esquema para criá-las. Consulte Tabelas temporárias no Databricks SQL e no Databricks Runtime.
Selecione um tipo de tabela
Use *tabelas gerenciadas* para a maioria das novas tabelas. O Databricks automatiza a otimização, o gerenciamento do ciclo de vida do armazenamento e o acesso externo.
Use *tabelas externas* quando:
- É necessário fazer o registro de dados existentes no armazenamento em cloud sem movê-los.
- É necessário acesso direto baseado em caminho de clientes não Databricks.
- Você está trabalhando com formatos de arquivo não compatíveis com tabelas gerenciadas, como CSV ou JSON.
- Excluir a tabela não deve apagar os arquivos de dados subjacentes.
Use *tabelas externas* quando precisar de acesso somente leitura a dados em um sistema externo conectado por meio da Federação Lakehouse, como um Hive metastore ou catálogo do AWS Glue.
Para formato de armazenamento, o Delta Lake é o default e o recomendado para a maioria das cargas de trabalho. Use Apache Iceberg ao integrar com sistemas externos que exigem o formato Iceberg.
Tabelas no Unity Catalog
No Unity Catalog, as tabelas existem no terceiro nível do namespace de três níveis (catalog.schema.table), conforme mostrado no diagrama a seguir:

Permissões básicas de tabela
A maioria das operações de tabela exige as permissões USE CATALOG e USE SCHEMA 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 comuns de tabela no Unity Catalog:
Operação | Permissões |
|---|---|
Criar tabela |
|
Consultar uma tabela |
|
Atualizar, excluir, merge ou inserir dados em uma tabela |
|
Solte uma mesa |
|
Substituir uma tabela |
|
Para obter uma referência da sintaxe SQL para essas operações, consulte:
Para obter mais informações sobre as permissões do site Unity Catalog, consulte gerenciar privilégios em Unity Catalog.