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
eCREATE 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
-
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.
-
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.
-
-
Copie os valores dos tokens do R2 API:
-
ID da chave de acesso
-
Chave de acesso secreta
-
Os valores dos tokens são mostrados apenas uma vez.
- 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
-
Em Databricks, log in para o seu workspace.
-
Clique em
Catálogo .
-
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).
-
Selecione Credencial de armazenamento .
-
Selecione um Credential Type dos tokens do Cloudflare API .
-
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
-
(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.
-
Clique em Criar .
-
Na caixa de diálogo Credencial de armazenamento criada , copie a ID externa .
-
(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
-
Faça login em um site workspace que esteja anexado ao metastore.
-
Na barra lateral, clique em
Catálogo .
-
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).
-
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.
-
Na caixa de diálogo Criar um novo local externo manualmente , insira um nome de local externo .
-
Em Tipo de armazenamento , selecione R2 .
-
Em URL , insira o caminho. Por exemplo,
r2://my-bucket@my-account-id.r2.cloudflarestorage.com
. -
Em Credencial de armazenamento , selecione a credencial de armazenamento que concede acesso ao local externo.
-
(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.
-
(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 .
-
Clique em Criar .
-
(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.
-
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
ouCREATE EXTERNAL VOLUME
.
- Clique em Conceder .
- 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. - 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. Selocation_name
incluir caracteres especiais, como hífens (-
), ele deverá estar entre acentos invertidos (<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 (
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).