Verbindung zu SAP Datasphere herstellen

Als BigQuery-Administrator können Sie eine Verbindung erstellen, um auf SAP Datasphere-Daten zuzugreifen. Über diese Verbindung können Datenanalysten Daten in SAP Datasphere abfragen.

Hinweise

  1. BigQuery Connection API aktivieren.

    API aktivieren

  2. Erstellen Sie einen SAP Datasphere-Datenbanknutzer. Notieren Sie sich den Nutzernamen, das Passwort, den Hostnamen und den Port, zu dem BigQuery eine Verbindung herstellen kann.

  3. Konfigurieren Sie Ihren SAP Datasphere-Mandanten so, dass er Traffic von den ausgewählten IP-Adressen akzeptiert. Führen Sie dazu einen der folgenden Schritte aus:

    Weitere Informationen zum Konfigurieren Ihres SAP Datasphere-Mandanten finden Sie unter IP-Adresse zur IP-Zulassungsliste hinzufügen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Verbindungsadministrator (roles/bigquery.connectionAdmin) für das Projekt zuzuweisen, um die Berechtigungen erhalten, die Sie für eine Verbindung zu SAP Datasphere benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

BigQuery mit SAP Datasphere verbinden

Sie können BigQuery mit SAP Datasphere in der Google Cloud Console oder über das bq-Befehlszeilentool verbinden.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie im Bereich Explorer auf hinzufügenHinzufügen .

  3. Suchen Sie im Suchfeld nach Verbindungen zu externen Datenquellen und wählen Sie es aus.

  4. Führen Sie im Dialogfeld Externe Datenquelle die folgenden Schritte aus:

    • Wählen Sie als Verbindungstyp SAP HANA aus.
    • Geben Sie unter Verbindungs-ID eine Verbindungs-ID ein, um diese Verbindung zu identifizieren.
    • Geben Sie als Standorttyp eine Region des BigQuery-Datasets an, die mit den Daten aus SAP Datasphere kombiniert werden soll. Abfragen, die diese Verbindung verwenden, müssen in dieser Region ausgeführt werden.
    • Optional: Sie können unter Anzeigename einen nutzerfreundlichen Namen für die Verbindung eingeben, z. B. My connection resource. Der Anzeigename kann ein beliebiger Wert sein, mit dem Sie die Verbindungsressource identifizieren können, wenn Sie sie später ändern müssen.
    • Optional: Sie können unter Beschreibung eine Beschreibung für diese Verbindungsressource eingeben.
    • Wählen Sie unter Verschlüsselung entweder Von Google verwalteter Verschlüsselungsschlüssel oder Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) aus. Die Verwendung eines CMEK ist optional.
    • Für Host:Port: Geben Sie den Host und den Port der SAP-Datenbankinstanz ein, wie im Folgenden gezeigt. Details zum Datenbanknutzer in der SAP Datasphere-Webkonsole im FormatHOST:PORT.
    • Optional: Geben Sie unter Netzwerkanhang einen Pfad zum Netzwerkanhang ein, der die Netzwerkkonfiguration definiert, die zum Herstellen einer Verbindung zu SAP verwendet wird. Datasphere
    • Geben Sie als Nutzername den Datenbank-Nutzernamen aus Database User Details in der SAP Datasphere Webkonsole ein. Beispiel: MY_SPACE#BIGQUERY
    • Geben Sie unter Passwort das Passwort des Datenbanknutzers ein.
  5. Klicken Sie auf Verbindung erstellen.

bq

Geben Sie den Befehl bq mk mit den folgenden Flags ein:

  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

Ersetzen Sie Folgendes:

  • LOCATION: Geben Sie eine Region des BigQuery-Datasets an, die mit den Daten aus SAP Datasphere kombiniert werden soll. Abfragen, die diese Verbindung verwenden, müssen in dieser Region ausgeführt werden.
  • PROJECT_ID: Geben Sie Ihre Google Cloud-Projekt-ID ein.
  • HOST_PORT: Geben Sie den Host und den Port der SAP-Datenbankinstanz im Format HOST:PORT ein, wie in den Datenbanknutzerdetails in der SAP Datasphere-Webkonsole angezeigt.
  • NETWORK_ATTACHMENT (optional): Geben Sie den Netzwerkanhang im Format projects/{project}/regions/{region}/networkAttachments/{networkattachment} ein. Mit diesem Feld können Sie die SAP Datasphere-Verbindung so konfigurieren, dass BigQuery die Verbindung über eine statische IP-Adresse öffnet.
  • USERNAME: Geben Sie in der SAP Datasphere-Webkonsole den Nutzernamen für die Datenbank aus Database User Details ein. Beispiel: MY_SPACE#BIGQUERY.
  • PASSWORD: Geben Sie das Passwort des Datenbanknutzers ein.
  • CONNECTION_ID: Geben Sie eine Verbindungs-ID ein, um diese Verbindung zu identifizieren.

Verbindungen für Nutzer freigeben

Sie können die folgenden Rollen zuweisen, damit Nutzer Daten abfragen und Verbindungen verwalten können:

  • roles/bigquery.connectionUser: Nutzer können Verbindungen nutzen, um sich mit externen Datenquellen zu verbinden und diese abzufragen.

  • roles/bigquery.connectionAdmin: Nutzer können Verbindungen verwalten.

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

    Verbindungen werden in Ihrem Projekt in einer Gruppe namens Externe Verbindungen aufgeführt.

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > Verbindung.

  3. Klicken Sie im Bereich Details auf Freigeben, um eine Verbindung freizugeben. Führen Sie anschließend folgende Schritte aus:

    1. Geben Sie im Dialogfeld Verbindungsberechtigungen die Verbindung für andere Hauptkonten frei, indem Sie Hauptkonten hinzufügen oder bearbeiten.

    2. Klicken Sie auf Speichern.

bq

Sie können keine Verbindung mit dem bq-Befehlszeilentool freigeben. Verwenden Sie zum Freigeben einer Verbindung die Google Cloud Console oder die Methode der BigQuery Connections API.

API

Verwenden Sie die Methode projects.locations.connections.setIAM in dem Referenzabschnitt zur BigQuery Connections REST API und geben Sie eine Instanz der Ressource policy an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Nächste Schritte