Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Mit Verbindungen zu externen Datenquellen arbeiten

Übersicht

Mit der BigQuery Connection API können Nutzer eine Verbindung von BigQuery zu einer externen Datenquelle einrichten. Sie können über die Verbindung Abfragen für die externe Datenquelle aus BigQuery senden, ohne Daten in BigQuery verschieben oder kopieren zu müssen.

Sie müssen eine einmalige Einrichtung vornehmen, um in BigQuery eine Verbindungsressource erstellen zu können. Danach können Sie folgende Aufgaben ausführen:

Hinweis

Bevor Sie mit einer Verbindungsressource arbeiten, müssen Sie die in den folgenden Abschnitten beschriebenen Aufgaben ausführen.

BigQuery-Verbindungsdienst aktivieren

  1. Öffnen Sie in der API-Bibliothek die Seite BigQuery Connection API.
  2. Wählen Sie im Drop-down-Menü das Projekt aus, das Ihre externe Datenquelle enthält.
  3. Klicken Sie auf die Schaltfläche AKTIVIEREN.

    BigQuery Connection API

Dienstkonto

BigQuery verwendet ein Dienstkonto, um eine Verbindung zu Ihrer externen Datenquelle herzustellen. Wenn Sie die BigQuery Connection API aktivieren, wird automatisch ein von Google Cloud verwaltetes IAM-Dienstkonto (Identitäts- und Zugriffsverwaltung) für Sie erstellt.

Informationen zum Aufrufen einer Liste der Dienstkonten in Ihrem Projekt finden Sie unter Dienstkonten auflisten.

Erforderliche Berechtigungen

Zum Erstellen und Verwalten einer Verbindungsressource benötigen Sie die folgenden IAM-Berechtigungen:

  • bigquery.connections.create
  • bigquery.connections.get
  • bigquery.connections.list
  • bigquery.connections.update
  • bigquery.connections.use
  • bigquery.connections.delete

Die vordefinierte IAM-Rolle roles/bigquery.admin enthält die Berechtigungen, die Sie zum Erstellen und Verwalten einer Verbindungsressource benötigen.

Wenn Sie einem anderen Nutzer Berechtigungen erteilen möchten, um die Verbindungsressource zu verwenden, finden Sie weitere Informationen unter Verbindungsressource freigeben.

bigquery.admin-Zugriff gewähren

So weisen Sie die Rolle bigquery.admin zu:

Console

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

    Zur Seite "IAM"

  2. Klicken Sie auf Select a project (Projekt auswählen).

  3. Wählen Sie ein Projekt aus und klicken Sie auf Open (Öffnen).

  4. Klicken Sie auf Add (Hinzufügen), um dem Projekt neue Mitglieder hinzuzufügen, und legen Sie dann ihre Berechtigungen fest.

  5. Gehen Sie im Dialogfeld Add members (Mitglieder hinzufügen) so vor:

    • Geben Sie unter Members (Mitglieder) die E-Mail-Adresse des Nutzers oder der Gruppe ein.
    • Klicken Sie im Drop-down-Menü Select a role (Rolle wählen) auf BigQuery > BigQuery Admin (BigQuery > BigQuery-Administrator).
    • Klicken Sie auf Add (Hinzufügen).

      Administratorrolle gewähren

gcloud

Über die Google Cloud CLI können Sie einem Nutzer oder einer Gruppe die Rolle bigquery.admin gewähren.

Geben Sie den nachstehenden Befehl ein, um der IAM-Richtlinie Ihres Projekts eine einzelne Bindung hinzuzufügen. Wenn Sie einen Nutzer hinzufügen möchten, geben Sie das Flag --member im Format user:user@example.com an. Wenn Sie eine Gruppe hinzufügen möchten, geben Sie das Flag --member im Format group:group@example.com an.

gcloud projects add-iam-policy-binding project_id \
--member principal:address \
--role roles/bigquery.admin

Wobei:

  • project_id ist die Projekt-ID.
  • principal ist entweder group oder user.
  • address die E-Mail-Adresse des Nutzers oder der Gruppe ist.

