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

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

Locais externos associam credenciais de armazenamento do Unity Catalog a contêineres de armazenamento de objetos clouds . Locais externos são usados para definir locais de armazenamento de gerenciamento para catálogos e esquemas e para definir locais para tabelas externas e volumes externos.

O senhor pode criar um local externo que faça referência ao armazenamento em um bucket do Google Cloud Storage (GCS) ou do Cloudflare R2.

Você pode criar um local externo usando o Catalog Explorer, a CLI do Databricks ou o comando SQL em uma Notebook ou do Databricks SQL query Databricks.

Observação

Quando o senhor define um volume, o acesso do URI de nuvens aos dados no caminho do volume é regido pelas permissões do volume.

Antes de começar

Pré-requisitos:

  • O senhor deve criar o bucket do Google Cloud Storage (GCS) ou do Cloudflare R2 que deseja usar como local externo antes de criar o objeto de local externo no Databricks.

Requisitos de permissões:

  • O senhor deve ter o privilégio CREATE EXTERNAL LOCATION tanto no metastore quanto na credencial de armazenamento referenciada no local externo. Os administradores do metastore têm CREATE EXTERNAL LOCATION no metastore em default.

Crie um local externo usando o Catalog Explorer

O senhor 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. Clique em Catálogo para abrir o Catalog Explorer.

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

  3. Insira um nome de local externo.

  4. Opcionalmente, copie o caminho do bucket de um ponto de montagem existente (somente buckets GCS).

  5. Se não estiver copiando de um ponto de montagem existente, use o campo URL para inserir o caminho do bucket que deseja usar como local externo.

    Por exemplo, gs://mybucket/<path> ou r2://mybucket@my-account-id.r2.cloudflarestorage.com/<path>.

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

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

  8. Clique em Criar.

  9. 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 de gerenciamento 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 Catalog Explorer para conceder permissões:

    1. Clique no nome do local externo para abrir o painel de detalhes.

    2. Na Permissões tab, clique em Conceder .

    3. Na caixa de diálogo Conceder em <external location> , selecione usuários, grupos ou entidade de serviço no campo Principais e selecione o privilégio que deseja conceder.

    4. Clique em Conceder.

Crie um local externo usando SQL

Para criar um local externo usando SQL, execute o seguinte comando em um Notebook ou no editor de consultas SQL. Substitua os valores do 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ífens (-), ele deverá ser cercado por pontos ( ` ` ). Veja os nomes.

  • <bucket-path>: O caminho em suas nuvens tenant ao qual esse local externo concede acesso. Por exemplo, gs://mybucket ou r2://mybucket@my-account-id.r2.cloudflarestorage.com.

  • <storage-credential-name>: O nome da credencial de armazenamento que autoriza a leitura e a gravação no bucket. Se o nome da credencial de armazenamento incluir caracteres especiais, como hífens (-), ele deverá ser cercado por pontos traseiros ( ` ` ).

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

Próximos passos