Criar um local externo para os dados em DBFS root
Este artigo mostra como configurar um local externo em Unity Catalog para controlar o acesso ao seu DBFS root local de armazenamento. Embora o site Databricks recomende que os dados não sejam armazenados no armazenamento DBFS root, é possível que o seu workspace faça isso devido a práticas herdadas.
Os locais externos são objetos protegíveis do Unity Catalog que associam credenciais de armazenamento a contêineres de armazenamento de objetos na nuvem. Os locais externos são usados para definir locais de armazenamento gerenciáveis para tabelas e volumes gerenciáveis e para controlar o acesso aos locais de armazenamento que contêm tabelas externas e volumes externos.
É necessário criar um local externo se o seu workspace-local, legado Databricks Hive metastore armazena dados no DBFS root e o senhor deseja federar seu legado Hive metastore para que sua equipe possa trabalhar com suas tabelas Hive metastore usando o Unity Catalog. Consulte Hive metastore federation: enable Unity Catalog to govern tables registered in a Hive metastore e Enable Hive metastore federation for a legacy workspace Hive metastore .
Antes de começar
Para criar um local externo para o,DBFS root o Unity Catalog senhor deve ter acesso a uma credencial de armazenamento que conceda acesso ao S3 bucket que contém DBFS root o. Caso contrário, o senhor pode fornecer o endereço ARN de um IAM role que concede acesso a esse bucket quando estiver criando o local externo. Esse processo é descrito nas instruções a seguir. Para obter informações sobre como criar um IAM role que conceda acesso a um local de armazenamento em nuvem a partir de Databricks, consulte a Etapa 1: Criar um IAM role.
O bucket S3 que contém DBFS root deve ter a propriedade do objeto definida como Bucket Owner Enforced . Se a propriedade do objeto estiver definida como Object Writer , a credencial de armazenamento do Unity Catalog não poderá ler dados no bucket S3.
Se o senhor usar a chave gerenciar-cliente para criptografar o bucket S3 que contém o DBFS root, poderá usar o mesmo key para ativar a criptografia para o novo local externo. Consulte as instruções abaixo e Configure encryption for S3 with KMS (Configurar criptografia para S3 com KMS).
Requisitos de permissões :
- Você deve ter os privilégios
CREATE STORAGE CREDENTIAL
eCREATE EXTERNAL LOCATION
na metastore. Os administradores de metastore têm esses privilégios em default.
Se já existir uma credencial de armazenamento para o local de armazenamento do DBFS root, o usuário que criar o local externo não precisará de CREATE STORAGE CREDENTIAL
, mas precisará de CREATE EXTERNAL LOCATION
na credencial de armazenamento e no metastore.
-
O senhor deve ser um administrador do workspace para que o sistema crie a credencial de armazenamento para o senhor durante a criação do local externo.
O senhor não precisa ser um administrador do workspace se já existir uma credencial de armazenamento que dê acesso ao local de armazenamento DBFS root e se o senhor tiver
CREATE EXTERNAL LOCATION
na credencial de armazenamento e no metastore.
Crie o local externo
O senhor pode usar o Catalog Explorer para criar um local externo para o site DBFS root.
-
Na barra lateral, clique em
Catálogo .
-
Clique em Dados externos > clique em Criar 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.
-
Insira um nome de localização externa .
-
Em URL , clique em Copy from DBFS mount e selecione Copy from DBFS root .
Os campos URL e subcaminho são preenchidos com o caminho de armazenamento em nuvem para o site DBFS root.
Ao criar um local externo para o DBFS root, o senhor deve usar o subcaminho para o local DBFS root e não o caminho para o bucket inteiro. A URL e o subcaminho são pré-preenchidos com user/hive/warehouse
, que é o local de armazenamento default para tabelas Hive metastore. Se quiser um controle de acesso mais refinado aos dados em DBFS root, o senhor pode criar locais externos separados para subcaminhos em DBFS root.
-
Selecione uma credencial de armazenamento que conceda acesso ao local de armazenamento em nuvem DBFS root ou, se não houver nenhuma definida, clique em + Criar nova credencial de armazenamento .
Para criar a credencial de armazenamento, selecione um Credential Type de AWS IAM role e digite o ARN de um IAM role que concede acesso ao prefixo workspace-level DBFS root no bucket S3. Para obter informações sobre como criar um IAM role que conceda acesso a um local de armazenamento em nuvem a partir de Databricks, consulte a Etapa 1: Criar um IAM role.
A política AWS IAM role deve restringir o acesso especificamente ao subcaminho DBFS root (por exemplo, s3://<bucket>/<shard-name>/<workspace-id>/
). Se não restringir o acesso ao local DBFS root usando o subcaminho, o usuário expõe o local de armazenamento interno workspace e pode comprometer os controles de acesso no nível workspaceou possivelmente os dados de outro workspacese o bucket for compartilhado.
-
(Opcional) Adicione um comentário.
-
(Opcional) Clique em Advanced options (Opções avançadas ) e ative o modo fallback .
O modo fallback destina-se a cenários de migração de cargas de trabalho herdadas. Consulte Ativar o modo de fallback em locais externos.
-
(Opcional) Se o bucket S3 exigir criptografia SSE, o senhor poderá configurar um algoritmo de criptografia para permitir que tabelas e volumes externos no Unity Catalog acessem os dados no bucket S3.
Se o bucket de armazenamento workspace, que inclui DBFS root, estiver criptografado usando uma configuração de chave de criptografia Databricks, o senhor poderá usar o mesmo key para ativar a criptografia para o novo local externo. Para obter instruções, consulte Configurar um algoritmo de criptografia em um local externo.
-
Clique em Criar .
-
Acesse Permissions (Permissões ) tab para conceder permissão para usar o local externo.
- Clique em Conceder .
- Selecione usuários, grupos ou entidades de serviço no campo Principals (Princípios ) e selecione o privilégio que deseja conceder.
- Clique em Conceder .
-
(Opcional) Defina o espaço de trabalho que pode acessar esse local externo.
Por default, os usuários de qualquer workspace que use esse metastore Unity Catalog podem ter acesso aos dados nesse local. O senhor pode limitar esse acesso a um espaço de trabalho específico. Databricks recomenda limitar o acesso ao site workspace em que o DBFS root está.
Consulte Vincular um local externo a um ou mais espaços de trabalho.