Beispiel:

gcloud projects add-iam-policy-binding myproject \
--member group:group@example.com \
--role roles/bigquery.admin

Der Befehl gibt die aktualisierte Richtlinie aus:

    bindings:
    - members:
      - group:group@example.com
        role: roles/bigquery.admin
    

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

Verbindungsressource erstellen

Erstellen Sie zuerst eine Datenbankverbindungsressource pro Datenbank in BigQuery und verweisen Sie dann auf die Verbindungsressource in Ihrer föderierten Abfrage. So vermeiden Sie, dass in einer föderierten Abfrage Datenbankanmeldedaten als Klartext enthalten sind.

Die Verbindungsressource verfügt über eine Reihe von IAM-Berechtigungen, die Sie anderen Nutzern erteilen können. Die Verbindungsressource wird verschlüsselt und sicher im BigQuery-Verbindungsdienst gespeichert. Sie kann nur für föderierte Abfragen verwendet werden. Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Sie können eine Verbindungsressource für Cloud SQL, Cloud Spanner und AWS (über BigQuery Omni) einrichten. So erstellen Sie eine Verbindungsressource für Cloud SQL:

Console

  1. Rufen Sie zum Erstellen einer Verbindungsressource die BigQuery-Seite in der Google Cloud Console auf.

    Zur Seite "BigQuery"

  2. Wählen Sie im Menü Daten hinzufügen die Option Externe Datenquelle aus.

  3. Geben Sie im Dialogfeld Externe Datenquelle die folgenden Informationen ein:

    • Wählen Sie als Verbindungstyp den Typ der Quelle aus, z. B. MySQL oder Postgres.
    • Geben Sie unter Verbindungs-ID eine Kennung für die Verbindungsressource ein. Buchstaben, Ziffern und Unterstriche sind zulässig. Beispiel: bq_sql_connection
    • Wählen Sie unter Datenstandort einen BigQuery-Standort (oder eine Region) aus, der mit Ihrer externen Region für die Datenquellen kompatibel ist.
    • 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.
    • Wenn Sie Cloud SQL MySQL oder Postgres als Verbindungstyp ausgewählt haben, geben Sie als Cloud SQL-Instanz-ID den vollständigen Namen der Cloud SQL-Instanz normalerweise im Format project-id:location-id:instance-id ein. Sie finden die Instanz-ID auf der Detailseite der Cloud SQL-Instanz, die Sie abfragen möchten.
    • Geben Sie unter Datenbankname den Namen der Datenbank ein.
    • Geben Sie unter Datenbanknutzername den Nutzernamen für die Datenbank ein.
    • Geben Sie unter Datenbankpasswort das Passwort für die Datenbank ein.

      • Optional: Klicken Sie auf Passwort anzeigen, um das Passwort anzuzeigen.
  4. Klicken Sie auf Verbindung erstellen.

bq

Geben Sie den Befehl bq mk ein und geben Sie das Verbindungs-Flag --connection an. Die folgenden Flags sind ebenfalls erforderlich:

  • --connection_type
  • --properties
  • --connection_credential
  • --project_id
  • --location

Die folgenden Flags sind optional:

  • --display_name: Der Anzeigename für die Verbindung.
  • --description: Eine Beschreibung der Verbindung.

Die connection_id ist ein optionaler Parameter, der als letztes Argument des Befehls hinzugefügt werden kann, der intern für die Speicherung verwendet wird. Wenn keine Verbindungs-ID angegeben wird, wird automatisch eine eindeutige ID generiert. Die connection_id kann Buchstaben, Ziffern und Unterstriche enthalten.

    bq mk --connection --display_name='friendly name' --connection_type=TYPE \
      --properties=PROPERTIES --connection_credential=CREDENTIALS \
      --project_id=PROJECT_ID --location=LOCATION \
      CONNECTION_ID

