Conéctate a SAP Datasphere

Como administrador de BigQuery, puedes crear una conexión para acceder a los datos de SAP Datasphere. Esta conexión permite que los analistas de datos consulten datos en SAP Datasphere.

Antes de comenzar

  1. Habilita la API de conexión de BigQuery.

    Habilitar la API

  2. Crea un usuario de base de datos de SAP Datasphere. Toma nota del nombre de usuario, la contraseña, el nombre de host y el puerto a fin de que BigQuery se conecte.

  3. Configura tu usuario de SAP Datasphere para que acepte tráfico de las direcciones IP seleccionadas mediante una de las siguientes opciones:

    • Agrega todos los rangos de direcciones IP de Google a la lista de entidades permitidas “IPs de confianza” en SAP Datasphere.
    • Para abrir el usuario de SAP Datasphere a conexiones desde todas las direcciones IP, agrega 0.0.0.0/0 a la lista de entidades permitidas.
    • Configura tu conexión con adjuntos de red para que BigQuery abra la conexión desde una dirección IP estática.

    Para obtener más información sobre cómo configurar tu usuario de SAP Datasphere, consulta Agrega una dirección IP a la lista de IP permitidas.

Roles obligatorios

Para obtener los permisos que necesitas para conectarte a SAP Datasphere, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Configura un archivo adjunto de red

Dado que las consultas federadas establecen una conexión directa con tu base de datos a través de la API de BigQuery Connection, debes permitir el tráfico de Cloud de Confiance a tu motor de base de datos. Para aumentar la seguridad, solo debes permitir el tráfico que proviene de tus consultas de BigQuery. Esta restricción de tráfico se puede lograr de dos maneras:

  • Definiendo una dirección IP estática que usa una conexión de BigQuery y agregándola a las reglas de firewall de la fuente de datos externa
  • Creando una VPN entre BigQuery y tu infraestructura interna, y usándola para tus consultas

Ambas técnicas se admiten a través del uso de adjuntos de red.

Limitaciones

Las conexiones con adjuntos de red están sujetas a las siguientes limitaciones:

  • En el caso de las regiones estándar, los adjuntos de red deben estar ubicados en la misma región que la conexión. Para las conexiones en la multirregión US, el adjunto de red debe estar ubicado en la región us-central1. Para las conexiones en la multirregión EU, el adjunto de red debe estar ubicado en la región europe-west4.
  • No puedes editar el adjunto de red después de crearlo. Para cambiar la configuración, debes volver a crear el adjunto de red.
  • Los adjuntos de red no se pueden borrar, a menos que BigQuery borre los recursos asignados. Para iniciar el proceso de eliminación, comunícate con el equipo de asistencia de BigQuery.

Crea un adjunto de red

Cuando creas una conexión para la federación de consultas, puedes especificar un adjunto de red opcional que proporcione conectividad a la red de tu base de datos. Puedes crear un adjunto de red definiendo una dirección IP estática o creando una VPN. Para cualquiera de las opciones, haz lo siguiente:

  1. Si aún no tienes una, crea una red y una subred de VPC.

  2. Según el método de enrutamiento que elijas, realiza una de las siguientes acciones:

  3. Crea un adjunto de red con la red, la región y la subred que creaste.

  4. Opcional: Según las políticas de seguridad de tu organización, es posible que debas configurar tu Cloud de Confiance firewall para permitir la salida. Para ello, crea una regla de firewall con la siguiente configuración:

    • Configura Destinos como Todas las instancias de la red.
    • Establece Rangos IPv4 de destino en todo el rango de direcciones IP.
    • Establece Protocolos y puertos especificados en el puerto que usa tu base de datos.
  5. Configura tu firewall interno para permitir la entrada desde la dirección IP estática que creaste. Este proceso varía según la fuente de datos.

Conecta BigQuery a SAP Datasphere

Puedes conectar BigQuery a SAP Datasphere en la consola de Cloud de Confiance o la herramienta de línea de comandos de bq.

