Estabeleça ligação ao SAP Datasphere

Como administrador do BigQuery, pode criar uma associação para aceder aos dados do SAP Datasphere. Esta associação permite aos analistas de dados consultar dados no SAP Datasphere.

Antes de começar

  1. Ative a API BigQuery Connection.

    Ative a API

  2. Crie um utilizador da base de dados do SAP Datasphere. Tome nota do nome de utilizador, da palavra-passe, do nome do anfitrião e da porta do BigQuery para estabelecer ligação.

  3. Configure o seu inquilino do SAP Datasphere para aceitar tráfego dos endereços IP selecionados através de uma das seguintes opções:

    • Adicione todos os intervalos de endereços IP da Google à lista de autorizações "IPs fidedignos" no SAP Datasphere.
    • Abra o inquilino do SAP Datasphere para ligações de todos os endereços IP adicionando 0.0.0.0/0 à lista de autorizações.
    • Configure a sua ligação com anexos de rede para que o BigQuery abra a ligação a partir de um endereço IP estático.

    Para mais informações sobre como configurar o seu inquilino do SAP Datasphere, consulte o artigo Adicione o endereço IP à lista de autorizações de IPs.

Funções necessárias

Para obter as autorizações de que precisa para estabelecer ligação ao SAP Datasphere, peça ao seu administrador para lhe conceder a função do IAM de administrador de ligações do BigQuery (roles/bigquery.connectionAdmin) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Associe o BigQuery ao SAP Datasphere

Pode ligar o BigQuery ao SAP Datasphere na Trusted Cloud consola ou na ferramenta de linha de comandos bq.

Consola

  1. Na Trusted Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No painel Explorador, clique em Adicionar dados.

    É apresentada a caixa de diálogo Adicionar dados.

  3. No painel Filtrar por, na secção Tipo de origem de dados, selecione Bases de dados.

    Em alternativa, no campo Pesquisar origens de dados, pode introduzir SAP HANA.

  4. Na secção Origens de dados em destaque, clique em SAP HANA.

  5. Clique no cartão da solução SAP HANA: federação do BigQuery.

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

    • Em Tipo de ligação, selecione SAP HANA.
    • Para o ID de associação, introduza um ID de associação para identificar esta associação.
    • Para o Tipo de localização, especifique uma região do conjunto de dados do BigQuery a combinar com os dados do SAP Datasphere. As consultas que usam esta ligação têm de ser executadas a partir desta região.
    • Opcional: para Nome amigável, introduza um nome amigável para a associação, como My connection resource. O nome amigável pode ser qualquer valor que ajude a identificar o recurso de ligação se precisar de o modificar mais tarde.
    • Opcional: em Descrição, introduza uma descrição para este recurso de ligação.
    • Para Encriptação, selecione Google Cloud-powered encryption key ou Chave de encriptação gerida pelo cliente (CMEK). A utilização de uma CMEK é opcional.
    • Para Host:porta: introduza o anfitrião e a porta da instância da base de dados SAP, conforme apresentado nos Detalhes do utilizador da base de dados na consola Web do SAP Datasphere, no formato HOST:PORT.
    • Opcional: para Anexo de rede, introduza um caminho para o anexo de rede que define a configuração de rede usada para estabelecer uma ligação ao SAP Datasphere.
    • Para Nome de utilizador: introduza o nome de utilizador da base de dados a partir de Detalhes do utilizador da base de dados na consola Web do SAP Datasphere. Por exemplo, MY_SPACE#BIGQUERY.
    • Para Palavra-passe: introduza a palavra-passe do utilizador da base de dados.
  7. Clique em Criar associação.

bq

Introduza o comando bq mk com as seguintes flags:

  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 o seguinte:

  • LOCATION: especifique uma região do conjunto de dados do BigQuery a combinar com os dados do SAP Datasphere. As consultas que usam esta ligação têm de ser executadas a partir desta região.
  • PROJECT_ID: introduza o seu Trusted Cloud by S3NS ID do projeto.
  • HOST_PORT: introduza o anfitrião e a porta da instância da base de dados SAP, conforme apresentado nos detalhes do utilizador da base de dados na consola Web do SAP Datasphere, no formato HOST:PORT.
  • NETWORK_ATTACHMENT (opcional): introduza o anexo de rede no formato projects/{project}/regions/{region}/networkAttachments/{networkattachment}. Com este campo, pode configurar a ligação do SAP Datasphere para que o BigQuery abra a ligação a partir de um endereço IP estático.
  • USERNAME: introduza o nome de utilizador da base de dados a partir de Detalhes do utilizador da base de dados na consola Web do SAP Datasphere. Por exemplo, MY_SPACE#BIGQUERY.
  • PASSWORD: introduza a palavra-passe do utilizador da base de dados.
  • CONNECTION_ID: introduza um ID de ligação para identificar esta ligação.

Partilhe ligações com utilizadores

Pode conceder as seguintes funções para permitir que os utilizadores consultem dados e geram ligações:

  • roles/bigquery.connectionUser: permite que os utilizadores usem associações para estabelecer ligação a origens de dados externas e executar consultas nas mesmas.

  • roles/bigquery.connectionAdmin: permite que os utilizadores geram associações.

Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Selecione uma das seguintes opções:

Consola

  1. Aceda à página do BigQuery.

    Aceda ao BigQuery

    As associações são apresentadas no seu projeto, num grupo denominado Associações externas.

  2. No painel Explorador, clique no nome do projeto > Ligações externas > ligação.

  3. No painel Detalhes, clique em Partilhar para partilhar uma associação. Depois, faça o seguinte:

    1. Na caixa de diálogo Autorizações de ligação, partilhe a ligação com outros responsáveis adicionando ou editando responsáveis.

    2. Clique em Guardar.

bq

Não pode partilhar uma ligação com a ferramenta de linhas de comando bq. Para partilhar uma associação, use a Trusted Cloud consola ou o método da API BigQuery Connections para partilhar uma associação.

API

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

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN environment como s3nsapis.fr.

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");
    }
  }
}

O que se segue?