Dabei gilt:

  • TYPE: der Typ der externen Datenquelle.
  • PROPERTIES: die Parameter für die erstellte Verbindung im JSON-Format Beispiel: --properties='{"param":"param_value"}'. Zum Erstellen einer Verbindungsressource müssen Sie die Parameter instanceID, database und type angeben.
  • CREDENTIALS: die Parameter username und password
  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: die Region, in der sich Ihre Cloud SQL-Instanz befindet
  • CONNECTION_ID: die Verbindungs-ID.

Mit dem folgenden Befehl wird beispielsweise eine neue Verbindungsressource mit dem Namen „my_new_connection“ (Anzeigename: „My new connection“) in einem Projekt mit der ID federation-test erstellt.

bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
  --properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
  --connection_credential='{"username":"myusername", "password":"mypassword"}' \
  --project_id=federation-test --location=us my_connection_id

API

Innerhalb der BigQuery Connection API können Sie CreateConnection innerhalb von ConnectionService aufrufen, um eine Verbindung zu instanziieren. Weitere Informationen finden Sie unter BigQuery Connection API-Clientbibliotheken.

Verbindungsressource abfragen

Sobald eine Verbindung hergestellt wurde, können Sie die Funktion EXTERNAL_QUERY für die Ausführung einer föderierten Abfrage verwenden.

Über dieselbe Verbindungsressource andere Datenbank abfragen

Wenn Sie eine Verbindung zu einer externen Datenquelle erstellen, geben Sie Anmeldedaten für diese Datenquelle an. Wenn dieselben Nutzeranmeldedaten für andere Daten in der Quelle gültig sind, kann dieselbe Verbindungsressource verwendet werden.

Informationen zu einer Verbindungsressource abrufen

Nachdem Sie eine Verbindungsressource erstellt haben, können Sie Informationen zur Konfiguration der Verbindungsressource abrufen. Die Konfiguration enthält die Werte, die Sie bei der Erstellung der Übertragung angegeben haben.

Erforderliche Berechtigungen

Zum Abrufen von Informationen zu einer Verbindungsressource benötigen Sie die IAM-Berechtigung bigquery.connections.get.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie benötigen, um Informationen zu einer Verbindungsressource abzurufen:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin
  • roles/bigquery.connectionUser

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

Verbindungsressource abrufen

Console

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf, um sich den Status Ihrer Verbindungsressourcen anzeigen zu lassen.

    BigQuery aufrufen

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

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > und dann auf eine Verbindungsressource, um Informationen zu dieser Verbindungsressource aufzurufen.

bq

Geben Sie den Befehl bq show ein und geben Sie das Verbindungs-Flag --connection an. Die vollständig qualifizierte connection_id ist erforderlich.

    bq show --connection project.location.connection_id

Der folgende Befehl ruft beispielsweise Informationen zu einer Verbindungsressource namens my_new_connection in einem Projekt mit der ID federation-test in der Region us ab.

    bq show --connection federation-test.us.my_new_connection

API

Verwenden Sie die Methode projects.locations.connections.get im Referenzabschnitt der REST API.

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.

import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.GetConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to get connection
public class GetConnection {

  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";
    getConnection(projectId, location, connectionId);
  }

  public static void getConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionId);
      GetConnectionRequest request =
          GetConnectionRequest.newBuilder().setName(name.toString()).build();
      Connection response = client.getConnection(request);
      System.out.println("Connection info retrieved successfully :" + response.getName());
    }
  }
}

Alle Verbindungsressourcen auflisten

Erforderliche Berechtigungen

Zum Auflisten aller Verbindungsressourcen in einem Projekt benötigen Sie die IAM-Berechtigung bigquery.connections.list.

Jede der folgenden vordefinierten IAM-Rollen umfasst die Berechtigungen, die Sie zum Auflisten aller Verbindungsressourcen benötigen:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin
  • roles/bigquery.connectionUser

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

Verbindungsressourcen auflisten

So listen Sie alle Verbindungsressourcen in einem Projekt auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf, um sich den Status einer Verbindungsressource anzeigen zu lassen.

    BigQuery aufrufen

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

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen, um eine Liste aller Verbindungsressourcen aufzurufen.

bq

