Crie um local externo para conectar o armazenamento em nuvem ao Azure Databricks
Esse artigo descreve como configurar um local externo no Catálogo do Unity para conectar o armazenamento em nuvem ao Azure Databricks.
Locais externos associam credenciais de armazenamento do Catálogo do Unity a contêineres de armazenamento de objetos de nuvem. Locais externos são usados para definir locais de armazenamento gerenciado para catálogos e esquemas e para definir locais para tabelas externas e volumes externos.
Você pode criar um local externo que faça referência ao armazenamento em um contêiner de armazenamento do Azure Data Lake Storage Gen2 ou em um bucket do Cloudflare R2.
Você pode criar um local externo usando o Explorador do Catálogo, a CLI do Databricks, comandos SQL em um notebook ou em uma consulta do SQL do Databricks ou o Terraform.
Observação
Ao definir um volume, o acesso de URI de nuvem aos dados no caminho do volume é regido pelas permissões do volume.
Antes de começar
Pré-requisitos:
Você deve criar o contêiner de armazenamento do Azure Data Lake Storage Gen2 ou o bucket do Cloudflare R2 que deseja usar como um local externo antes de criar o objeto de local externo no Azure Databricks.
As contas de armazenamento do Azure Data Lake Storage Gen2 que você usa como locais externos devem ter um namespace hierárquico.
Você deve ter uma credencial de armazenamento definida no Azure Databricks que dê acesso ao caminho do local de armazenamento na nuvem. Consulte Criar uma credencial de armazenamento para se conectar ao Azure Data Lake Storage Gen2 e Criar uma credencial de armazenamento para se conectar ao Cloudflare R2.
Requisitos de permissões:
- Você deve ter o privilégio
CREATE EXTERNAL LOCATION
tanto no metastore quanto na credencial de armazenamento referenciada no local externo. Por padrão, os administradores do metastore têmCREATE EXTERNAL LOCATION
no metastore.
Criar um local externo utilizando o Gerenciador de Catálogos
Você pode criar um local externo manualmente usando o Catalog Explorer.
Permissões e pré-requisitos: consulte Antes de começar.
Para criar a localização externa:
Clique em Catálogo para abrir o Gerenciador de Catálogos.
Clique no botão + Adicionar e selecione Adicionar um local externo.
Digite um Nome de localização externa.
Opcionalmente, copie o caminho do contêiner de um ponto de montagem existente (somente contêineres do Azure Data Lake Storage Gen2).
Se você não estiver copiando de um ponto de montagem existente, use o campo URL para inserir o contêiner de armazenamento ou o caminho do bucket R2 que deseja usar como local externo.
Por exemplo,
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
our2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.Selecione a credencial de armazenamento que concede acesso ao local externo.
(Opcional) Se quiser que os usuários tenham acesso somente para leitura ao local externo, clique em Opções Avançadas e selecione Somente leitura. Para obter mais informações, confira Marcar um local externo como somente leitura.
Clique em Criar.
Conceder a permissão para usar a localização externa.
Para que qualquer pessoa possa usar o local externo, você deve conceder permissões:
- Para usar o local externo para adicionar um local de armazenamento gerenciado ao metastore, catálogo ou esquema, conceda o privilégio
CREATE MANAGED LOCATION
. - Para criar tabelas ou volumes externos, conceda
CREATE EXTERNAL TABLE
ouCREATE EXTERNAL VOLUME
.
Para usar o Gerenciador de Catálogos para conceder permissões:
- Clique no nome do local externo para abrir o painel de detalhes.
- Na guia Permissões, clique em Conceder.
- Na caixa de diálogo Conceder em
<external location>
, selecione usuários, grupos ou entidades de serviço no campo Entidade de segurança e selecione o privilégio que deseja conceder. - Clique em Conceder.
- Para usar o local externo para adicionar um local de armazenamento gerenciado ao metastore, catálogo ou esquema, conceda o privilégio
Crie um local externo usando SQL
Para criar um local externo usando o SQL, execute o seguinte comando em um notebook ou no editor de consultas SQL. Substitua os valores de espaço reservado.
Permissões e pré-requisitos: consulte Antes de começar.
<location-name>
: um nome para o local externo. Selocation_name
incluir caracteres especiais, como hifens (-
), ele deverá ser colocado entre crases (` `
). Veja Nomes.<bucket-path>
: o caminho no locatário de nuvem ao qual esse local externo concede acesso. Por exemplo,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
our2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.<storage-credential-name>
: O nome da credencial de armazenamento que autoriza a leitura e gravação no contêiner de armazenamento ou no caminho do bucket. Se o nome da credencial incluir caracteres especiais, como hifens (-
), ele deverá ser colocado entre crases (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Próximas etapas
- Conceda a outros usuários permissão para usar locais externos. Confira Gerenciar locais externos.
- Defina locais de armazenamento gerenciados usando locais externos. Consulte Especificar um local de armazenamento gerenciado no catálogo do Unity.
- Defina tabelas externas usando locais externos. Consulte Criar uma tabela externa.
- Defina volumes externos usando locais externos. Confira Criar e trabalhar com volumes.