Especificar um local de armazenamento gerenciado no Unity Catalog
Um local de armazenamento gerenciado especifica um local no armazenamento de objetos na nuvem para armazenar dados para tabelas gerenciadas e volumes gerenciados.
Você pode associar um local de armazenamento gerenciado a um metastore, catálogo ou esquema. Os locais de armazenamento gerenciado em níveis inferiores na hierarquia substituem os locais de armazenamento definidos em níveis mais altos quando tabelas gerenciadas ou volumes gerenciados são criados.
Quando um administrador de conta cria um metastore, ele pode associar um local de armazenamento em um contêiner do Azure Data Lake Storage Gen2 ou bucket do Cloudflare R2 em sua conta de provedor de nuvem para usar como um local de armazenamento gerenciado. Os locais de armazenamento gerenciado nos níveis de catálogo e esquema são opcionais, mas o Databricks recomenda atribuir locais de armazenamento gerenciado no nível do catálogo para isolamento lógico de dados. Consulte Blocos de construção de governança e isolamento de dados.
Importante
Se seu espaço de trabalho foi habilitado para o Unity Catalog automaticamente, o metastore do Unity Catalog foi criado sem um local de armazenamento gerenciado no nível do metastore. Você deve atribuir um local de armazenamento gerenciado no nível de catálogo ou esquema. Consulte Ativação automática do Catálogo Unity e Governança de dados e blocos de construção de isolamento de dados.
O que é um local de armazenamento gerenciado?
Os locais de armazenamento gerenciado têm as seguintes propriedades:
- Tabelas gerenciadas e volumes gerenciados armazenam dados e arquivos de metadados em locais de armazenamento gerenciados.
- Os locais de armazenamento gerenciado não podem se sobrepor a tabelas ou volumes externos.
A tabela a seguir descreve como um local de armazenamento gerenciado é declarado e associado a objetos do Unity Catalog:
Objeto Unity Catalog associado | Como definir | Relação com locais externos |
---|---|---|
Metastore | Configurado pelo administrador da conta durante a criação do metastore. | Não é possível sobrepor um local externo. |
Catálogo | Especificado durante a criação do catálogo usando a MANAGED LOCATION palavra-chave. |
Deve estar contido dentro de um local externo. |
Esquema | Especificado durante a criação do esquema usando a MANAGED LOCATION palavra-chave. |
Deve estar contido dentro de um local externo. |
O local de armazenamento gerenciado que armazena dados e metadados para tabelas gerenciadas e volumes gerenciados usa as seguintes regras:
- Se o esquema que contém tiver um local gerenciado, os dados serão armazenados no local gerenciado pelo esquema.
- Se o esquema que contém não tiver um local gerenciado, mas o catálogo tiver um local gerenciado, os dados serão armazenados no local gerenciado pelo catálogo.
- Se nem o esquema que contém nem o catálogo que contém tiverem um local gerenciado, os dados serão armazenados no local gerenciado do metastore.
O Unity Catalog evita a sobreposição de governança de localização. Consulte Como funcionam os caminhos para dados gerenciados pelo Unity Catalog?.
Local de armazenamento gerenciado, raiz de armazenamento e local de armazenamento
Quando você especifica um MANAGED LOCATION
para um catálogo ou esquema, o local fornecido é rastreado como a raiz de armazenamento no Unity Catalog. Para garantir que todas as entidades gerenciadas tenham um local exclusivo, o Unity Catalog adiciona subdiretórios com hash ao local especificado, usando o seguinte formato:
Object | Caminho |
---|---|
Esquema | <storage-root>/__unitystorage/schemas/00000000-0000-0000-0000-000000000000 |
Catálogo | <storage-root>/__unitystorage/catalogs/00000000-0000-0000-0000-000000000000 |
O caminho totalmente qualificado para o local de armazenamento gerenciado é rastreado como o local de armazenamento no Unity Catalog.
Você pode especificar o mesmo local de armazenamento gerenciado para vários esquemas e catálogos.
Privilégios necessários
Os usuários que têm o privilégio em um local externo podem configurar locais de armazenamento gerenciado durante a CREATE MANAGED STORAGE
criação de catálogo ou esquema.
Os locais de armazenamento gerenciado definidos no nível do metastore devem ser configurados pelos administradores da conta durante a criação do metastore.
Definir um local de armazenamento gerenciado para um catálogo
Defina um local de armazenamento gerenciado para um catálogo usando a palavra-chave durante a MANAGED LOCATION
criação do catálogo, como no exemplo a seguir:
CREATE CATALOG <catalog-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';
Definir um local de armazenamento gerenciado para um esquema
Defina um local de armazenamento gerenciado para um esquema usando a palavra-chave durante a MANAGED LOCATION
criação do esquema, como no exemplo a seguir:
CREATE CATALOG <catalog>.<schema-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';
Próximos passos
Os locais de armazenamento de gerenciamento são usados para criar tabelas gerenciadas e volumes gerenciados. Consulte Criar tabelas no Catálogo Unity e Criar e trabalhar com volumes.