Geben Sie den Befehl bq show ein und geben Sie das Verbindungs-Flag --connection an. Die vollständig qualifizierte connection_id ist erforderlich.

    bq ls --connection --project_id=[project_id] --location=[location]

Mit dem folgenden Befehl werden beispielsweise die Verbindungsressourcen in einem Projekt mit der ID federation-test in der Region us aufgelistet.

    bq ls --connection --project_id=bigquery-federation-test --location=us

API

Verwenden Sie die Methode projects.locations.connections.list im Referenzabschnitt der REST API.

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.

import com.google.cloud.bigquery.connection.v1.ListConnectionsRequest;
import com.google.cloud.bigquery.connection.v1.LocationName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to get list of connections
public class ListConnections {

  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";
    listConnections(projectId, location);
  }

  public static void listConnections(String projectId, String location) throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      LocationName parent = LocationName.of(projectId, location);
      int pageSize = 10;
      ListConnectionsRequest request =
          ListConnectionsRequest.newBuilder()
              .setParent(parent.toString())
              .setPageSize(pageSize)
              .build();
      client
          .listConnections(request)
          .iterateAll()
          .forEach(con -> System.out.println("Connection Id :" + con.getName()));
    }
  }
}

Verbindungsressource freigeben

Erforderliche Berechtigungen

Damit ein anderer Nutzer eine Verbindungsressource für föderierte Cloud SQL-Abfragen verwenden kann, kann der bigquery.admin diesem die beiden Rollen in IAM zuweisen.

  • roles/bigquery.connectionUser

    Der BigQuery-Verbindungsnutzer kann Abfragen mit der Verbindungsressource ausführen.

    Zum Ausführen von Abfragen mit der Verbindungsressource benötigen Sie die folgenden IAM-Berechtigungen:

    • bigquery.connections.get
    • bigquery.connections.list
    • bigquery.connections.use
    • bigquery.connections.getIamPolicy

    Die vordefinierte IAM-Rolle roles/bigquery.connectionUser umfasst die Berechtigungen, die Sie zum Ausführen von Abfragen mit der Verbindungsressource benötigen.

  • roles/bigquery.connectionAdmin

    Der BigQuery-Verbindungsadministrator kann die Verbindungsressourcen verwalten. Zusätzlich zu den in der Rolle "BigQuery-Verbindungsnutzer" enthaltenen Berechtigungen enthält diese Rolle Berechtigungen zum Erstellen, Aktualisieren und Löschen der Verbindungsressourcen sowie zum Festlegen von IAM-Richtlinien für die Verbindungsressourcen.

    Zum Verwalten der Verbindungsressourcen benötigen Sie folgende IAM-Berechtigungen:

    • bigquery.connections.get
    • bigquery.connections.list
    • bigquery.connections.use
    • bigquery.connections.getIamPolicy
    • bigquery.connections.create
    • bigquery.connections.update
    • bigquery.connections.setIamPolicy
    • bigquery.connections.delete

    Die vordefinierte IAM-Rolle roles/bigquery.connectionAdmin enthält die Berechtigungen, die Sie zum Verwalten der Verbindungsressourcen benötigen.

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

Verbindungsressource freigeben

Console

  1. Öffnen Sie zum Freigeben einer Verbindungsressource in der Google Cloud Console die Seite „BigQuery“.

    BigQuery aufrufen

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

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > und dann auf eine Verbindungsressource, um die Details zu dieser Verbindung aufzurufen.

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

    1. Im Dialogfeld Verbindungsberechtigungen können Nutzer mit der Rolle BigQuery-Administrator oder BigQuery-Verbindungsadministrator die Verbindungsressource für andere Nutzer freigeben. Dafür müssen sie die Hauptkonten hinzufügen oder bearbeiten.

    2. Klicken Sie auf Speichern.

bq

Derzeit können Ressourcen nicht mit dem bq-Befehlszeilentool freigegeben werden. Verwenden Sie zum Freigeben einer Verbindungsressource die Google Cloud Console oder die Methode der BigQuery Connections API.

API

