Conectar-se a um bucket do Google Cloud Storage
Somente a conta SAP Databricks implantada em GCP pode se conectar a Google Cloud Storage.
Esta página descreve como conectar um bucket Google Cloud Storage (GCS) ao seu SAP Databricks account.
Para se conectar ao armazenamento externo cloud no SAP Databricks, o senhor precisa:
-
Credencial de armazenamento : Representa um mecanismo de autenticação e autorização para acessar dados armazenados em seu cloud tenant, por exemplo, um serviço account para GCS buckets. Os administradores podem atribuir privilégios para controlar quais usuários e grupos podem usar a credencial para definir locais externos. Isso só deve ser concedido aos usuários que precisam criar objetos de localização externos.
-
Local externo : Essa combinação de um caminho de armazenamento cloud e uma credencial de armazenamento autoriza o acesso ao caminho de armazenamento cloud. Os privilégios concedidos no local externo determinam quem pode acessar o caminho de armazenamento cloud definido pelo local externo.
Para evitar a perda de dados, o SAP Databricks exige que os locais externos sejam somente leitura.
Antes de começar
Pré-requisitos :
- O bucket do Google Cloud Storage que o senhor referencia no local externo deve existir antes de criar o objeto de local externo no SAP Databricks. Para evitar cobranças de saída, o bucket deve estar na mesma região que o workspace a partir do qual o senhor deseja acessar os dados.
- Você deve ter permissão para modificar a política de acesso desse bucket.
Requisitos de permissões do Databricks :
CREATE STORAGE CREDENTIAL
no metastore anexado ao site workspace. Os administradores de conta e os administradores de metastore têm esse privilégio em default.CREATE EXTERNAL LOCATION
privilégio na metastore e na credencial de armazenamento referenciada no local externo. Os administradores do metastore têmCREATE EXTERNAL LOCATION
no metastore por default.
Crie uma credencial de armazenamento
Para criar uma credencial de armazenamento, o senhor gerará um serviço de nuvem do Google account usando o SAP Databricks Catalog Explorer:
-
Faça login no SAP Databricks workspace habilitado para o Unity Catalog como um usuário que tenha o privilégio
CREATE STORAGE CREDENTIAL
no metastore. -
Na barra lateral, 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 um tipo de credencial da conta do serviçoGCP .
-
Digite um nome de credencial de armazenamento e um comentário opcional.
-
Selecione Somente leitura para que os locais externos que usam essa credencial de armazenamento sejam somente para leitura.
-
Clique em Criar .
O SAP Databricks cria a credencial de armazenamento e gera um serviço de nuvem do Google account.
-
Na caixa de diálogo Credencial de armazenamento criada , anote a ID da conta de serviço, que está na forma de um endereço de e-mail, e clique em Concluído .
-
(Opcional) Vincule a credencial de armazenamento a workspaces específicos.
Em default, qualquer usuário privilegiado pode usar a credencial de armazenamento 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.
Configurar permissões para o serviço account
-
Vá para o console de nuvem do Google e abra o bucket GCS que deseja acessar a partir do seu SAP Databricks workspace.
Para evitar cobranças de saída, o bucket deve estar na mesma região que o workspace a partir do qual o senhor deseja acessar os dados.
-
No site Permission tab, clique em + Grant access (Conceder acesso) e atribua ao serviço recém-criado account as seguintes funções:
- Leitor de bucket de armazenamento legado
- Administrador de objetos de armazenamento
Use o endereço de e-mail da conta de serviço como identificador principal.
(Recomendado) Configurar permissões para eventos de arquivo
Esse passo é opcional, mas altamente recomendado. Se o senhor não conceder acesso ao SAP Databricks para configurar eventos de arquivo em seu nome, deverá configurar os eventos de arquivo manualmente para cada local. Caso contrário, o senhor terá acesso limitado a recursos críticos que o site Databricks poderá liberar no futuro.
Os passos abaixo permitem que o Databricks configure uma notificação completa pipeline para publicar mensagens de notificação de eventos de seus buckets GCS para o Google Cloud Pub/Sub. Eles pressupõem que o senhor tenha um projeto GCP com um bucket GCS e tenha ativado a API Pub/Sub.
-
Crie um IAM role personalizado para eventos de arquivo.
-
No console de nuvem do Google para o projeto que contém seu bucket GCS, navegue até IAM & Admin > Roles .
-
Se o senhor já tiver um IAM role personalizado, selecione-o e clique em Edit Role (Editar função ). Caso contrário, crie uma nova função clicando em + Criar função na página Funções .
-
Na tela Create Role (Criar função ) ou Edit Role (Editar função ), adicione as seguintes permissões ao seu IAM role personalizado e salve as alterações. Para obter instruções detalhadas, consulte a documentação do GCP.
pubsub.subscriptions.consume
pubsub.subscriptions.create
pubsub.subscriptions.delete
pubsub.subscriptions.get
pubsub.subscriptions.list
pubsub.subscriptions.update
pubsub.topics.attachSubscription
pubsub.topics.create
pubsub.topics.delete
pubsub.topics.get
pubsub.topics.list
pubsub.topics.update
storage.buckets.update
-
-
Conceda acesso à função.
- Navegue até o IAM & Admin > IAM .
- Clique em Conceder acesso .
- Informe seu serviço account como o principal.
- Selecione seu site personalizado IAM role.
- Clique em Salvar .
-
Conceder permissões ao Cloud Storage Service Agent
- Encontre o agente de serviço account email seguindo estes passos na documentação do Google Cloud.
- No console de nuvem do Google, navegue até IAM & Admin > IAM > Grant Access .
- Digite o agente de serviço account email e atribua a função Pub/Sub Publisher* .
Agora você pode criar um local externo que faça referência a essa credencial de armazenamento.
Crie um local externo
Para criar o local externo:
-
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 location (Criar local).
-
Insira um nome de localização externa .
-
Em URL , insira ou selecione o caminho para o local externo. Por exemplo,
gs://mybucket/<path>
. -
Selecione a credencial de armazenamento que concede acesso ao local externo.
Se você não tiver uma credencial de armazenamento, poderá criar uma:
- Na lista suspensa Credencial de armazenamento , selecione + Criar nova credencial de armazenamento.
- Na lista suspensa Credential type (Tipo de credencial ), selecione GCP service account (Conta de serviço).
- Um serviço GCP account é criado automaticamente para o senhor quando salva o local externo.
-
Certifique-se de que o local externo tenha acesso somente para leitura. Clique em Opções avançadas e verifique se a opção Somente leitura está selecionada.
-
(Opcional) Para ativar a capacidade de se inscrever para receber notificações de alterações no local externo, clique em Opções avançadas e selecione Habilitar eventos de arquivo .
-
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 Vincular um local externo a um ou mais espaços de trabalho.
-
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 .
-
(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 'gs://mybucket/<path>'
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
'gs://mybucket/<path>'
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 vínculos de catálogo sem 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 .