Como os caminhos funcionam para gerenciar dados pelo site Unity Catalog?
Este artigo explica as restrições relacionadas a sobreposições de caminhos em Unity Catalog, detalha os padrões de acesso baseados em caminhos para arquivos de dados em objetos Unity Catalog e descreve como Unity Catalog gerencia caminhos para tabelas e volumes.
Os volumes são compatíveis apenas com o Databricks Runtime 13.3 LTS e acima. Em Databricks Runtime 12.2 LTS e abaixo, as operações contra os caminhos /Volumes
podem ser bem-sucedidas, mas só podem gravar dados em discos de armazenamento efêmeros anexados ao clustering compute, em vez de persistir os dados em volumes Unity Catalog, como esperado.
Os caminhos para os objetos do Unity Catalog não podem se sobrepor
O Unity Catalog reforça a governança de dados impedindo que os diretórios gerenciados de dados se sobreponham. O Unity Catalog 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.
- Os volumes não podem se sobrepor a outros volumes.
- As tabelas não podem se sobrepor a outras tabelas.
- Tabelas e volumes não podem se sobrepor.
- Os locais de armazenamento gerenciados não podem se sobrepor uns aos outros. Consulte Especificar um local de armazenamento gerenciar em Unity Catalog.
- Os volumes externos não podem se sobrepor aos locais de armazenamento gerenciados.
- As tabelas externas não podem se sobrepor aos locais de armazenamento gerenciar.
Essas regras significam que existem as seguintes restrições no Unity Catalog:
- Você não pode definir um local externo dentro de outro local externo.
- Você não pode definir um volume dentro de outro volume.
- Você não pode definir uma tabela dentro de outra tabela.
- Você não pode definir uma tabela em nenhum arquivo de dados ou diretório dentro de um volume.
- Você não pode definir um volume em um diretório dentro de uma tabela.
O senhor sempre pode usar o acesso baseado em caminho para gravar ou ler arquivos de dados de volumes, incluindo o Delta Lake. O senhor não pode registrar esses arquivos de dados como tabelas no metastore Unity Catalog.
Os caminhos para gerenciar tabelas e gerenciar volumes são totalmente gerenciados pelo Unity Catalog
Quando o senhor cria uma tabela gerenciar ou um volume gerenciar, o site Unity Catalog cria um novo diretório no local de armazenamento configurado em Unity Catalogassociado 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 da forma como o site Hive metastore cria tabelas gerenciais. Databricks recomenda sempre interagir com Unity Catalog gerenciar tabelas usando nomes de tabela e Unity Catalog gerenciar volumes 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, o senhor especifica um caminho em um local externo controlado pelo Unity Catalog.
A 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. Consulte Caminhos para objetos do Unity Catalog que não podem se sobrepor.
Para facilitar o uso, a Databricks recomenda interagir com tabelas externas do Unity Catalog usando nomes de tabela e volumes externos do Unity Catalog usando caminhos de volume.
Como alternativa, os usuários com privilégios suficientes no objeto correspondente do Unity Catalog podem acessar dados de uma tabela externa ou de um volume externo usando o caminho de armazenamento do objeto de nuvem totalmente qualificado.
Unity Catalog Gerenciar todos os privilégios de acesso usando URIs de nuvem para dados associados a tabelas externas ou volumes externos. Esses privilégios substituem quaisquer privilégios associados a locais externos. Consulte Privilégios e objetos protegidos do Unity Catalog
Como o senhor pode acessar os dados no Unity Catalog?
Os objetos do Unity Catalog fornecem acesso aos dados por meio de identificadores de objeto, caminhos de volume ou URIs de nuvem. Você pode usar esses valores para acessar dados associados a volumes e tabelas.
As tabelas do Unity Catalog 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 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 do Cloud 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:
s3://<bucket_name>/<path>
A tabela a seguir mostra os métodos de acesso permitidos para os objetos do Unity Catalog:
Objeto | Identificador de objeto | Caminho do arquivo | URI da nuvem |
---|---|---|---|
Localização externa | Não | Não | Sim |
gerenciar mesa | Sim | Não | Não |
Mesa externa | Sim | Não | Sim |
Volume gerenciado | Não | Sim | Não |
Volume externo | Não | Sim | Sim |
Unity Catalog Os volumes usam identificadores de objetos de três camadas com o seguinte padrão para comando 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.