Sehen Sie sich die Methode projects.locations.connections.setIAM in der Dokumentation zu BigQuery Connections REST API an 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.

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

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

Verbindungsressource bearbeiten oder aktualisieren

Sobald die Verbindungsressource hinzugefügt wurde, können Sie sie bearbeiten. Sie können die meisten Felder bearbeiten, die beim Erstellen der Verbindungsressource ausgefüllt werden, einschließlich der Anmeldedaten für den Nutzernamen.

Eine Verbindung verwendet die Anmeldedaten des Nutzers, der sie erstellt hat. Wenn Sie den einer Verbindungsressource zugeordneten Nutzer ändern müssen, können Sie die Anmeldedaten des Nutzers aktualisieren. Dies ist hilfreich, wenn der Nutzer, der die Verbindung erstellt hat, der Organisation nicht mehr angehört.

Die folgenden Elemente einer Verbindungsressource können Sie nicht bearbeiten:

  • Verbindungstyp
  • Verbindungs-ID
  • Ort

Erforderliche Berechtigungen

Zum Aktualisieren einer Verbindungsressource benötigen Sie die IAM-Berechtigung bigquery.connections.update.

Die folgenden vordefinierten IAM-Rollen umfassen die Berechtigungen, die für das Aktualisieren eines Verbindungsressource erforderlich sind:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin

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

Verbindungsressource bearbeiten

So bearbeiten Sie eine Verbindung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.

    BigQuery aufrufen

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

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > und dann auf eine Verbindungsressource, um die Details zu dieser Verbindung aufzurufen.

  3. Klicken Sie unter Details auf Details bearbeiten, um die Details zu bearbeiten. Führen Sie anschließend folgende Schritte aus:

    1. Bearbeiten Sie im Dialogfeld Verbindung bearbeiten die Verbindungsdetails, einschließlich der Nutzeranmeldedaten.

    2. Klicken Sie auf Verbindung aktualisieren.

bq

Geben Sie den Befehl bq update ein und geben Sie das Verbindungs-Flag --connection an. Die vollständig qualifizierte connection_id ist erforderlich.

    bq update --connection --connection_type='CLOUD_SQL'
   --properties='{"instanceId" : "instance",
   "database" : "db", "type" : "MYSQL" }'
   --connection_credential='{"username":"u", "password":"p"}'
   project.location.connection_id

Mit dem folgenden Befehl werden beispielsweise die Verbindungsressourcen in einem Projekt mit der ID federation-test und der Verbindungs-ID test-mysql aktualisiert.

    bq update --connection --connection_type='CLOUD_SQL'
   --properties='{"instanceId" : "federation-test:us-central1:new-mysql",
   "database" : "imdb2", "type" : "MYSQL" }'
   --connection_credential='{"username":"my_username",
   "password":"my_password"}' federation-test.us.test-mysql

API

Sehen Sie sich die Methode projects.locations.connections.patch im Referenzabschnitt der REST API an und geben Sie eine Instanz der Ressource connection 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.

import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.UpdateConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update connection
public class UpdateConnection {

  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";
    String description = "MY_DESCRIPTION";
    Connection connection = Connection.newBuilder().setDescription(description).build();
    updateConnection(projectId, location, connectionId, connection);
  }

  public static void updateConnection(
      String projectId, String location, String connectionId, Connection connection)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionId);
      FieldMask updateMask = FieldMaskUtil.fromString("description");
      UpdateConnectionRequest request =
          UpdateConnectionRequest.newBuilder()
              .setName(name.toString())
              .setConnection(connection)
              .setUpdateMask(updateMask)
              .build();
      Connection response = client.updateConnection(request);
      System.out.println("Connection updated successfully :" + response.getDescription());
    }
  }
}

Verbindungsressource löschen

Sie können eine Verbindungsressource löschen, wenn Sie über die entsprechenden Berechtigungen verfügen.

Erforderliche Berechtigungen

Zum Löschen einer Verbindungsressource benötigen Sie die IAM-Berechtigung bigquery.connections.delete.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Löschen eines Verbindungsressource benötigen:

  • roles/bigquery.admin
  • roles/bigquery.connectionAdmin

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

