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.
Importante
As tabelas gerenciadas do Catálogo do Unity estão disponíveis de forma geral para tabelas Delta Lake. Para tabelas do Apache Iceberg, esse recurso está em Versão Prévia Pública e está disponível no Databricks Runtime 16.4 LTS e superior.
Esta página descreve as tabelas gerenciadas do Catálogo do Unity no Delta Lake e no Apache Iceberg, o tipo de tabela padrão e recomendado no Azure Databricks. Essas tabelas são totalmente governadas e otimizadas pelo Catálogo do Unity, oferecendo desempenho, vantagens operacionais e menores custos de armazenamento e computação em comparação com tabelas externas e estrangeiras, pois as tabelas gerenciadas aprendem com seus padrões de leitura e gravação. O Catálogo do Unity gerencia todas as responsabilidades de leitura, gravação, armazenamento e otimização para tabelas gerenciadas. Consulte Converter uma tabela externa em uma tabela gerenciada do Catálogo do Unity.
Os arquivos de dados para tabelas gerenciadas são armazenados no esquema ou catálogo que os contém. Consulte Especificar um local de armazenamento gerenciado no catálogo do Unity.
O Databricks recomenda o uso de tabelas gerenciadas para aproveitar:
- Redução dos custos de armazenamento e computação.
- Desempenho de consulta mais rápido em todos os tipos de cliente.
- Manutenção e otimização automáticas da tabela.
- Proteger o acesso para clientes que não são do Databricks por meio de APIs abertas.
- Suporte para formatos Delta Lake e Iceberg.
- Atualizações automáticas para os recursos mais recentes da plataforma.
As tabelas gerenciadas dão suporte à interoperabilidade permitindo o acesso de clientes Delta Lake e Iceberg. Por meio de APIs abertas e venda automática de credenciais, o Catálogo do Unity permite que mecanismos externos como Trino, DuckDB, Apache Spark, Daft e mecanismos integrados ao catálogo REST do Iceberg, como o Dremio, acessem tabelas gerenciadas. Para clientes externos que não dão suporte a APIs abertas, você pode usar o Modo de Compatibilidade para ler tabelas gerenciadas usando qualquer cliente Delta Lake ou Iceberg. O Delta Sharing, um protocolo de software livre, permite o compartilhamento de dados seguro e controlado com parceiros e plataformas externas.
Você pode trabalhar com tabelas gerenciadas em todas as linguagens e produtos com suporte no Azure Databricks. Você precisa de determinados privilégios para criar, atualizar, excluir ou consultar tabelas gerenciadas. Consulte Gerenciar privilégios no Catálogo do Unity.
Observação
Esta página se concentra em tabelas gerenciadas do Catálogo do Unity. Para tabelas gerenciadas no metastore do Hive herdado, consulte objetos de banco de dados no metastore do Hive herdado.
Por que usar tabelas gerenciadas do Catálogo do Unity?
As tabelas gerenciadas do Catálogo do Unity otimizam automaticamente os custos de armazenamento e as velocidades de consulta usando tecnologias controladas por IA, como clustering automático, compactação de tamanho de arquivo e coleta de estatísticas inteligentes. Essas tabelas simplificam o gerenciamento de dados com recursos como vácuo automático e cache de metadados, garantindo a interoperabilidade com ferramentas de terceiros Delta e Iceberg.
Os recursos a seguir são exclusivos para tabelas gerenciadas do Catálogo do Unity e não estão disponíveis para tabelas externas e tabelas estrangeiras.
| Característica | Benefícios | Habilitado por padrão? | Configurável? |
|---|---|---|---|
| Otimização preditiva | Otimiza automaticamente o layout de dados e a computação usando IA, para que você não precise lidar manualmente com operações para tabelas gerenciadas. O Databricks recomenda habilitar a otimização preditiva para todas as tabelas gerenciadas para reduzir os custos de armazenamento e computação. A otimização preditiva é executada automaticamente:
|
Sim, para todas as novas contas criadas em 11 de novembro de 2024 ou depois de 11 de novembro de 2024. Para contas atuais, o Azure Databricks está começando a implantar a otimização preditiva por padrão. Confira Se a otimização preditiva está habilitada. |
Sim. Consulte Habilitar otimização preditiva. |
| Clustering líquido automático | Para tabelas com otimização preditiva, habilitar o clustering líquido automático permite que o Azure Databricks selecione de forma inteligente as chaves de clustering. À medida que os padrões de consulta mudam, o Azure Databricks atualiza automaticamente as chaves de clustering para melhorar o desempenho e reduzir os custos. | Não | Sim. Consulte Habilitar o agrupamento líquido. |
| Cache de metadados | O cache na memória de metadados de transação melhora o desempenho da consulta minimizando as solicitações para o log de transações armazenado na nuvem. Esse recurso aprimora o desempenho da consulta. | Yes | Não. O cache de metadados está sempre habilitado para tabelas gerenciadas. |
Exclusão automática de arquivo após um DROP TABLE comando |
Se você descartar uma tabela gerenciada, o Azure Databricks excluirá os dados no armazenamento em nuvem após 8 dias, reduzindo os custos de armazenamento. Para tabelas externas, você deve ir manualmente para o bucket de armazenamento e excluir os arquivos. | Yes | Não. Para tabelas gerenciadas, os arquivos são sempre excluídos automaticamente após 8 dias. |
Acessar dados do Databricks usando sistemas externos
As tabelas gerenciadas dão suporte à interoperabilidade permitindo o acesso de clientes Delta Lake e Iceberg. Por meio de APIs abertas e distribuição de credenciais, o Catálogo do Unity permite que mecanismos externos, como Trino, DuckDB, Apache Spark, Daft e Iceberg, e mecanismos integrados ao catálogo REST, como Dremio e Snowflake, acessem tabelas gerenciadas. Consulte integrações para obter uma lista de mecanismos externos com suporte ou verifique a documentação do mecanismo se ele não estiver incluído nesta lista.
As seguintes APIs abertas fornecem acesso a sistemas externos às tabelas gerenciadas do Catálogo do Unity:
- API REST do Unity: Fornece acesso somente leitura, para clientes Delta, a tabelas Delta gerenciadas.
- Catálogo REST do Iceberg (IRC): Fornece acesso de leitura e gravação para clientes Iceberg a tabelas Iceberg gerenciadas e acesso somente leitura a tabelas Delta com leituras do Iceberg habilitadas (UniForm).
Ambas as APIs dão suporte à distribuição de credenciais, que fornece credenciais temporárias com escopos que herdam os privilégios do principal do Azure Databricks solicitante, mantendo os controles de governança e segurança.
Além disso, o Delta Sharing é um protocolo de software livre que permite acesso seguro e controlado a parceiros e plataformas externas. Você pode usar o Compartilhamento Delta para conceder aos parceiros acesso temporário de apenas leitura.
Todas as leituras e gravações em tabelas gerenciadas devem usar nomes de tabela e nomes de catálogo e esquema onde eles existem. Por exemplo, catalog_name.schema_name.table_name. Não há suporte para o acesso baseado em caminho às tabelas gerenciadas do Catálogo do Unity (exceto no Modo de Compatibilidade), pois ignora os controles de acesso do Catálogo do Unity e impede que os recursos de tabela gerenciados funcionem corretamente.
Criar uma tabela gerenciada
Para criar uma tabela gerenciada, você deve ter:
-
USE SCHEMAno esquema pai da tabela. -
USE CATALOGno catálogo pai da tabela. -
CREATE TABLEno esquema pai da tabela.
Use a sintaxe SQL a seguir para criar uma tabela gerenciada vazia usando SQL. Substitua os valores de espaço reservado:
-
<catalog-name>: o nome do catálogo que conterá a tabela. -
<schema-name>: o nome do esquema que contém a tabela. -
<table-name>: um nome para a tabela. -
<column-specification>: o nome e o tipo de dados de cada coluna.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
Para manter o desempenho em leituras e gravações, o Azure Databricks executa periodicamente operações para otimizar metadados de tabela do Iceberg gerenciados. Essa tarefa é executada usando a computação sem servidor, que tem MODIFY permissões na tabela Iceberg. Essa operação grava apenas nos metadados da tabela e a computação mantém apenas permissões para a tabela durante o trabalho.
Observação
Para criar uma tabela Iceberg, especifique USING icebergexplicitamente . Caso contrário, o Azure Databricks criará uma tabela Delta Lake por padrão.
Você pode criar tabelas gerenciadas com base em resultados de consulta ou operações de gravação do DataFrame. Os artigos a seguir demonstram alguns dos muitos padrões que você pode usar para criar uma tabela gerenciada no Azure Databricks:
Remover uma tabela gerenciada
Para remover uma tabela gerenciada, você deve ter:
-
MANAGEna tabela ou você deve ser o proprietário da tabela. -
USE SCHEMAno esquema pai da tabela. -
USE CATALOGno catálogo pai da tabela.
Para remover uma tabela gerenciada, execute o seguinte comando SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
O Catálogo do Unity dá suporte ao UNDROP TABLE comando para recuperar tabelas gerenciadas descartadas por 8 dias. Após 8 dias, o Azure Databricks marca os dados subjacentes para exclusão do locatário de nuvem e remove arquivos durante a manutenção automatizada da tabela. Consulte UNDROP.