Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure Databricks dá suporte a três tipos de tabela primária (gerenciados, externos e estrangeiros) e dois formatos de armazenamento aberto (Delta Lake e Apache Iceberg). Escolher a combinação certa determina como os dados são armazenados, controlados e otimizados.
A tabela 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 do Catálogo do Unity.
Formatos de armazenamento
Os formatos de armazenamento definem como os dados são fisicamente estruturados e rastreados no armazenamento de objetos.
O Azure Databricks dá suporte a dois formatos de armazenamento de tabela aberta principais:
- Delta Lake é o formato de armazenamento padrão para tabelas gerenciadas e externas no Azure Databricks. O Delta também oferece suporte para tabelas estrangeiras.
- O Apache Iceberg tem suporte para tabelas gerenciadas e estrangeiras em Azure Databricks. Esse formato é útil quando você está se integrando ao ecossistema do Iceberg.
Ambos os formatos adicionam uma camada de armazenamento transacional que rastreia metadados e dá suporte à conformidade de Atomicidade, Consistência, Isolamento e Durabilidade (ACID), viagem no tempo e outros recursos.
Tipos de tabela
Os tipos de tabela no Azure Databricks definem como os dados são de propriedade e acessados.
Azure Databricks dá suporte a três tipos de tabela primária. Os tipos de tabela são determinados pelo qual o catálogo possui e gerencia os arquivos de dados subjacentes, conforme descrito na tabela a seguir:
| Tipo de tabela | Gerenciamento de catálogo | Suporte de leitura/gravação | Otimização de desempenho | Otimização de custo de armazenamento |
|---|---|---|---|---|
| Gerenciado | Catálogo do Unity | Yes | Yes | Yes |
| Temporário | Nenhum (tabela gerenciada com escopo de sessão) | Yes | Yes | Yes |
| Externo | Nenhum (somente arquivos) | Yes | Somente manual | Somente manual |
| Estrangeiro | Um sistema externo ou serviço de catálogo | Somente leitura | Não | Não |
Para obter informações sobre como selecionar o tipo de tabela correto para seu caso de uso, consulte Selecionar um tipo de tabela.
Tabelas gerenciadas
Para tabelas gerenciadas, o Catálogo do Unity gerencia os arquivos de dados e os metadados da tabela. Os arquivos de dados são armazenados no local de armazenamento gerenciado do Catálogo do Unity no armazenamento em nuvem. As tabelas gerenciadas do Catálogo do Unity 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 gerenciadas implementam automaticamente melhorias de desempenho, reduzem os custos de armazenamento e computação e permitem o acesso a sistemas externos, como o Trino. Consulte tabelas gerenciadas.
O exemplo a seguir mostra uma tabela gerenciada nomeada prod.people_ops_employees que contém dados sobre cinco funcionários:
Tabelas externas
Tabelas externas, às vezes chamadas de tabelas não gerenciadas, fazem referência aos dados armazenados em um sistema de armazenamento externo, como o armazenamento de objetos de nuvem. Azure Databricks registra os metadados da tabela, mas não gerencia os arquivos de dados subjacentes. O Catálogo do Unity dá suporte a tabelas externas em vários formatos, incluindo o Delta Lake, que permite lê-las com sistemas externos. Consulte tabelas externas.
Tabelas estrangeiras
Tabelas externas representam dados armazenados em sistemas externos conectados ao Azure Databricks por meio do Lakehouse Federation. As tabelas estrangeiras são somente para leitura no Azure Databricks. Consulte tabelas externas.
Tabelas temporárias
Tabelas temporárias são tabelas com escopo de sessão que armazenam dados durante uma sessão do Azure Databricks. Eles são úteis para materializar resultados intermediários sem criar tabelas permanentes em seu catálogo. O Azure Databricks descarta automaticamente 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.
Selecionar um tipo de tabela
Use tabelas gerenciadas para a maioria das tabelas novas. Azure Databricks automatiza a otimização, o gerenciamento do ciclo de vida do armazenamento e o acesso externo.
Use tabelas externas quando:
- Você precisa registrar dados existentes no armazenamento em nuvem sem movê-los.
- Você precisa de acesso direto via caminho a partir de clientes não Azure Databricks.
- Você está trabalhando com formatos de arquivo sem suporte por tabelas gerenciadas, como CSV ou JSON.
- Remover a tabela não deve excluir os arquivos de dados subjacentes.
Use tabelas estrangeiras quando precisar de acesso apenas para leitura a dados em um sistema externo conectado por meio do Lakehouse Federation, como um metastore do Hive ou um catálogo do AWS Glue.
Para o 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 exigem o formato Iceberg.
Tabelas no Catálogo do Unity
No Catálogo do Unity, 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 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 Catálogo do Unity:
| Operation | Permissions |
|---|---|
| Criar uma tabela |
CREATE TABLE no esquema que o contém |
| Consultar uma tabela |
SELECT na tabela |
| Atualizar, excluir, mesclar ou inserir dados em uma tabela |
SELECT e MODIFY na tabela. Alternativamente, conceda acesso de escrita mais detalhado com os privilégios INSERT, UPDATE, e DELETE (Beta). Consulte Privilégios DML refinados. |
| Remover uma tabela |
MANAGE na tabela |
| Substituir uma tabela |
MANAGE na tabela, CREATE TABLE no esquema que o contém |
Para referência de sintaxe SQL para essas operações, consulte:
Para obter mais informações sobre as permissões do Catálogo do Unity, consulte Gerenciar privilégios no Catálogo do Unity.