Compartilhar via


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

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 seu padrão 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.

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. 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.

Todas as leituras e gravações em tabelas gerenciadas devem usar nomes de tabela e nomes de catálogo e esquema onde elas existem (por exemplo, catalog_name.schema_name.table_name).

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.

Característica Benefícios
Otimização preditiva Otimiza o layout dos seus dados e recursos de computação usando IA, dimensionando automaticamente os recursos de computação, organizando os trabalhos para máxima eficiência e registrando os resultados para que você possa observar o que aconteceu.
A otimização preditiva é executada automaticamente:

Esse recurso reduz os custos de computação e armazenamento economizando o tamanho do armazenamento. Consulte Otimização Preditiva para Tabelas Gerenciadas do Unity Catalog.
Agrupamento automático de líquidos Os dados são clusterizados automaticamente com mais eficiência, com base nos padrões de acesso à consulta de tabela, o que aumenta as velocidades de consulta para todos os clientes (Databricks e não Databricks). Consulte Clustering líquido automático.
Estatísticas automáticas A coleta de estatísticas aumenta o desempenho das consultas ao implementar estratégias eficientes de omissão de dados e de junção. Coletando automaticamente estatísticas essenciais, como os valores mínimo e máximo para colunas, o Azure Databricks pode determinar quais arquivos são irrelevantes e excluí-los durante a execução da consulta. Isso reduz a sobrecarga computacional. Tabelas externas do Catálogo do Unity que geram estatísticas com base nas primeiras 32 colunas por padrão, enquanto as tabelas gerenciadas do Catálogo do Unity coletam dinamicamente estatísticas para colunas mais relevantes para as cargas de trabalho de consulta.
Cache de metadados Cache na memória de metadados de transação para minimizar solicitações para o log de transações armazenado na nuvem. Esse recurso aprimora o desempenho da consulta.
Otimização de tamanho do arquivo O Azure Databricks compacta automaticamente os tamanhos de arquivo para que você tenha o tamanho certo, aprendendo com os dados coletados de milhares de implantações de produção nos bastidores. O Azure Databricks determinará automaticamente o tamanho do arquivo de destino e ajustará as gravações para melhor conformidade com esses tamanhos de arquivo, o que pode ajudar a melhorar o desempenho da consulta e economizar custos de armazenamento. Confira Configurar o Delta Lake para controlar o tamanho do arquivo de dados.
DROP TABLE Se você descartar uma tabela gerenciada, os dados serão excluídos automaticamente no armazenamento em nuvem após 7 dias, reduzindo os custos de armazenamento. Para tabelas externas, você deve ir manualmente para o bucket de armazenamento e excluir os arquivos.

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 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:

  • MANAGE na tabela ou você deve ser o proprietário da tabela.
  • USE SCHEMA no esquema pai da tabela.
  • USE CATALOG no 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 7 dias. Após 7 dias, o Azure Databricks marca os dados subjacentes para serem excluídos da sua instância de nuvem e remove arquivos como parte da manutenção automatizada da tabela. Consulte UNDROP.