Partilhar via


Tabelas gerenciadas do Unity Catalog no Azure Databricks para Delta Lake e Apache Iceberg

Important

As tabelas gerenciadas do Unity Catalog estão geralmente disponíveis para tabelas Delta Lake. Para tabelas Apache Iceberg, esse recurso está em Visualização Pública e disponível no Databricks Runtime 16.4 LTS e superior.

Esta página descreve as tabelas gerenciadas do Catálogo Unity no Delta Lake e no Apache Iceberg, o tipo de tabela padrão e recomendado no Azure Databricks. Essas tabelas são totalmente controladas e otimizadas pelo Unity Catalog, oferecendo desempenho, vantagens operacionais e menores custos de armazenamento e computação em comparação com tabelas externas e estrangeiras, porque as tabelas gerenciadas aprendem com seus padrões de leitura e gravação. O Unity Catalog 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 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 Unity.

O Databricks recomenda o uso de tabelas gerenciadas para aproveitar:

  • Custos reduzidos de armazenamento e computação.
  • Desempenho de consulta mais rápido em todos os tipos de clientes.
  • Manutenção e otimização automática de tabelas.
  • Acesso seguro para clientes que não são Databricks através de APIs abertas.
  • Suporte para os formatos Delta Lake e Iceberg.
  • Atualizações automáticas para os recursos mais recentes da plataforma.

As tabelas gerenciadas suportam a interoperabilidade, permitindo o acesso dos clientes Delta Lake e Iceberg. Por meio de APIs abertas e distribuição de credenciais, o Unity Catalog permite que mecanismos externos, como Trino, DuckDB, Apache Spark, Daft e mecanismos integrados ao catálogo Iceberg REST, como o Dremio, acessem tabelas geridas. Para clientes externos que não suportam 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 código aberto, permite o compartilhamento seguro e controlado de dados com parceiros e plataformas externas.

Pode trabalhar com tabelas geridas em todos os idiomas e produtos suportados no Azure Databricks. Você precisa de certos privilégios para criar, atualizar, excluir ou consultar tabelas gerenciadas. Consulte Gerenciar privilégios no Catálogo Unity.

Note

Esta página se concentra em tabelas gerenciadas pelo Unity Catalog. Para tabelas gerenciadas no metastore herdado do Hive, consulte Objetos de banco de dados no metastore herdado do Hive.

Por que usar tabelas gerenciadas do Unity Catalog?

As tabelas gerenciadas pelo Unity Catalog otimizam automaticamente os custos de armazenamento e as velocidades de consulta usando tecnologias orientadas por IA, como clustering automático, compactação de tamanho de arquivo e coleta inteligente de estatísticas. 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 das tabelas gerenciadas do Unity Catalog e não estão disponíveis para tabelas externas e tabelas estrangeiras.

Feature Benefits Ativado por predefinição? Configurável?
Otimização preditiva Otimiza automaticamente o layout e a computação de dados usando IA, para que você não precise lidar manualmente com operações para tabelas gerenciadas. A 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 a partir de 11 de novembro de 2024.
Para contas atuais, o Azure Databricks está começando a implantar a otimização preditiva por padrão. Consulte Verificar se a otimização preditiva está ativada.
Yes. Consulte Ativar otimização preditiva.
Agrupamento automático de líquidos Para tabelas com otimização preditiva, habilitar o clustering líquido automático permite que o Azure Databricks selecione chaves de cluster de forma inteligente. À medida que os padrões de consulta mudam, o Azure Databricks atualiza automaticamente as chaves de cluster para melhorar o desempenho e reduzir os custos. Não Yes. Consulte Ativar agrupamento de líquidos.
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 melhora o desempenho da consulta. Yes Não. O cache de metadados está sempre habilitado para tabelas gerenciadas.
Exclusão automática de arquivos após um DROP TABLE comando Se eliminar uma tabela gerida, o Azure Databricks eliminará os dados armazenados na 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 Databricks usando sistemas externos

As tabelas gerenciadas suportam a interoperabilidade , permitindo o acesso dos clientes Delta Lake e Iceberg. Por meio de APIs abertas e troca de credenciais, o Unity Catalog permite que motores externos, como Trino, DuckDB, Apache Spark, Daft e mecanismos integrados em catálogos REST, como Iceberg, Dremio e Snowflake, acessem tabelas geridas. Consulte integrações para obter uma lista de mecanismos externos suportados ou verifique a documentação do mecanismo se ele não estiver incluído nessa lista.

As APIs abertas a seguir fornecem acesso a sistemas externos às tabelas gerenciadas do Unity Catalog:

  • API REST Unity: fornece acesso somente leitura para clientes Delta a tabelas Delta gerenciadas.
  • Iceberg REST Catalog (IRC): Fornece acesso de leitura e gravação para clientes Iceberg a tabelas Iceberg gerenciadas e acesso somente leitura a tabelas Delta com leituras Iceberg habilitadas (UniForm).

Ambas as APIs dão suporte à distribuição de credenciais, que fornece credenciais temporárias específicas que herdam os privilégios da entidade solicitante do Azure Databricks, mantendo controles de governança e segurança.

Além disso, o Delta Sharing é um protocolo de código aberto que permite o acesso seguro e controlado a dados de parceiros e plataformas externas. Você pode usar o Delta Sharing para conceder acesso temporário de leitura apenas aos parceiros.

Todas as leituras e gravações em tabelas gerenciadas devem usar nomes de tabelas e nomes de catálogo e esquema, onde existirem. Por exemplo, catalog_name.schema_name.table_name. O acesso baseado em caminho às tabelas gerenciadas do Unity Catalog não é suportado (exceto no Modo de Compatibilidade) porque ignora os controles de acesso do Unity Catalog e impede que os recursos da tabela gerenciada funcionem corretamente.

Criar uma tabela gerenciada

Para criar uma tabela gerenciada, você deve ter:

  • USE SCHEMA no esquema pai da tabela.
  • USE CATALOG no catálogo pai da tabela.
  • CREATE TABLE no esquema pai da tabela.

Use a sintaxe SQL a seguir para criar uma tabela gerenciada vazia usando SQL. Substitua os valores dos espaços reservados:

  • <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>: Nome e 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 os metadados gerenciados da tabela Iceberg. Esta tarefa é executada usando computação sem servidor, que tem MODIFY permissões na tabela Iceberg. Esta operação grava apenas nos metadados da tabela, e a computação mantém as permissões para a tabela durante a execução da tarefa.

Note

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 geridas a partir de resultados de consulta ou operações de escrita no DataFrame. Os artigos a seguir demonstram alguns dos muitos padrões que você pode usar para criar uma tabela gerenciada no Azure Databricks:

Eliminar uma tabela gerida

Para soltar uma tabela gerenciada, você deve ter:

  • MANAGE na mesa ou você deve ser o dono da mesa.
  • USE SCHEMA no esquema pai da tabela.
  • USE CATALOG no catálogo pai da tabela.

Para soltar uma tabela gerenciada, execute o seguinte comando SQL:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

O Unity Catalog suporta o 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 seu locatário de nuvem e remove arquivos durante a manutenção automatizada da tabela. Ver UNDROP.