Conectar-se ao SAP Datasphere

Como administrador do BigQuery, é possível criar uma conexão para acessar dados do SAP Datasphere. Essa conexão permite que os analistas de dados consultem dados no SAP Datasphere.

Antes de começar

  1. Ative a API BigQuery Connection.

    Ativar a API

  2. Crie um usuário de banco de dados do SAP Datasphere. Anote o nome de usuário, a senha, o nome do host e a porta para conexão do BigQuery.

  3. Configure o locatário do SAP Datasphere para aceitar tráfego dos endereços IP selecionados fazendo o seguinte:

    Para mais informações sobre como configurar seu locatário do SAP Datasphere, consulte Adicionar o endereço IP à lista de permissões de IP.

Funções exigidas

Para receber as permissões necessárias para se conectar ao SAP Datasphere, peça ao administrador para conceder a você o papel do IAM de Administrador de conexão do BigQuery (roles/bigquery.connectionAdmin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Conectar o BigQuery ao SAP Datasphere

É possível conectar o BigQuery ao SAP Datasphere no console do Google Cloud ou na ferramenta de linha de comando bq.

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Acessar o BigQuery

  2. No painel Explorador, clique em adicionar Adicionar .

  3. No campo de pesquisa, pesquise e selecione Conexões com fontes de dados externas.

  4. Na caixa de diálogo Fonte de dados externa, faça o seguinte:

    • Em Tipo de conexão, selecione SAP HANA.
    • Em ID da conexão, insira um ID para identificá-la.
    • Em Tipo de local, especifique uma região do conjunto de dados do BigQuery a ser combinada com os dados do SAP Datasphere. As consultas que usam essa conexão precisam ser executadas nessa região.
    • (Opcional) Em Nome amigável, insira um nome fácil de usar para a conexão, como My connection resource. O nome amigável pode ser qualquer valor que ajude você a identificar o recurso de conexão se precisar modificá-lo mais tarde.
    • (Opcional) Em Descrição, insira uma descrição para este recurso de conexão.
    • Em Criptografia, selecione Chave de criptografia gerenciada pelo Google ou Chave de criptografia gerenciada pelo cliente (CMEK). O uso de uma CMEK é opcional.
    • Para Host:porta: insira o host e a porta da instância do banco de dados SAP, conforme mostrado no Detalhes do usuário do banco de dados no console da Web do SAP Datasphere, no formatoHOST:PORT ,
    • Opcional: em Anexo de rede, insira um caminho para o anexo de rede que define a configuração de rede usada para estabelecer uma conexão com o SAP Datasphere.
    • Em Nome de usuário: digite o nome de usuário do banco de dados em Detalhes do usuário do banco de dados no console da Web do SAP Datasphere. Por exemplo, MY_SPACE#BIGQUERY.
    • Em Senha: digite a senha do usuário do banco de dados.
  5. Clique em Criar conexão.

bq

Insira o comando bq mk com as seguintes sinalizações:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "saphana",
    "endpoint": {
      "host_port": "HOST_PORT"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    },
    "network": {
      "private_service_connect": {
        "network_attachment": "NETWORK_ATTACHMENT"
      }
    }
  }' \
  CONNECTION_ID

Substitua:

  • LOCATION: especifica uma região do conjunto de dados do BigQuery a ser combinado com os dados do SAP Datasphere. As consultas que usam essa conexão precisam ser executadas nessa região.
  • PROJECT_ID: insira o ID do projeto do Google Cloud.
  • HOST_PORT: insira o host e a porta da instância do banco de dados SAP, conforme mostrado em Database User Details no console da Web do SAP Datasphere, no formato HOST:PORT. ,
  • NETWORK_ATTACHMENT (opcional): insira o anexo de rede no formato projects/{project}/regions/{region}/networkAttachments/{networkattachment}. Com esse campo, você pode configurar a conexão do SAP Datasphere para que o BigQuery abra a conexão de um endereço IP estático.
  • USERNAME: insira o nome de usuário do banco de dados em Database User Details no console da Web do SAP Datasphere. Por exemplo, MY_SPACE#BIGQUERY.
  • PASSWORD: a senha do usuário do banco de dados.
  • CONNECTION_ID: insira um ID de conexão para identificar essa conexão.

Compartilhar conexões com os usuários

Você pode conceder os seguintes papéis para permitir que os usuários consultem dados e gerenciem conexões:

  • roles/bigquery.connectionUser: permite aos usuários usar conexões para se conectar a fontes de dados externas e executar consultas nelas.

  • roles/bigquery.connectionAdmin: permite que os usuários gerenciem conexões.

Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.

Selecione uma das seguintes opções:

Console

  1. Acessar a página do BigQuery.

    Ir para o BigQuery

    As conexões são listadas no projeto, em um grupo chamado Conexões externas.

  2. No painel Explorer, clique no nome do seu projeto > Conexões externas > conexão.

  3. No painel Detalhes, clique em Compartilhar para compartilhar uma conexão. Em seguida, siga estas etapas:

    1. Na caixa de diálogo Permissões de conexão, compartilhe a conexão com outros principais adicionando ou editando principais.

    2. Clique em Salvar.

bq

Não é possível compartilhar uma conexão com a ferramenta de linha de comando bq. Para compartilhar um recurso de conexão, use o console do Google Cloud ou o método da API BigQuery Connections para compartilhar uma conexão.

API

Consulte o método projects.locations.connections.setIAM na seção de referência da API REST BigQuery Connections e forneça uma instância do recurso policy.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

import com.google.api.resourcenames.ResourceName;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.iam.v1.Binding;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import java.io.IOException;

// Sample to share connections
public class ShareConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    shareConnection(projectId, location, connectionId);
  }

  static void shareConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ResourceName resource = ConnectionName.of(projectId, location, connectionId);
      Binding binding =
          Binding.newBuilder()
              .addMembers("group:example-analyst-group@google.com")
              .setRole("roles/bigquery.connectionUser")
              .build();
      Policy policy = Policy.newBuilder().addBindings(binding).build();
      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setResource(resource.toString())
              .setPolicy(policy)
              .build();
      client.setIamPolicy(request);
      System.out.println("Connection shared successfully");
    }
  }
}

A seguir