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.
O senhor deve ter uma credencial de armazenamento definida no Databricks que dê acesso ao caminho do local de armazenamento nas nuvens. Consulte Criar uma credencial de armazenamento para se conectar ao Google Cloud Storage e Criar uma credencial de armazenamento para se conectar ao Cloudflare R2.
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êmCREATE 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:
log in para um workspace que está anexado ao metastore.
Na barra lateral, clique em Catalog.
Clique no botão + Adicionar e selecione Adicionar um local externo.
Insira um nome de local externo.
Opcionalmente, copie o caminho do bucket de um ponto de montagem existente (somente buckets GCS).
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>
our2://mybucket@my-account-id.r2.cloudflarestorage.com/<path>
.Selecione a credencial de armazenamento que concede acesso ao local externo.
(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.
Clique em Criar.
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
ouCREATE EXTERNAL VOLUME
.
Para usar o Catalog Explorer para conceder permissões:
Clique no nome do local externo para abrir o painel de detalhes.
Na Permissões tab, clique em Conceder .
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.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. Selocation_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
our2://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
Conceda permissão a outros usuários para usar locais externos. Consulte gerenciamento de locais externos.
Defina gerenciar locais de armazenamento usando locais externos. Consulte Especificar um local de armazenamento de gerenciamento no Catálogo do Unity.
Defina tabelas externas usando locais externos. Consulte Criar uma tabela externa.
Defina volumes externos usando locais externos. Consulte Criar e trabalhar com volumes.