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

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 como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou 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 ,
    • 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"
        }
      }
    }
  }' \
  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. ,
  • 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