Criar um local externo para conectar o armazenamento em nuvem ao SAP Databricks
Este artigo descreve como configurar um local externo em Unity Catalog para conectar o armazenamento em nuvem ao SAP Databricks.
Para evitar a perda de dados, o SAP Databricks exige que os locais externos sejam somente leitura.
Os locais externos associam as credenciais de armazenamento do Unity Catalog aos contêineres de armazenamento de objetos na nuvem. Os locais externos são usados para definir locais de armazenamento gerencial 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 AWS S3.
Antes de começar
Pré-requisitos :
-
O senhor deve criar o bucket S3 que deseja usar como um local externo antes de criar o objeto de local externo no SAP Databricks.
- O padrão AWS CloudFormation suporta apenas S3 buckets.
- O nome de um bucket S3 do qual o usuário deseja ler e gravar não pode usar notação de ponto (por exemplo,
incorrect.bucket.name.notation
). Para obter mais orientações sobre a nomenclatura de buckets, consulte as regras de nomenclatura de buckets da AWS. - Evite usar um caminho no S3 que já esteja definido como um local externo em outro metastore do Unity Catalog. O senhor pode ler dados com segurança em um único local externo S3 de mais de um metastore, mas gravações simultâneas no mesmo local S3 de vários metastores podem levar a problemas de consistência.
-
Se o senhor não usar o padrão AWS CloudFormation para criar o local externo, deverá primeiro criar uma credencial de armazenamento no SAP Databricks que dê acesso ao caminho do local de armazenamento na nuvem. Consulte o seguinte documento da AWS: Criar uma credencial de armazenamento.
Se o senhor usar o fluxo do AWS CloudFormation, essa credencial de armazenamento será criada para o senhor.
Requisitos de permissões :
- Você deve ter o privilégio
CREATE EXTERNAL LOCATION
na metastore e na credencial de armazenamento referenciada no local externo. Os administradores do metastore têmCREATE EXTERNAL LOCATION
no metastore por default. - Se estiver usando o padrão AWS CloudFormation, o senhor também deverá ter o privilégio
CREATE STORAGE CREDENTIAL
no metastore. Os administradores do metastore têmCREATE STORAGE CREDENTIAL
no metastore por default.
Criar um local externo para um bucket S3 usando um padrão AWS CloudFormation
Se o senhor criar um local externo usando o padrão AWS CloudFormation, o Databricks configurará o local externo e criará uma credencial de armazenamento para o senhor. O senhor também tem a opção de criar o local externo manualmente, o que exige que primeiro crie um IAM role que dê acesso ao bucket S3 que é referenciado pelo local externo e uma credencial de armazenamento que faça referência a esse IAM role.
Permissões e pré-requisitos: consulte Antes de começar.
Para criar o local externo:
-
Faça login em um site workspace que esteja anexado ao metastore.
-
Clique em
Catálogo para abrir o Catalog Explorer.
-
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 , selecione AWS Quickstart (Recomendado) e clique em Next .
O AWS Quickstart configura o local externo e cria uma credencial de armazenamento para o senhor. Se o senhor optar por usar a opção Manual , deverá criar manualmente um IAM role que dê acesso ao bucket S3 e criar a credencial de armazenamento em Databricks.
-
Na caixa de diálogo Create external location with Quickstart (Criar local externo com início rápido ), digite o caminho para o bucket S3 no campo Bucket Name (Nome do bucket ).
-
Clique em Generate new tokens (Gerar novos tokens ) para gerar os tokens de acesso pessoal que o senhor usará para autenticar entre Databricks e seu AWS account.
-
Copie os tokens e clique em Launch in Quickstart .
-
No padrão AWS CloudFormation que é iniciado (rótulo Quick create stack ) , cole os tokens no campoDatabricks account Credentials (Credenciais da conta ).
-
Aceite os termos na parte inferior da página (reconheço que o AWS CloudFormation pode criar o recurso IAM com nomes personalizados ).
-
Clique em Criar pilha .
Pode levar alguns minutos para que o padrão CloudFormation termine de criar o objeto de localização externa em Databricks.
-
Retorne ao site Databricks workspace e clique em Catalog para abrir o Catalog Explorer .
-
Na página de acesso rápido , clique no botão External data (Dados externos ) > para ir para External Locations (Locais externos ) tab.
-
Confirme se um novo local externo foi criado.
Locais externos gerados automaticamente usam a sintaxe de nomenclatura
db_s3_external_databricks-S3-ingest-<id>
. -
(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 (Opcional) Atribuir um local externo a um espaço de trabalho específico.
-
Conceda 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
.
Para usar o Catalog Explorer para conceder permissões:
- Clique no nome do local externo para abrir o painel de detalhes.
- Em Permissions (Permissões ) tab, clique em Grant (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 .
- Para usar o local externo para adicionar um local de armazenamento gerenciar ao metastore, catálogo ou esquema, conceda o privilégio
(Opcional) Atribuir um local externo a um espaço de trabalho específico
Em default, um local externo é acessível a partir de todo o espaço de trabalho no metastore. Isso significa que, se um usuário tiver recebido um privilégio (como READ FILES
) nesse local externo, ele poderá exercer esse privilégio em qualquer workspace anexado ao metastore. Se o senhor usa o espaço de trabalho para isolar o acesso aos dados do usuário, talvez queira permitir o acesso a um local externo somente a partir de um espaço de trabalho específico. Esse recurso é conhecido como workspace binding ou isolamento de local externo.
Os casos de uso típicos para vincular um local externo a um espaço de trabalho específico incluem:
- Garantir que o engenheiro de dados que tem o privilégio
CREATE EXTERNAL TABLE
em um local externo que contém dados de produção possa criar tabelas externas nesse local somente em uma produção workspace. - Garantir que o engenheiro de dados que tem o privilégio
READ FILES
em um local externo que contém dados confidenciais só possa usar um espaço de trabalho específico para acessar esses dados.
Os vínculos do espaço de trabalho são referenciados no momento em que os privilégios em relação ao local externo são exercidos. Por exemplo, se um usuário criar uma tabela externa emitindo a instrução CREATE TABLE myCat.mySch.myTable LOCATION 's3://bucket/path/to/table'
a partir do site myWorkspace
workspace, as seguintes verificações de vinculação workspace serão realizadas, além das verificações regulares de privilégio do usuário:
- A localização externa que cobre
's3://bucket/path/to/table
está vinculada amyWorkspace
? - O catálogo
myCat
está vinculado amyWorkspace
com o nível de acessoRead & Write
?
Se a localização externa for subseqüentemente desvinculada de myWorkspace
, a tabela externa continuará funcionando.
Esse recurso também permite que o senhor preencha um catálogo a partir de um site central workspace e o disponibilize para outros espaços de trabalho usando associações de catálogos, sem precisar disponibilizar o local externo nesses outros espaços de trabalho.
Vincular um local externo a um ou mais espaços de trabalho
Para atribuir um local externo a um espaço de trabalho específico, o senhor pode usar o Catalog Explorer.
Permissões necessárias : administrador do Metastore, proprietário do local externo ou MANAGE
no local externo.
Os administradores do metastore podem ver todos os locais externos em um metastore usando o Catalog Explorer, e os proprietários de locais externos podem ver todos os locais externos que possuem em um metastore, independentemente de o local externo estar atribuído ao workspace atual. Os locais externos que não estão atribuídos ao workspace aparecem em cinza.
-
Efetue login em um workspace vinculado ao metastore.
-
Na barra lateral, clique em
Catálogo .
-
Na página de acesso rápido , clique no botão External data (Dados externos ) > para ir para External Locations (Locais externos ) tab.
-
Selecione o local externo e acesse o espaço de trabalho tab.
-
Na guia Workspaces , desmarque a caixa de seleção Todos os workspaces têm acesso .
Se o local externo já estiver vinculado a um ou mais espaços de trabalho, essa caixa de seleção já estará desmarcada.
-
Clique em Atribuir a workspaces e digite ou localize os workspaces que deseja atribuir.
Para revogar o acesso, vá para a tab Workspaces , selecione o workspace e clique em Revogar . Para permitir o acesso de todos os workspaces, marque a caixa de seleção Todos os workspaces têm acesso .