Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Databricks suporta três tipos principais de tabelas (geridas, externas e estrangeiras) e dois formatos de armazenamento aberto (Delta Lake e Apache Iceberg). Escolher a combinação certa determina como os dados são armazenados, governados e otimizados.
Uma tabela do Azure Databricks reside em um esquema e contém linhas de dados. O tipo de tabela padrão criado no Azure Databricks é uma tabela gerenciada pelo Catálogo Unity.
Formatos de armazenamento
Os formatos de armazenamento definem como os dados são fisicamente estruturados e acompanhados no armazenamento de objetos.
O Azure Databricks dá suporte a dois formatos principais de armazenamento de tabela aberta:
- Delta Lake é o formato de armazenamento padrão para tabelas gerenciadas e externas no Azure Databricks. O Delta também é suportado para tabelas estrangeiras.
- O Apache Iceberg é suportado para tabelas geridas e estrangeiras no Azure Databricks. Este formato é útil quando você está se integrando com o ecossistema Iceberg.
Ambos os formatos adicionam uma camada de armazenamento transacional que rastreia metadados e suporta conformidade com Atomicidade, Consistência, Isolamento e Durabilidade (ACID), viagens no tempo e outras funcionalidades.
Tipos de tabela
Os tipos de tabela no Azure Databricks definem como os dados são de propriedade e acessados.
O Azure Databricks suporta três tipos principais de tabelas. Os tipos de tabelas são determinados pelo catálogo que detém e gere os ficheiros de dados subjacentes, conforme descrito na tabela seguinte:
| Tipo de tabela | Gerenciando catálogo | Suporte de leitura/gravação | Otimização do desempenho | Otimização dos custos de armazenamento |
|---|---|---|---|---|
| Gerido | Catálogo Unity | Yes | Yes | Yes |
| Temporary | Nenhum (tabela gerida com âmbito de sessão) | Yes | Yes | Yes |
| externa | Nenhum (apenas ficheiros) | Yes | Apenas manual | Apenas manual |
| Estrangeiros | Um sistema externo ou serviço de catálogo | Apenas Leitura | Não | Não |
Para informações sobre como selecionar o tipo de tabela correto para o seu caso de uso, consulte Selecionar um tipo de tabela.
Tabelas gerenciadas
Para tabelas geridas, o Unity Catalog gere tanto os ficheiros de dados como os metadados das tabelas. Os ficheiros de dados são armazenados na localização de armazenamento gerido do Unity Catalog na cloud. As tabelas gerenciadas do Unity Catalog são o padrão quando você cria tabelas no Azure Databricks.
O Databricks recomenda que você use tabelas gerenciadas sempre que criar uma nova tabela. As tabelas geridas implementam automaticamente melhorias de desempenho, reduzem custos de armazenamento e computação, e permitem o acesso a sistemas externos, como o Trino. Consulte Tabelas gerenciadas.
O exemplo seguinte mostra uma tabela gerida nomeada prod.people_ops_employees que contém dados sobre cinco funcionários:
Tabelas externas
Tabelas externas, por vezes chamadas tabelas não geridas, referenciam dados armazenados num sistema de armazenamento externo, como o armazenamento de objetos na cloud. O Azure Databricks regista os metadados da tabela mas não gere os ficheiros de dados subjacentes. O Unity Catalog suporta tabelas externas em vários formatos, incluindo o Delta Lake, que permite lê-las com sistemas externos. Consulte Tabelas externas.
Tabelas estrangeiras
As tabelas estrangeiras representam dados armazenados em sistemas externos conectados ao Azure Databricks por meio da Lakehouse Federation. As tabelas estrangeiras são só de leitura no Azure Databricks. Consulte Tabelas estrangeiras.
Tabelas temporárias
Tabelas temporárias são tabelas com âmbito de sessão que armazenam dados durante a duração de uma sessão Azure Databricks. São úteis para materializar resultados intermédios sem criar tabelas permanentes no seu catálogo. O Azure Databricks elimina automaticamente tabelas temporárias quando a sessão termina, e não precisas de privilégios de catálogo ou esquema para as criar. Ver tabelas temporárias em Databricks SQL e Databricks Runtime.
Selecione um tipo de tabela
Use tabelas geridas para a maioria das novas tabelas. O Azure Databricks automatiza a otimização, a gestão do ciclo de vida do armazenamento e o acesso externo.
Utilize tabelas externas quando:
- Precisa de registar dados existentes no armazenamento na cloud sem os mover.
- Necessita de acesso direto baseado em caminhos a partir de clientes não Azure Databricks.
- Está a trabalhar com formatos de ficheiros não suportados por tabelas geridas, como CSV ou JSON.
- Eliminar a tabela não deve eliminar os ficheiros de dados subjacentes.
Utilize tabelas externas quando precisar de acesso apenas de leitura a dados de um sistema externo ligado através do Lakehouse Federation, como o metastore do Hive ou o catálogo do AWS Glue.
Para formato de armazenamento, o Delta Lake é o padrão e recomendado para a maioria das cargas de trabalho. Use o Apache Iceberg ao integrar com sistemas externos que requerem o formato Iceberg.
Tabelas no Unity Catalog
No Unity Catalog, as tabelas existem no terceiro nível do espaço de nomes de três níveis (catalog.schema.table), como mostrado no diagrama seguinte:
Permissões básicas de tabela
A maioria das operações em tabelas requer USE CATALOG e USE SCHEMA permissões 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 de tabela comuns no Unity Catalog:
| Funcionamento | Permissions |
|---|---|
| Criar uma tabela |
CREATE TABLE sobre o esquema que contém |
| Consultar uma tabela |
SELECT em cima da mesa |
| Atualizar, excluir, mesclar ou inserir dados em uma tabela |
SELECT e MODIFY em cima da mesa. Alternativamente, conceda acesso de escrita mais detalhado com os privilégios INSERT, UPDATE, e DELETE (Beta). Consulte Privilégios DML detalhados. |
| Eliminar uma tabela |
MANAGE em cima da mesa |
| Substituir uma tabela |
MANAGE na tabela, CREATE TABLE no esquema que contém |
Para referência à sintaxe SQL destas operações, veja:
Para obter mais informações sobre as permissões do Catálogo Unity, consulte Gerenciar privilégios no Catálogo Unity.