Verbindungsressource löschen

So löschen Sie eine Verbindung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.

    BigQuery aufrufen

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

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > und dann auf eine Verbindungsressource, um die Details zu dieser Verbindung aufzurufen.

  3. Klicken Sie im Bereich Details auf Löschen, um die Verbindungsressource zu löschen.

  4. Geben Sie im Dialogfeld Verbindung löschen? delete ein, um den Löschvorgang zu bestätigen.

  5. Klicken Sie auf Löschen.

bq

Geben Sie den Befehl bq rm ein und geben Sie das Verbindungs-Flag --connection an. Die vollständig qualifizierte connection_id ist erforderlich.

    bq rm --connection project.location.connection_id

Mit dem folgenden Befehl werden beispielsweise die Verbindungsressourcen in einem Projekt mit der ID federation-test und der Verbindungs-ID test-mysql aktualisiert.

    bq rm --connection federation-test.us.test-mysql

API

Weitere Informationen finden Sie unter projects.locations.connections.delete-Methode im Referenzabschnitt der REST API.

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.

import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to delete a connection
public class DeleteConnection {

  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 connectionName = "MY_CONNECTION_NAME";
    deleteConnection(projectId, location, connectionName);
  }

  public static void deleteConnection(String projectId, String location, String connectionName)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionName);
      DeleteConnectionRequest request =
          DeleteConnectionRequest.newBuilder().setName(name.toString()).build();
      client.deleteConnection(request);
      System.out.println("Connection deleted successfully");
    }
  }
}

Audit-Logging

Informationen zum Audit-Logging von Verbindungsressourcen finden Sie in der Übersicht zu BigQuery-Audit-Logs.

Fehlerbehebung

Dieser Abschnitt hilft Ihnen beim Beheben von Problemen, die beim Einrichten einer neuen Verbindung auftreten können. Es werden jedoch nicht alle möglichen Fehlermeldungen oder Probleme behandelt.

Prüfen Sie zum Diagnostizieren allgemeiner Verbindungsfehler Folgendes:

  • Sie haben alle Schritte im Abschnitt Vorbereitung abgeschlossen.
  • Die Attribute der Verbindungskonfiguration sind korrekt.
  • Sie haben die erforderlichen Berechtigungen zum Erstellen einer Verbindung.

Wenn Ihre Verbindungsattribute korrekt sind und die entsprechenden Berechtigungen erteilt wurden, sehen Sie sich die folgenden Lösungen für gängige Probleme an.

Problem: BigQuery und die externe Datenquelle haben nicht denselben Standort.
Lösung: Föderierte Abfragen werden nur in Regionen unterstützt, die sowohl BigQuery als auch die externe Datenquelle unterstützen. Das BigQuery-Dataset und die Datenquelleninstanz müssen sich in derselben Region befinden oder an einem multiregionalen Standort wie US und EU derselben geografischen Region, die mit der Datenquellenregion kompatibel ist. Informationen zu Regionen und der Kompatibilität von Regionen finden Sie unter Unterstützte Regionen.
Problem: Die Geschwindigkeit ist langsamer als erwartet.
Lösung: Die Geschwindigkeit von föderierten Abfragen ist nicht so hoch wie die Abfrage von in BigQuery gespeicherten Daten. Dies liegt daran, dass föderierte Abfragen die Quelldaten extern abfragen, die Daten an eine temporäre BigQuery-Tabelle zurückgeben, die Daten den BigQuery-Datentypen zuordnen und die Abfrage dann in BigQuery ausführen. Obwohl die Abfragegeschwindigkeit nicht so hoch ist, müssen die Daten nicht noch einmal kopiert, verschoben oder gespeichert werden.
Problem: Wie formatiere ich den Verbindungsnamen?
Lösung: Der Verbindungsname sollte das Projekt, den Standort und die Verbindungs-ID enthalten. Die Verbindungs-ID sollte dem folgenden Muster entsprechen: project_id.location_id.connection_id, z. B. federation-test.us.my_new_connection.