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 seu locatário do SAP Datasphere para aceitar tráfego dos endereços IP selecionados fazendo uma destas ações:

    • Adicione todos os intervalos de endereços IP do Google à lista de permissões "IPs confiáveis" no SAP Datasphere.
    • Abra o locatário do SAP Datasphere para conexões de todos os endereços IP adicionando 0.0.0.0/0 à lista de permissões.
    • Configure sua conexão com anexos de rede para que o BigQuery abra a conexão de um endereço IP estático.

    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ê os papéis do IAM a seguir:

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 usando papéis personalizados ou outros papéis predefinidos.

Configurar um anexo de rede

Como as consultas federadas estabelecem uma conexão direta com seu banco de dados usando a API BigQuery Connection, você precisa permitir o tráfego de Google Cloud para seu mecanismo de banco de dados. Para aumentar a segurança, você só devem permitir o tráfego proveniente de suas consultas do BigQuery. Essa restrição de tráfego pode ser alcançada de duas maneiras:

  • Ao definir um endereço IP estático usado por um e adicionando-a às regras de firewall da fonte de dados externa.
  • Ao criar uma VPN entre o BigQuery e seus infraestrutura e usá-la nas consultas.

Ambas as técnicas são compatíveis com o uso de anexos de rede.

Limitações

As conexões com anexos de rede estão sujeitas às seguintes limitações:

  • Para regiões padrão, os anexos de rede precisam estar localizados na mesma região como a conexão. Para conexões na multirregião US, a rede o anexo precisa estar localizado na região us-central1. Para conexões no EU multirregional, o anexo de rede precisa estar localizado no europe-west4 região.
  • Não é possível editar o anexo de rede depois de criá-lo. Para mudar sua configuração, recrie o anexo de rede.
  • Não é possível excluir anexos de rede, a menos que o BigQuery exclua os recursos alocados. Para iniciar o processo de exclusão, entre em contato com o suporte do BigQuery.

Criar um anexo de rede

Ao criar uma conexão para a federação de consultas, você pode especificar um anexo de rede opcional que fornece conectividade à rede do seu banco de dados. É possível criar um anexo de rede definindo um endereço IP estático ou criando uma VPN. Para qualquer uma das opções, faça o seguinte:

  1. Se você ainda não tiver uma, criar uma rede e sub-rede VPC.

  2. Dependendo do método de roteamento escolhido, faça o seguinte:

  3. Criar um anexo de rede usando a rede, a região e a sub-rede que você criou.

  4. Opcional: dependendo das políticas de segurança da sua organização, talvez você precise configurar o firewall do Google Cloud para permitir a saída Como criar uma regra de firewall com as seguintes configurações:

    • Defina Destinos como Todas as instâncias na rede.
    • Defina Intervalos IPv4 de destino como todo o intervalo de endereços IP.
    • Defina Protocolos e portas especificados como a porta usada pelo seu no seu banco de dados.
  5. Configurar o firewall interno para permitir a entrada do endereço IP estático que você criou. Esse processo varia de acordo com a fonte de dados.

Conectar o BigQuery ao SAP Datasphere

É possível conectar o BigQuery ao SAP Datasphere no console 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 Explorer, clique em Adicionar dados.

    A caixa de diálogo Adicionar dados é aberta.

  3. No painel Filtrar por, na seção Tipo de fonte de dados, selecione Bancos de dados.

    Como alternativa, no campo Pesquisar fontes de dados, insira SAP HANA.

  4. Na seção Fontes de dados em destaque, clique em SAP HANA.

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

  6. 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 Google-managed encryption key 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.
  7. 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, é possível 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.

Sinalização opcional:

  • --kms_key_name: uma chave de criptografia gerenciada pelo cliente. Se omitidas, as credenciais serão protegidas pelo Google-owned and Google-managed encryption keypadrão.

Observação:se você configurou sua conexão para usar um anexo de rede, execute uma consulta federada inicial para sincronizar seu projeto com o anexo de rede antes que ele fique totalmente ativo.

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.

    Acessar o BigQuery

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

  2. No painel à esquerda, clique em Explorer:

    Botão destacado para o painel "Explorer".

    Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.

  3. Clique no seu projeto, em Conexões e selecione uma conexão.

  4. 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 uma conexão, use o console Google Cloud ou o método da API BigQuery Connections.

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

Preços

A seguir