Ligar a um local externo do Cloudflare R2

Esta página descreve como se ligar a uma localização externa da Cloudflare R2. Depois de se ligar, pode gerir o acesso a estes objetos R2 usando o Unity Catalog.

Para conseguires ligar com sucesso a um caminho Cloudflare R2, precisas de dois objetos seguráveis no Unity Catalog. A primeira é uma credencial de armazenamento, que especifica um token API R2 que permite o acesso à localização R2. Precisas desta credencial de armazenamento para o segundo objeto necessário: uma localização externa, que define o caminho para a tua localização de armazenamento R2 e as credenciais necessárias para aceder a essa localização.

Requirements

  • Espaço de trabalho Databricks ativado para o Unity Catalog.

  • Databricks Runtime 14.3 ou superior ou SQL warehouse 2024.15 ou superior.

    Se você encontrar a mensagem No FileSystem for scheme "r2”de erro , sua computação provavelmente está em uma versão não suportada.

  • Uma conta Cloudflare. Consulte https://dash.cloudflare.com/sign-up.

  • Um cargo de Administrador Cloudflare R2. Consulte a documentação de funções da Cloudflare.

  • CREATE STORAGE CREDENTIAL e CREATE EXTERNAL LOCATION privilégios sobre o metastore do Unity Catalog associado ao espaço de trabalho. Administradores de contas e administradores da metastore têm estes privilégios por defeito.

Passo 1: Configure um bucket R2

  1. Crie um repositório do Cloudflare R2.

    Você pode usar o painel da Cloudflare ou a ferramenta Cloudflare Wrangler.

    Consulte a documentação "Introdução" do Cloudflare R2 ou a documentação do Wrangler.

  2. Crie um token de API R2 e aplique-o ao bucket.

    Consulte a documentação de autenticação da API do Cloudflare R2.

    Defina as seguintes propriedades de token:

    • Permissões: Ler & Gravar Objetos.

      Essa permissão concede acesso de leitura e gravação, que é necessário quando você usa o armazenamento R2 como destino de replicação, conforme descrito em Usar réplicas do Cloudflare R2 ou migrar o armazenamento para o R2.

      Caso pretenda impor o acesso apenas de leitura do Azure Databricks ao bucket R2, pode, em vez disso, criar um token que conceda apenas acesso de leitura. No entanto, isso pode ser desnecessário, porque você pode marcar a credencial de armazenamento como somente leitura e qualquer acesso de gravação concedido por essa permissão será ignorado.

    • (Opcional) TTL: O período de tempo que você deseja compartilhar os dados do bucket com os destinatários dos dados.

    • (Opcional) Filtragem de Endereço IP do Cliente: Selecione se deseja limitar o acesso à rede aos endereços IP de destinatários especificados. Se essa opção estiver habilitada, você deverá especificar os endereços IP dos destinatários e permitir o endereço IP NAT do plano de controle Databricks para a região do espaço de trabalho.

    Consulte Endereços IP e domínios para serviços e ativos do Azure Databricks.

  3. Copie os valores do token da API R2:

    • ID da chave de acesso
    • Chave de acesso secreta

    Importante

    Os valores de token são mostrados apenas uma vez.

  4. Na página inicial do R2, vá para Detalhes da conta e copie o ID da conta R2.

