O que é uma tabela?
Uma tabela reside em um esquema e contém linhas de dados. Todas as tabelas criadas no Azure Databricks usam o Delta Lake por padrão. As tabelas apoiadas pelo Delta Lake também são chamadas de tabelas Delta.
Uma tabela Delta armazena dados como um diretório de arquivos no armazenamento de objetos em nuvem e registra metadados de tabela no metastore dentro de um catálogo e esquema. Todas as tabelas gerenciadas e tabelas de streaming do Unity Catalog são tabelas Delta. As tabelas externas do Unity Catalog podem ser tabelas Delta, mas não precisam ser.
Você pode criar tabelas em Databricks que não usam Delta Lake. Essas tabelas não fornecem as garantias transacionais ou o desempenho otimizado das tabelas Delta.
As tabelas armazenam linhas de dados. Uma tabela reside em um esquema e contém linhas de dados. O exemplo a seguir mostra uma tabela prod.people_ops_employees que contém dados sobre cinco funcionários. Os metadados são registrados no Unity Catalog e os dados são armazenados em armazenamento em nuvem.
Permissões básicas de tabela
Para criar uma tabela, os usuários devem ter CREATE TABLE
permissões no USE SCHEMA
esquema e devem ter a USE CATALOG
permissão em seu catálogo pai. Para consultar uma tabela, os usuários devem ter a SELECT
permissão na tabela, a USE SCHEMA
permissão em seu esquema pai e a USE CATALOG
permissão em seu catálogo pai.
Para obter mais informações sobre as permissões do Catálogo Unity, consulte Gerenciar privilégios no Catálogo Unity.
Tabelas no Catálogo Unity
No Unity Catalog, as tabelas ficam no terceiro nível do namespace de três níveis (catalog.schema.table
), conforme mostrado na tabela a seguir. As tabelas externas do Unity Catalog podem ser tabelas Delta, mas não precisam ser.
Tabelas delta
Apoiada pelo Delta Lake, uma tabela Delta armazena dados como um diretório de arquivos no armazenamento de objetos na nuvem e registra metadados da tabela no metastore dentro de um catálogo e esquema. Como as tabelas Delta são o padrão no Databricks, a maioria das referências a tabelas descreve o comportamento das tabelas Delta, salvo indicação em contrário. Todas as tabelas gerenciadas e tabelas de streaming do Unity Catalog são tabelas Delta. Consulte Como funcionam as tabelas Delta.
O Databricks recomenda que você sempre interaja com tabelas Delta usando nomes de tabela totalmente qualificados em vez de caminhos de arquivo.
Tabelas gerenciadas
As tabelas gerenciadas gerenciam arquivos de dados subjacentes juntamente com o registro do metastore. O Databricks recomenda que você use tabelas gerenciadas sempre que criar uma nova tabela. As tabelas gerenciadas do Unity Catalog são o padrão quando você cria tabelas no Azure Databricks. Eles sempre usam Delta Lake. Consulte Trabalhar com tabelas gerenciadas.
Tabelas externas
Tabelas externas, às vezes chamadas de tabelas não gerenciadas, fazem referência a dados armazenados fora do Databricks em um sistema de armazenamento externo, como armazenamento de objetos na nuvem. Eles dissociam o gerenciamento de arquivos de dados subjacentes do registro do metastore. O Unity Catalog suporta tabelas externas em vários formatos, incluindo Delta. As tabelas externas do Unity Catalog podem armazenar arquivos de dados usando formatos comuns legíveis por sistemas externos. Consulte Trabalhar com tabelas externas.
Tabelas de streaming
As tabelas de streaming são tabelas Delta usadas principalmente para processar dados incrementais. A maioria das atualizações de tabelas de streaming acontece por meio de operações de atualização.
Você pode registrar tabelas de streaming no Unity Catalog usando Databricks SQL ou defini-las como parte de um pipeline Delta Live Tables. Consulte Como funcionam as tabelas de streaming, Carregar dados usando tabelas de streaming no Databricks SQL e O que é Delta Live Tables?.
Mesas estrangeiras
As tabelas estrangeiras representam dados armazenados em sistemas externos conectados ao Azure Databricks por meio da Lakehouse Federation. As tabelas estrangeiras são somente leitura no Azure Databricks. Veja O que é Lakehouse Federation?.
Tabelas de recursos
Qualquer tabela Delta gerenciada pelo Unity Catalog que tenha uma chave primária é uma tabela de recursos. Opcionalmente, você pode configurar tabelas de recursos usando o Feature Store online para casos de uso de baixa latência. Consulte Trabalhar com tabelas de funcionalidades no Repositório de Funcionalidades do Espaço de Trabalho (legado).
Mesas de colmeia (legado)
As tabelas do Hive descrevem dois conceitos distintos no Azure Databricks, ambos são padrões herdados e não recomendados.
As tabelas registradas usando o metastore herdado do Hive armazenam dados na raiz DBFS herdada, por padrão. O Databricks recomenda a migração de todas as tabelas do HMS herdado para o Unity Catalog. Consulte Objetos de banco de dados no metastore herdado do Hive.
O Apache Spark dá suporte ao registro e consulta de tabelas do Hive, mas esses codecs não são otimizados para o Azure Databricks. O Databricks recomenda registrar tabelas do Hive apenas para dar suporte a consultas em relação a dados gravados por sistemas externos. Consulte a tabela Hive (legado).
Tabelas dinâmicas (preteridas)
O termo live tables refere-se a uma implementação anterior da funcionalidade agora implementada como visualizações materializadas. Qualquer código herdado que faça referência a tabelas dinâmicas deve ser atualizado para usar sintaxe para exibições materializadas. Consulte O que é Delta Live Tables? e Usar exibições materializadas no Databricks SQL.