Pular para o conteúdo principal

Conecte-se a um local externo do Cloudflare R2

Esta página descreve como se conectar a um local externo do Cloudflare R2. Depois de se conectar, o senhor pode controlar o acesso a esses objetos R2 usando o Unity Catalog.

Para se conectar com sucesso a um caminho R2 do Cloudflare, o senhor precisa de dois objetos securizáveis do Unity Catalog. A primeira é uma credencial de armazenamento, que especifica um token R2 API que permite o acesso ao local R2. Você precisa dessa credencial de armazenamento para o segundo objeto necessário: um local externo, que define o caminho para seu local de armazenamento R2 e as credenciais necessárias para acessar esse local.

Requisitos

  • Um workspace do Databricks ativado para o Unity Catalog.

  • Databricks Runtime 14.3 ou acima, ou SQL warehouse 2024.15 ou acima.

    Se o senhor encontrar a mensagem de erro No FileSystem for scheme "r2”, provavelmente o seu compute está em uma versão não suportada.

  • A Cloudflare account. Consulte https://dash.cloudflare.com/sign-up.

  • Uma função de administrador do Cloudflare R2. Veja a documentação das funções da Cloudflare.

  • CREATE STORAGE CREDENTIAL e CREATE EXTERNAL LOCATION privilégios no metastore Unity Catalog anexado ao workspace. Os administradores de conta e os administradores de metastore têm esses privilégios em default.

o passo 1: Configurar um bucket R2

  1. Crie um bucket do Cloudflare R2.

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

    Consulte a documentação do Cloudflare R2 "Get começar" ou a documentação do Wrangler.

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

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

    Defina as seguintes propriedades de tokens:

    • Permissões : Object Read & Write.

      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 R2 da Cloudflare ou migrar o armazenamento para o R2.

      Se o senhor quiser impor o acesso somente leitura de Databricks ao bucket R2, poderá criar um token que conceda somente acesso de leitura. No entanto, isso pode ser desnecessário, pois você pode marcar a credencial de armazenamento como somente para leitura e qualquer acesso de gravação concedido por essa permissão será ignorado.

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

    • (Opcional) Filtragem de endereços IP do cliente : selecione se você quiser limitar o acesso à rede aos endereços IP de destinatários especificados. Se essa opção estiver ativada, o senhor deverá especificar os endereços IP dos destinatários e listar o endereço IP NAT do plano de controle Databricks para a região workspace.

    Consulte IPs de saída do plano de controle do Databricks.

  3. Copie os valores dos tokens do R2 API:

    • ID da chave de acesso

    • Chave de acesso secreta

important

Os valores dos tokens são mostrados apenas uma vez.

  1. Na página inicial do R2, acesse os detalhes da conta e copie o ID do R2 account.

o passo 2: Criar a credencial de armazenamento

  1. Em Databricks, log in para o seu workspace.

  2. Clique em Ícone de dados. Catálogo .

  3. Na página Quick access (Acesso rápido ), clique no botão External data (Dados externos ) >, vá para Credentials (Credenciais ) tab e selecione Create credential (Criar credencial).

  4. Selecione Credencial de armazenamento .

  5. Selecione um Credential Type dos tokens do Cloudflare API .

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

    • ID da conta
    • ID da chave de acesso
    • Chave de acesso secreta
  7. (Opcional) Se você quiser que os usuários tenham acesso somente para leitura às external locations 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 você está usando como destino de replicação, conforme descrito em Usar réplicas R2 da Cloudflare ou migrar o armazenamento para R2.

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

  8. Clique em Criar .

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

  10. (Opcional) Vincule a credencial de armazenamento a workspaces específicos.

    Pelo site default, uma credencial de armazenamento pode ser usada por qualquer usuário privilegiado em qualquer workspace anexado ao metastore. Se o senhor quiser permitir o acesso somente a partir de um espaço de trabalho específico, acesse o espaço de trabalho tab e atribua o espaço de trabalho. Consulte Atribuir uma credencial de armazenamento a um espaço de trabalho específico.

o passo 3: Criar o local externo

Para criar o local externo, use o Catalog Explorer, se o senhor preferir usar uma interface gráfica, ou o SQL, se preferir a criação programática.

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

  1. Faça login em um site workspace que esteja anexado ao metastore.

  2. Na barra lateral, clique em Ícone de dados. Catálogo .

  3. Na página de acesso rápido , clique no botão External data (Dados externos ) >, vá para External Locations (Locais externos ) tab e clique em Create external location (Criar local externo).

  4. Na caixa de diálogo Criar um novo local externo , clique em Manual e depois em Avançar .

    O senhor não pode usar a opção AWS Quickstart para criar um local externo para DBFS root.

  5. Na caixa de diálogo Criar um novo local externo manualmente , insira um nome de local externo .

  6. Em Tipo de armazenamento , selecione R2 .

  7. Em URL , insira 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 ao local externo.

  9. (Opcional) Se você quiser que os usuários tenham acesso somente para leitura ao local externo, clique em Opções avançadas e selecione Limitar ao uso somente para leitura . Você pode alterar essa configuração posteriormente. Para obter mais informações, consulte Marcar um local externo como somente leitura.

  10. (Opcional) Se o local externo for destinado à migração de carga de trabalho herdada, clique em Advanced options (Opções avançadas ) e ative o modo de fallback .

    Consulte Ativar o modo de fallback em locais externos.

  11. Clique em Criar .

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

    Em default, qualquer usuário privilegiado pode usar o local externo em qualquer workspace anexado ao metastore. Se o senhor quiser permitir o acesso somente a partir de um espaço de trabalho específico, acesse o espaço de trabalho tab e atribua o espaço de trabalho. Consulte Atribuir um local externo a um espaço de trabalho específico.

  13. Acesse o site Permissions (Permissões ) tab para conceder permissão para usar o local externo.

    Para que qualquer pessoa use o local externo, você deve conceder permissões:

    • Para usar o local externo para adicionar um local de armazenamento gerenciar 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.

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

Opção 2: Criar um local externo usando o 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.

  • <location-name>: um nome para o local externo. Se location_name incluir caracteres especiais, como hífens (-), ele deverá estar entre acentos invertidos ( ). Veja os nomes.
  • <bucket-path>: o caminho em seu locatário de nuvem ao qual este 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 gravação no bucket. Se o nome da credencial de armazenamento incluir caracteres especiais, como hífens (-), ele deverá estar entre acentos invertidos ( ).
SQL
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 de um local externo a um espaço de trabalho específico em seu account, também conhecido como workspace binding ou external location isolation, consulte Assign an external location to specific workspace (Atribuir um local externo a um espaço de trabalho específico).