Se connecter à SAP Datasphere

En tant qu'administrateur BigQuery, vous pouvez créer une connexion permettant d'accéder aux données SAP Datasphere. Cette connexion permet aux analystes de données d'interroger des données dans SAP Datasphere.

Avant de commencer

  1. Activez l'API BigQuery Connection.

    Activer l'API

  2. Créez un utilisateur de base de données SAP Datasphere. Notez le nom d'utilisateur, le mot de passe, le nom d'hôte et le port auxquels BigQuery doit se connecter.

  3. Configurez votre locataire SAP Datasphere pour qu'il accepte le trafic provenant de vos adresses IP sélectionnées en effectuant l'une des opérations suivantes :

    • Ajoutez toutes les plages d'adresses IP Google à la liste d'autorisation "Adresses IP de confiance" dans SAP Datasphere.
    • Ouvrez le locataire SAP Datasphere aux connexions provenant de toutes les adresses IP en ajoutant 0.0.0.0/0 à la liste d'autorisation.
    • Configurez votre connexion avec des pièces jointes réseau afin que BigQuery ouvre la connexion à partir d'une adresse IP statique.

    Pour en savoir plus sur la configuration de votre locataire SAP Datasphere, consultez Ajouter une adresse IP à la liste d'autorisation d'adresses IP.

Rôles requis

Pour obtenir les autorisations nécessaires pour vous connecter à SAP Datasphere, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un rattachement de réseau

Étant donné que les requêtes fédérées établissent une connexion directe à votre base de données à l'aide de l'API BigQuery Connection, vous devez autoriser le trafic depuis Google Cloud vers votre moteur de base de données. Pour renforcer la sécurité, vous ne devez autoriser que le trafic provenant de vos requêtes BigQuery. Cette restriction de trafic peut être effectuée de deux manières :

  • En définissant une adresse IP statique utilisée par une connexion BigQuery et en l'ajoutant aux règles de pare-feu de la source de données externe.
  • En créant un VPN entre BigQuery et votre infrastructure interne, et en l'utilisant pour vos requêtes.

Ces deux techniques sont compatibles grâce à l'utilisation de pièces jointes réseau.

Limites

Les connexions avec des rattachements de réseau sont soumises aux limitations suivantes :

  • Pour les régions standards, les rattachements de réseau doivent se trouver dans la même région que la connexion. Pour les connexions dans la zone multirégionale US, le rattachement de réseau doit se trouver dans la région us-central1. Pour les connexions dans la zone multirégionale EU, le rattachement de réseau doit se trouver dans la région europe-west4.
  • Vous ne pouvez pas modifier votre rattachement de réseau après l'avoir créé. Pour modifier votre configuration, vous devez recréer le rattachement de réseau.
  • Les rattachements de réseau ne peuvent être supprimés que si BigQuery supprime les ressources allouées. Pour lancer le processus de suppression, contactez l'assistance BigQuery.

Créer un rattachement de réseau

Lorsque vous créez une connexion pour la fédération de requêtes, vous pouvez spécifier un rattachement de réseau facultatif qui fournit une connectivité au réseau de votre base de données. Vous pouvez créer un rattachement de réseau en définissant une adresse IP statique ou en créant un VPN. Quelle que soit l'option choisie, procédez comme suit :

  1. Si vous n'en avez pas encore, créez un réseau et un sous-réseau VPC.

  2. Selon la méthode de routage choisie, effectuez l'une des opérations suivantes :

  3. Créez un rattachement de réseau en utilisant le réseau, la région et le sous-réseau que vous avez créés.

  4. Facultatif : En fonction des règles de sécurité de votre organisation, vous pourriez avoir besoin de configurer votre pare-feu Google Cloud pour autoriser les sorties en créant une règle de pare-feu avec les paramètres suivants :

    • Définissez le paramètre Cibles sur Toutes les instances du réseau.
    • Définissez Plages IPv4 de destination sur l'ensemble de la plage d'adresses IP.
    • Définissez Protocoles et ports spécifiés sur le port utilisé par votre base de données.
  5. Configurez votre pare-feu interne pour autoriser l'entrée à partir de l'adresse IP statique que vous avez créée. Ce processus varie selon la source de données.

Connecter BigQuery à SAP Datasphere

Vous pouvez connecter BigQuery à SAP Datasphere dans la console Google Cloud ou dans l'outil de ligne de commande bq.

