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:

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êm CREATE 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:

  1. Clique em Catálogo para abrir o Gerenciador de Catálogos.

  2. Clique no botão + Adicionar e selecione Adicionar um local externo.

  3. Digite um Nome de localização externa.

  4. Opcionalmente, copie o caminho do contêiner de um ponto de montagem existente (somente contêineres do Azure Data Lake Storage Gen2).

  5. 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> ou r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  6. Selecione a credencial de armazenamento que concede acesso ao local externo.

  7. (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.

  8. Clique em Criar.

  9. 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 ou CREATE EXTERNAL VOLUME.

    Para usar o Gerenciador de Catálogos para conceder permissões:

    1. Clique no nome do local externo para abrir o painel de detalhes.
    2. Na guia Permissões, clique em Conceder.
    3. 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.
    4. Clique em Conceder.

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. Se location_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> ou r2://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