Passo 2: Criar a credencial de armazenamento

  1. No Azure Databricks, inicie sessão na sua área de trabalho.

  2. Clique no ícone Dados.Catálogo.

  3. Clique no botão Dados >Externos, vá ao separador Credenciais e selecione Criar credencial.

  4. Selecione Credencial de armazenamento.

  5. Selecione um Tipo de Credencial de Token de API da Cloudflare.

  6. Insira um nome para a credencial e os seguintes valores que você copiou quando configurou o bucket R2:

    • ID da conta
    • ID da chave de acesso
    • Chave de acesso secreta
  7. (Opcional) Se desejar que os usuários tenham acesso somente leitura aos locais externos que usam essa credencial de armazenamento, em Opções avançadas , selecione Somente leitura.

    Não selecione essa opção se quiser usar a credencial de armazenamento para acessar o armazenamento R2 que está usando como destino de replicação, conforme descrito em Usar réplicas do Cloudflare R2 ou migrar o armazenamento para o R2.

    Para obter mais informações, consulte Marcar uma credencial de armazenamento como somente de leitura.

  8. Clique em Criar.

  9. Na caixa de diálogo Credencial de armazenamento criada, copie a ID externa.

  10. (Opcional) Associe a credencial de armazenamento a espaços de trabalho específicos.

    Por padrão, uma credencial de armazenamento pode ser usada por qualquer usuário privilegiado em qualquer espaço de trabalho anexado ao metastore. Se quiser permitir o acesso apenas a partir de espaços de trabalho específicos, aceda ao separador Espaços de Trabalho e atribua espaços de trabalho. Veja Atribuir uma credencial de armazenamento a espaços de trabalho específicos.

Passo 3: Criar a localização externa

Para criar a localização externa, usa o Explorador de Catálogos se preferires usar uma interface gráfica, ou SQL se preferires criação programática.

Opção 1: Criar um local externo usando o Catalog Explorer

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

  2. Na barra lateral, clique no ícone Dados.Catálogo.

  3. Clique no botão Dados >Externos, vá ao separador Localizações Externas e clique em Criar Localização Externa.

  4. No diálogo Criar uma nova localização externa , clique em Manual e depois em Próximo.

    Não pode usar a opção AWS Quickstart para criar uma localização externa para o root do DBFS.

  5. No diálogo Criar uma nova localização externa manualmente , insira um nome de localização externa.

  6. Em Tipo de Armazenamento, selecione R2.

  7. Em URL, introduza o caminho. Por exemplo, r2://my-bucket@my-account-id.r2.cloudflarestorage.com.

  8. Em credencial de armazenamento, selecione a credencial de armazenamento que concede acesso à localização externa.

  9. (Opcional) Se quiser que os utilizadores tenham acesso apenas de leitura à localização externa, clique em Opções Avançadas e selecione Limitar para uso só de leitura. Você pode alterar essa configuração mais tarde. Para obter mais informações, consulte Marcar um local externo como leitura somente.

  10. (Opcional) Se a localização externa se destinar à migração de cargas de trabalho legadas, clique em Opções avançadas e ative o modo de recurso.

    Consulte Ativar o modo de fallback em locais externos.

  11. Clique em Criar.

  12. (Opcional) Vincule o local externo a espaços de trabalho específicos.

    Por padrão, qualquer usuário privilegiado pode usar o local externo em qualquer espaço de trabalho anexado ao metastore. Se quiser permitir o acesso apenas a partir de espaços de trabalho específicos, aceda ao separador Espaços de Trabalho e atribua espaços de trabalho. Veja Atribuir uma localização externa a espaços de trabalho específicos.

  13. Vá para o separador Permissões para conceder 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.
    1. Clique em Conceder.
    2. No diálogo Conceder em <external location>, selecione utilizadores, grupos ou entidades de serviço no campo Entidades e selecione o privilégio que deseja conceder.
    3. Clique em Conceder.

Opção 2: 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 substitutos.

  • <location-name>: Uma designação para o local externo. Caso location_name inclua caracteres especiais, como hífenes (-), estes devem ser envoltos por backticks (` `). Consulte Nomes.
  • <bucket-path>: O caminho em seu locatário de nuvem ao qual esse local externo concede acesso. Por exemplo, r2://my-bucket@my-account-id.r2.cloudflarestorage.com.
  • <storage-credential-name>: O nome da credencial de armazenamento que autoriza a leitura e a escrita no bucket. Se o nome da credencial de armazenamento incluir caracteres especiais, como hífenes (-), deverá ser delimitado por backticks (` `).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Se quiser limitar o acesso a localizações externas a espaços de trabalho específicos na sua conta, também conhecido como ligação de espaços de trabalho ou isolamento de localização externa, consulte Atribuir uma localização externa a espaços de trabalho específicos.