Console

  1. Dans la console Google Cloud , accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans le volet Explorateur, cliquez sur  Ajouter des données.

    La boîte de dialogue Ajouter des données s'ouvre.

  3. Dans le volet Filtrer par, dans la section Type de source de données, sélectionnez Bases de données.

    Vous pouvez également saisir SAP HANA dans le champ Rechercher des sources de données.

  4. Dans la section Sources de données recommandées, cliquez sur SAP HANA.

  5. Cliquez sur la fiche de solution SAP HANA : Fédération BigQuery.

  6. Dans la boîte de dialogue Source de données externes, procédez comme suit :

    • Dans le champ Type de connexion, sélectionnez SAP HANA.
    • Dans le champ ID de connexion, saisissez un ID de connexion afin d'identifier cette connexion.
    • Dans le champ Type d'emplacement, spécifiez une région de l'ensemble de données BigQuery à combiner avec les données de SAP Datasphere. Les requêtes utilisant cette connexion doivent être exécutées à partir de cette région.
    • Facultatif : Dans le champ Nom descriptif, saisissez un nom clair pour identifier la connexion, tel que My connection resource. Le nom descriptif peut être n'importe quelle valeur permettant d'identifier la ressource de connexion si vous devez la modifier par la suite.
    • Facultatif : Dans le champ Description, saisissez une description pour la ressource de connexion.
    • Pour Chiffrement, sélectionnez Google-managed encryption key ou Clé de chiffrement gérée par le client (CMEK). L'utilisation d'une clé CMEK est facultative.
    • Dans le champ Hôte:[port] : saisissez l'hôte et le port de l'instance de base de données SAP, comme indiqué dans la section Informations sur l'utilisateur de la base de données, dans la console Web de SAP Datasphere, en respectant le format HOST:PORT.
    • Facultatif : Dans le champ Rattachement de réseau, saisissez le chemin d'accès au rattachement de réseau qui définit la configuration réseau utilisée pour établir une connexion à SAP Datasphere.
    • Dans le champ Nom d'utilisateur : saisissez le nom de l'utilisateur de la base de données, issu de la section Informations sur l'utilisateur de la base de données dans la console Web de SAP Datasphere. Par exemple, MY_SPACE#BIGQUERY.
    • Dans le champ Mot de passe : saisissez le mot de passe de l'utilisateur de la base de données.
  7. Cliquez sur Create connection (Créer une connexion).

bq

Saisissez la commande bq mk avec les options suivantes :

  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

Remplacez les éléments suivants :

  • LOCATION : spécifiez une région de l'ensemble de données BigQuery à combiner avec les données de SAP Datasphere. Les requêtes utilisant cette connexion doivent être exécutées à partir de cette région.
  • PROJECT_ID : saisissez l'ID de votre projet Google Cloud .
  • HOST_PORT : saisissez l'hôte et le port de l'instance de base de données SAP, comme indiqué dans la section Informations sur l'utilisateur de la base de données, dans la console Web de SAP Datasphere, en respectant le format HOST:PORT.
  • NETWORK_ATTACHMENT (facultatif) : saisissez le rattachement de réseau au format projects/{project}/regions/{region}/networkAttachments/{networkattachment}. Ce champ vous permet de configurer la connexion SAP Datasphere afin que BigQuery l'ouvre à partir d'une adresse IP statique.
  • USERNAME : saisissez le nom de l'utilisateur de la base de données, issu de la section Informations sur l'utilisateur de la base de données dans la console Web de SAP Datasphere. Exemple : MY_SPACE#BIGQUERY.
  • PASSWORD : saisissez le mot de passe de l'utilisateur de la base de données.
  • CONNECTION_ID : saisissez un ID de connexion afin d'identifier cette connexion.

Option facultative :

  • --kms_key_name : clé de chiffrement gérée par le client. Si aucune valeur n'est spécifiée, les identifiants sont protégés par la valeur par défaut Google-owned and Google-managed encryption key.

Remarque : Si vous avez configuré votre connexion pour utiliser un rattachement de réseau, vous devez exécuter une requête fédérée initiale pour synchroniser votre projet avec le rattachement de réseau avant qu'il ne devienne entièrement actif.

Partager des connexions avec les utilisateurs

Vous pouvez attribuer les rôles suivants pour permettre aux utilisateurs d'interroger des données et de gérer les connexions :

  • roles/bigquery.connectionUser permet aux utilisateurs de se connecter à des sources de données externes et d'y exécuter des requêtes.

  • roles/bigquery.connectionAdmin permet aux utilisateurs de gérer les connexions.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

    Les connexions sont répertoriées dans votre projet, dans un groupe appelé Connexions.

  2. Dans le volet de gauche, cliquez sur Explorateur :

    Bouton du volet Explorateur mis en évidence.

    Si le volet de gauche ne s'affiche pas, cliquez sur Développer le volet de gauche pour l'ouvrir.

  3. Cliquez sur votre projet, puis sur Connexions et sélectionnez une connexion.

  4. Dans le volet Détails, cliquez sur Partager pour partager une connexion. Ensuite, procédez comme suit :

    1. Dans la boîte de dialogue Autorisations de connexion, partagez la connexion avec d'autres comptes principaux en ajoutant ou en modifiant des comptes principaux.

    2. Cliquez sur Enregistrer.

bq

Vous ne pouvez pas partager de connexion avec l'outil de ligne de commande bq. Pour partager une connexion, utilisez la console Google Cloud ou la méthode de l'API BigQuery Connections permettant le partage de connexion.

API

Utilisez la méthode projects.locations.connections.setIAM dans la section de référence de l'API REST BigQuery Connections et fournissez une instance de la ressource policy.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

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

Tarifs

Étapes suivantes