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.

Observação

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 e CREATE EXTERNAL LOCATION na metastore. Os administradores de metastore têm esses privilégios em default.

    Observação

    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.

  1. Na barra lateral, clique em Ícone de catálogo Catálogo.

  2. Clique em Dados externos > clique em Criar local externo.

  3. 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.

  4. Insira um nome de localização externa.

  5. 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.

    Importante

    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.

  6. 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.

    Aviso

    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.

  7. (Opcional) Adicione um comentário.

  8. (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.

  9. (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.

  10. Clique em Criar.

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

    1. Clique em Conceder.

    2. Selecione usuários, grupos ou entidades de serviço no campo Principals (Princípios ) e selecione o privilégio que deseja conceder.

    3. Clique em Conceder.

  12. (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.