Console

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, haz clic en Agregar datos.

    Se abrirá el diálogo Agregar datos.

  3. En el panel Filtrar por, en la sección Tipo de fuente de datos, selecciona Bases de datos.

    También puedes ingresar SAP HANA en el campo Buscar fuentes de datos.

  4. En la sección Fuentes de datos destacadas, haz clic en SAP HANA.

  5. Haz clic en la tarjeta de solución SAP HANA: Federación de BigQuery.

  6. En el cuadro de diálogo Fuente de datos externa, haz lo siguiente:

    • En Tipo de conexión, selecciona SAP HANA.
    • En ID de conexión, ingresa un ID de conexión para identificar esta conexión.
    • En Tipo de ubicación, especifica una región del conjunto de datos de BigQuery que se combinará con los datos de SAP Datasphere. Las consultas que usan esta conexión deben ejecutarse desde esta región.
    • En Nombre descriptivo, ingresa un nombre fácil de usar para la conexión, como My connection resource (opcional). El nombre descriptivo puede ser cualquier valor que te ayude a identificar el recurso de conexión si necesitas modificarlo más adelante.
    • En Descripción, ingresa una descripción para este recurso de conexión (opcional).
    • En Encriptación, selecciona Google Cloud-powered encryption key o Clave de encriptación administrada por el cliente (CMEK). El uso de una CMEK es opcional.
    • Para Host:port: Ingresa el host y el puerto de la instancia de base de datos de SAP, como se muestra en Detalles del usuario de la base de datos en la consola web de SAP Datasphere, en el formato HOST:PORT.
    • Opcional: En Adjunto de red, ingresa una ruta de acceso al adjunto de red que defina la configuración de red que se usa para establecer una conexión con SAP Datasphere.
    • En Nombre de usuario, ingresa el nombre de usuario de la base de datos de Detalles del usuario de la base de datos en la consola web de SAP Datasphere. Por ejemplo, MY_SPACE#BIGQUERY.
    • En Contraseña: ingresa la contraseña del usuario de la base de datos.
  7. Haz clic en Crear conexión.

bq

Ingresa el comando bq mk con las siguientes marcas:

  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

Reemplaza lo siguiente:

  • LOCATION: especifica una región del conjunto de datos de BigQuery que se combinará con los datos de SAP Datasphere. Las consultas que usan esta conexión deben ejecutarse desde esta región.
  • PROJECT_ID: Ingresa el ID de tu proyecto de Cloud de Confiance by S3NS .
  • HOST_PORT: ingresa el host y el puerto de la instancia de base de datos de SAP, como se muestra en Detalles del usuario de la base de datos en la consola web de SAP Datasphere, en el formato HOST:PORT.
  • NETWORK_ATTACHMENT (opcional): Ingresa el adjunto de red con el formato projects/{project}/regions/{region}/networkAttachments/{networkattachment}. Con este campo, puedes configurar la conexión de SAP Datasphere para que BigQuery la abra desde una dirección IP estática.
  • USERNAME: Ingresa el nombre de usuario de la base de datos Detalles del usuario de Database en la consola web de SAP Datasphere. Por ejemplo, MY_SPACE#BIGQUERY.
  • PASSWORD: Ingresa la contraseña del usuario de la base de datos.
  • CONNECTION_ID: ingresa un ID de conexión para identificar esta conexión.

Marca opcional:

  • --kms_key_name: Es una clave de encriptación administrada por el cliente. Si se omite, las credenciales están protegidas por el valor predeterminado Google Cloud-powered encryption key.

Nota: Si configuraste tu conexión para usar un adjunto de red, debes ejecutar una consulta federada inicial para sincronizar tu proyecto con el adjunto de red antes de que se active por completo.

Comparte conexiones con usuarios

Puedes otorgar los siguientes roles para permitir que los usuarios consulten datos y administren conexiones:

  • roles/bigquery.connectionUser: Permite que los usuarios usen conexiones para conectarse con fuentes de datos externas y ejecutar consultas en ellas.

  • roles/bigquery.connectionAdmin: Permite que los usuarios administren conexiones.

Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Roles y permisos predefinidos.

Selecciona una de las opciones siguientes:

Console

  1. Ve a la página de BigQuery.

    Ir a BigQuery

    Las conexiones se enumeran en tu proyecto, en un grupo llamado Conexiones.

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

    Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.

  3. Haz clic en tu proyecto, luego en Conexiones y, por último, selecciona una conexión.

  4. En el panel Detalles, haz clic en Compartir para compartir una conexión. A continuación, sigue estos pasos:

    1. En el cuadro de diálogo Permisos de conexión, agrega o edita las principales para compartir la conexión con otros principales.

    2. Haz clic en Guardar.

bq

No puedes compartir una conexión con la herramienta de línea de comandos de bq. Para compartir una conexión, usa la Cloud de Confiance consola o el método de la API de BigQuery Connections.

API

Consulta el método projects.locations.connections.setIAM en la sección de referencia de la API de REST de las conexiones de BigQuery y proporciona una instancia del recurso policy.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

Antes de ejecutar muestras de código, configura la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN 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");
    }
  }
}

Precios

¿Qué sigue?