Share via


Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks

Este artigo descreve como configurar um local externo no Unity Catalog para conectar o armazenamento em nuvem ao Azure Databricks.

Locais externos associam credenciais de armazenamento do Unity Catalog a contêineres de armazenamento de objetos na nuvem. Os 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 bucket do Cloudflare R2.

Você pode criar um local externo usando o Gerenciador de Catálogos, a CLI do Databricks, os comandos SQL em um bloco de anotações ou a consulta SQL do Databricks ou o Terraform.

Nota

Quando você define um volume, o acesso URI da nuvem aos dados sob o caminho do volume é regido pelas permissões do volume.

Antes de começar

Pré-requisitos:

Requisitos de permissões:

  • Você deve ter o CREATE EXTERNAL LOCATION privilégio no metastore e na credencial de armazenamento referenciada no local externo. Os administradores do Metastore têm CREATE EXTERNAL LOCATION no metastore por padrão.

Criar um local externo usando o Catalog Explorer

Você pode criar um local externo manualmente usando o Catalog Explorer.

Permissões e pré-requisitos: consulte Antes de começar.

Para criar o local externo:

  1. Faça login em um espaço de trabalho anexado ao metastore.

  2. Na barra lateral, clique em Ícone do catálogoCatálogo.

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

  4. Insira um nome de local externo.

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

  6. 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 o 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>.

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

  8. (Opcional) Se desejar que os usuários tenham acesso somente leitura ao local externo, clique em Opções Avançadas e selecione Somente leitura. Para obter mais informações, consulte Marcar um local externo como somente leitura.

  9. Clique em Criar.

  10. Conceda permissão para usar o local externo.

    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 CREATE MANAGED LOCATION privilégio.
    • Para criar tabelas ou volumes externos, conceda CREATE EXTERNAL TABLE ou CREATE EXTERNAL VOLUME.

    Para usar o Catalog Explorer 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 Entidades e selecione o privilégio que deseja conceder.
    4. Clique em Conceder.

Criar um local externo usando SQL

Para criar um local externo usando SQL, execute o seguinte comando em um bloco de anotações 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 hífenes (-), ele deve ser cercado por backticks (` `). Consulte Nomes.

  • <bucket-path>: O caminho em seu 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 a gravação no contêiner de armazenamento ou no caminho do bucket. Se o nome da credencial de armazenamento incluir caracteres especiais, como hífenes (-), ele deverá ser cercado por backticks (` `).

CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Próximos passos