Partilhar via


Como os caminhos funcionam para dados gerenciados pelo Unity Catalog?

Este artigo explica as restrições em torno de sobreposições de caminho no Unity Catalog, detalha padrões de acesso baseados em caminho para arquivos de dados em objetos do Unity Catalog e descreve como o Unity Catalog gerencia caminhos para tabelas e volumes.

Nota

Os volumes só são suportados no Databricks Runtime 13.3 LTS e superior. No Databricks Runtime 12.2 LTS e inferior, as operações em /Volumes caminhos podem ser bem-sucedidas, mas elas só podem gravar dados em discos de armazenamento efêmeros conectados a clusters de computação, em vez de persistir dados em volumes do Unity Catalog conforme o esperado.

Os caminhos para objetos do Unity Catalog não podem se sobrepor

O Unity Catalog impõe a governança de dados impedindo que diretórios gerenciados de dados se sobreponham. O Unity Catalog impõe as seguintes regras:

  • Os locais externos não podem sobrepor-se a outros locais externos.
  • Tabelas e volumes armazenam arquivos de dados em locais externos ou no local raiz do metastore.
  • Os volumes não podem sobrepor-se a outros volumes.
  • As tabelas não podem sobrepor-se a outras tabelas.
  • As tabelas e os volumes não podem sobrepor-se.
  • Os locais de armazenamento gerenciado não podem se sobrepor. Consulte Especificar um local de armazenamento gerenciado no Catálogo Unity.
  • Os volumes externos não podem sobrepor-se aos locais de armazenamento gerenciados.
  • As tabelas externas não podem sobrepor locais de armazenamento gerenciados.

Essas regras significam que as seguintes restrições existem no Unity Catalog:

  • Não é possível definir um local externo dentro de outro local externo.
  • Não é possível definir um volume dentro de outro volume.
  • Não é possível definir uma tabela dentro de outra tabela.
  • Não é possível definir uma tabela em nenhum arquivo de dados ou diretório dentro de um volume.
  • Não é possível definir um volume em um diretório dentro de uma tabela.

Nota

Você sempre pode usar o acesso baseado em caminho para gravar ou ler arquivos de dados de volumes, incluindo Delta Lake. Não é possível registrar esses arquivos de dados como tabelas no metastore do Unity Catalog.

Os caminhos para tabelas gerenciadas e volumes gerenciados são totalmente gerenciados pelo Unity Catalog

Quando você cria uma tabela gerenciada ou um volume gerenciado, o Unity Catalog cria um novo diretório no local de armazenamento configurado pelo Unity Catalog associado ao esquema que contém. O nome deste diretório é gerado aleatoriamente para evitar qualquer potencial colisão com outros diretórios já presentes.

Esse comportamento difere de como o metastore do Hive cria tabelas gerenciadas. O Databricks recomenda sempre interagir com tabelas gerenciadas do Unity Catalog usando nomes de tabelas e volumes gerenciados do Unity Catalog usando caminhos de volume.

Os caminhos para tabelas externas e volumes externos são regidos pelo Unity Catalog

Ao criar uma tabela externa ou um volume externo, você especifica um caminho dentro de um local externo regido pelo Unity Catalog.

Importante

O Databricks recomenda nunca criar um volume externo ou uma tabela externa na raiz de um local externo. Em vez disso, crie volumes externos e tabelas externas em subdiretórios dentro de um local externo. Estas recomendações devem ajudar a evitar a sobreposição acidental de caminhos. Consulte Caminhos para objetos do Unity Catalog que não podem se sobrepor.

Para facilitar o uso, o Databricks recomenda interagir com tabelas externas do Unity Catalog usando nomes de tabelas e volumes externos do Unity Catalog usando caminhos de volume.

Como alternativa, os usuários com privilégios suficientes no objeto Unity Catalog correspondente podem acessar dados de uma tabela externa ou volume externo usando o caminho de armazenamento de objeto em nuvem totalmente qualificado.

Importante

O Unity Catalog gerencia todos os privilégios de acesso usando URIs de nuvem a dados associados a tabelas externas ou volumes externos. Esses privilégios substituem quaisquer privilégios associados a locais externos. Consulte Privilégios do Catálogo Unity e objetos protegíveis

Como você pode acessar dados no Unity Catalog?

Os objetos do Unity Catalog fornecem acesso aos dados por meio de identificadores de objeto, caminhos de volume ou URIs na nuvem. Você pode usar esses valores para acessar dados associados a volumes e tabelas.

As tabelas do Catálogo Unity são acessadas usando um identificador de três camadas com o seguinte padrão:

<catalog_name>.<schema_name>.<table_name>

O que são caminhos de arquivo de volume no Unity Catalog?

Os volumes fornecem um caminho de arquivo para acessar arquivos de dados com o seguinte padrão:

/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>

Os URIs na nuvem exigem que os usuários forneçam o driver, o identificador do contêiner de armazenamento e o caminho completo para os arquivos de destino, como no exemplo a seguir:

abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>

A tabela a seguir mostra os métodos de acesso permitidos para objetos Unity Catalog:

Object Identificador do objeto Caminho do ficheiro URI da nuvem
Localização externa não não sim
Tabela gerenciada sim não não
Tabela externa sim não sim
Volume gerenciado não sim não
Volume externo não sim sim

Nota

Os volumes do Catálogo Unity usam identificadores de objeto de três camadas com o seguinte padrão para comandos de gerenciamento (como CREATE VOLUME e DROP VOLUME):

<catalog_name>.<schema_name>.<volume_name>

Para realmente trabalhar com arquivos em volumes, você deve usar o acesso baseado em caminho.