Compartilhar via


Como os caminhos funcionam para os dados gerenciados pelo Catálogo do Unity?

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

Observação

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 só podem gravar dados em discos de armazenamento efêmeros anexados a clusters de computação, em vez de persistir dados em volumes do Catálogo do Unity, conforme o esperado.

Os caminhos para objetos do catálogo do Unity não podem se sobrepor

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

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

Essas regras significam que as seguintes restrições existem no Catálogo do Unity:

  • Não é possível definir um local externo em 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.
  • Você não pode definir uma tabela em nenhum arquivo de dados ou diretórios dentro de um volume.
  • Não é possível definir um volume em um diretório dentro de uma tabela.

Observação

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

Os caminhos para tabelas gerenciadas e volumes gerenciados são totalmente gerenciados pelo Catálogo do Unity

Quando você cria uma tabela gerenciada ou um volume gerenciado, o Catálogo do Unity cria um novo diretório no local de armazenamento configurado pelo Catálogo do Unity associado ao esquema que o contém. O nome desse diretório é gerado aleatoriamente para evitar qualquer possível 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 Catálogo do Unity usando nomes de tabela e volumes gerenciados do Catálogo do Unity usando caminhos de volume.

Os caminhos para tabelas externas e volumes externos são regidos pelo Catálogo do Unity

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

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 em um local externo. Essas recomendações devem ajudar a evitar a sobreposição acidental de caminhos. Confira Os caminhos para objetos do Catálogo do Unity não podem se sobrepor.

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

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

Importante

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

Como você pode acessar dados no Catálogo do Unity?

Os objetos do Catálogo do Unity fornecem acesso aos dados por meio de identificadores de objeto, caminhos de volume ou URIs de nuvem. É possível usar esses valores para acessar dados associados a volumes e tabelas.

As tabelas do Catálogo do 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 arquivos de volume no Catálogo do Unity?

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 de nuvem exigem que os usuários forneçam o driver, o identificador de 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 do Catálogo do Unity:

Objeto Identificador de objeto Caminho do arquivo URI de nuvem
Local externo 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

Observação

Os volumes do Catálogo do 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.