Unity Catalog Gerenciar tabelas em para e Databricks Delta Lake Apache Iceberg
Esta página descreve como Unity Catalog gerencia tabelas no Delta Lake e Apache Iceberg, o tipo de tabela default e recomendado no Databricks. Essas tabelas são totalmente gerenciadas e otimizadas pelo Unity Catalog, oferecendo desempenho, vantagens operacionais e custos de armazenamento e mais baixos compute em comparação com tabelas externas e estrangeiras, porque as tabelas gerencia aprendem com seus padrões de leitura e gravação. Unity Catalog gerencia todas as responsabilidades de leitura, gravação, armazenamento e otimização para tabelas. Consulte Converter uma tabela Delta externa em uma tabela Unity Catalog.
Os arquivos de dados das tabelas gerenciais são armazenados no esquema ou catálogo que as contém. Consulte Especificar um local de armazenamento gerenciar em Unity Catalog.
Databricks recomenda o uso de tabelas gerenciais para aproveitar as vantagens:
- Redução dos custos de armazenamento e compute.
- Desempenho de consulta mais rápido em todos os tipos de clientes.
- Manutenção e otimização automáticas da mesa.
- Acesso seguro para clientes que não são da Databricks por meio de APIs abertas.
- Suporte aos formatos Delta Lake e Iceberg.
- Atualizações automáticas para o recurso de plataforma mais recente.
As tabelas gerenciar oferecem suporte à interoperabilidade permitindo acesso de clientes Delta Lake e Iceberg . Por meio de APIs abertas e fornecimento de credenciais, Unity Catalog permite que mecanismos externos, como Trino, DuckDB, Apache Spark, Daft e mecanismos integrados ao catálogo Iceberg REST , como Dremio, acessem tabelas gerenciais. Para clientes externos que não suportam APIs abertas, você pode usar Modede Compatibilidade para ler tabelas gerenciais usando qualquer cliente Delta Lake ou Iceberg . Delta Sharing, um protocolo de código aberto, permite o compartilhamento de dados seguro e governado com parceiros e plataformas externas.
O senhor pode trabalhar com tabelas gerenciáveis em todos os idiomas e produtos suportados no site Databricks. O senhor precisa de determinados privilégios para criar, atualizar, excluir ou consultar tabelas gerenciais. Consulte gerenciar privilégios em Unity Catalog.
Esta página descreve apenas tabelas gerenciadas do Unity Catalog. Para tabelas gerenciadas no Hive metastore legado, consulte Objetos de banco de dados no Hive metastore legado.
Por que usar as tabelas do Unity Catalog gerenciar?
As tabelas gerenciadas do Unity Catalog otimizam os custos de armazenamento e a velocidade das queries e permitem a interoperabilidade com ferramentas de terceiros para Delta Lake e Apache Iceberg. Para simplificar a gestão de dados e o desempenho, estas tabelas gerenciadas usam tecnologias alimentadas por IA, como compactação do tamanho do arquivo e coleta inteligente de estatísticas.
Os seguintes recursos são exclusivos das tabelas gerenciadas do Unity Catalog e não estão disponíveis para tabelas externas e tabelas estrangeiras:
Recurso | Benefícios | Habilitado por default? | Configurável? |
|---|---|---|---|
Habilita transações multi-declaração em tabelas, planejamento de consulta mais rápido ao fornecer metadados diretamente do Unity Catalog, alterações de esquema e restrições aplicáveis e gravações seguras de mecanismos externos. | Não. | Sim. Defina a propriedade da tabela | |
Otimização preditiva otimiza automaticamente a disposição e o compute dos seus dados usando AI, sem exigir operações de manutenção manual. A Databricks recomenda habilitar a otimização preditiva para todas as tabelas gerenciadas para reduzir os custos de armazenamento e compute. Otimização preditiva com execução automática:
| Sim, para todas as novas contas criadas a partir de 11 de novembro de 2024. Para contas atuais, a Databricks está gradualmente ativando a otimização preditiva por default. Consulte Verificar se a otimização preditiva está ativada. | Sim Consulte Habilitar a otimização preditiva. | |
Permite executar várias instruções SQL em uma ou mais tabelas como um único commit atômico, com garantias ACID. Todas as alterações são aplicadas em conjunto ou revertidas em conjunto. Use para procedimentos armazenados e scripts SQL em cargas de trabalho de data warehousing mais importantes. Transações que gravam em tabelas gerenciadas do Delta Lake estão em pré-lançamento público. Transações que gravam em tabelas Apache Iceberg gerenciadas estão em Prévia Particular. | Não. | Sim. Use | |
Para tabelas com otimização preditiva, o clustering líquido automático permite que o Databricks selecione de forma inteligente as chaves de clustering. Conforme os padrões de consulta mudam, o Databricks atualiza automaticamente as chaves de clustering para melhorar o desempenho e reduzir os custos. | Não. | Sim. Consulte Ativar clustering líquido. | |
Armazenamento em cache de metadados | O cache em memória de metadados de transação aprimora o desempenho de queries, minimizando as solicitações para o log de transações armazenado na cloud. | Sim. | Não. O cache de metadados está sempre ativado para tabelas gerenciar. |
Índices de pesquisa de texto completo aceleram as pesquisas de substrings e palavras-chave em colunas de texto de tabelas gerenciadas. Quando um índice é aplicado, o Databricks ignora arquivos que não podem conter linhas correspondentes, reduzindo a quantidade de dados verificados. Índices de pesquisa de texto completo aceleram as pesquisas de subcadeias e palavras usando as funções Índices de pesquisa de texto completo estão em Beta e exigem Databricks Runtime 18.2 e acima. | Não. | Sim. Criar com | |
Se você DESCARTAR uma tabela gerenciada, o Databricks exclui os dados no armazenamento em nuvem após 8 dias para reduzir seus custos de armazenamento. Para tabelas externas, é preciso excluir manualmente os arquivos do bucket de armazenamento. | Sim. | Não. Para tabelas gerenciais, os arquivos são sempre excluídos automaticamente após 8 dias. |
Access Databricks uso de dados em sistemas externos
As tabelas gerenciar oferecem suporte à interoperabilidade permitindo acesso de clientes Delta Lake e Iceberg . Por meio de APIs abertas e fornecimento de credenciais, Unity Catalog permite que mecanismos externos como Trino, DuckDB, Apache Spark, Daft e mecanismos integrados ao catálogo Iceberg REST , como Dremio e Snowflake , acessem tabelas gerenciais. Consulte integrações para obter uma lista de mecanismos externos suportados ou verifique a documentação do seu mecanismo se ele não estiver incluído nesta lista.
As seguintes APIs abertas fornecem acesso de sistemas externos às tabelas de gerenciamento Unity Catalog :
- API REST do Unity : Fornece acesso de leitura, gravação e criação para que os clientes Delta gerenciem tabelas Delta .
- Catálogo REST Iceberg (IRC) : Fornece acesso de leitura, gravação e criação para clientes Iceberg gerenciarem tabelas Iceberg e acesso somente leitura a tabelas Delta com leituras Iceberg habilitadas (UniForm).
Ambas as APIs suportam o fornecimento de credenciais, que oferece credenciais temporárias e com escopo definido, as quais herdam os privilégios da entidade solicitante do Databricks, mantendo os controles de governança e segurança.
Além disso, o Delta Sharing é um protocolo de código aberto que permite acesso seguro e controlado a dados de parceiros e plataformas externas. Você pode usar o Delta Sharing para conceder aos parceiros acesso temporário somente leitura.
Todas as operações de leitura e gravação em tabelas gerenciadas devem usar os nomes das tabelas, bem como os nomes do catálogo e do esquema, quando existirem. Por exemplo, catalog_name.schema_name.table_name. O acesso baseado em caminho às tabelas gerenciadas Unity Catalog não é suportado (exceto no Modede Compatibilidade), pois ignora os controles de acesso Unity Catalog e pode resultar em possível corrupção ou perda de dados, dependendo da sua versão Databricks Runtime ou do cliente OSS.
Criar uma tabela gerenciadora
Para criar uma tabela gerenciar, o senhor deve ter:
USE SCHEMAno esquema principal da tabela.USE CATALOGno catálogo principal da tabela.CREATE TABLEno esquema principal da tabela.
Use a seguinte sintaxe SQL para criar uma tabela gerenciar vazia usando SQL. Substitua os valores do espaço reservado:
<catalog-name>: nome do catálogo que conterá a tabela.<schema-name>: o nome do esquema contendo 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 nas leituras e gravações, o site Databricks executa periodicamente operações para otimizar os metadados da tabela gerenciar Iceberg. Essa tarefa é realizada usando serverless compute, que tem permissões MODIFY na tabela Iceberg. Essa operação só grava nos metadados da tabela, e o site compute só mantém as permissões da tabela durante a duração da tarefa.
Para criar uma tabela Iceberg, especifique explicitamente USING iceberg. Caso contrário, Databricks cria uma tabela Delta Lake por default.
O senhor pode criar tabelas gerenciar a partir de resultados de consultas ou DataFrame escrever operações. Os artigos a seguir demonstram alguns dos muitos padrões que o senhor pode usar para criar uma mesa de gerenciar em Databricks:
Soltar uma tabela gerenciar
Para descartar uma tabela gerenciar, o senhor deve ter:
MANAGEna mesa ou você deve ser o dono da mesa.USE SCHEMAno esquema principal da tabela.USE CATALOGno catálogo principal da tabela.
Para descartar uma tabela gerenciada, execute o seguinte comando SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog suporta o comando UNDROP TABLE para recuperar tabelas gerenciais descartadas por 8 dias. Após 8 dias, Databricks marca os dados subjacentes para exclusão do seu tenant cloud e remove os arquivos durante a manutenção automatizada da tabela. Veja UNDROP.