Mit Verbindungen arbeiten

Übersicht

Mit der Föderation von BigQuery und Cloud SQL kann BigQuery Daten in Cloud SQL in Echtzeit abfragen, ohne Daten kopieren oder verschieben zu müssen. Föderierte Abfragen unterstützen sowohl MySQL- (2. Generation) als auch PostgreSQL-Instanzen in Cloud SQL.

Nach der ersten einmaligen Einrichtung zum Erstellen einer Verbindungsressource in BigQuery können Sie die folgenden Aufgaben ausführen:

Verbindungsressource erstellen

Eine ausführliche Anleitung zum Einrichten einer Verbindungsressource finden Sie unter Cloud SQL-Datenbankverbindungen einrichten.

Verbindungsressource abfragen

Sobald eine Verbindung zu einer Cloud SQL-Instanz hergestellt wurde, können Sie die föderierte Abfrage mit einer neuen Funktion ausführen: EXTERNAL_QUERY(). Weitere Informationen und Beispielabfragen finden Sie unter Syntax föderierter Abfragen.

Über dieselbe Verbindungsressource andere Datenbank abfragen

Wenn Sie eine Verbindung zu einer Cloud SQL-Instanz erstellen, geben Sie in dieser Instanz eine Datenbank, einen Nutzernamen und ein Passwort an. Wenn dieselben Nutzeranmeldedaten für andere Datenbanken in der Cloud SQL-Instanz gültig sind, kann dieser Nutzer diese Datenbanken über dieselbe Verbindungsressource abfragen.

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 ist die Berechtigung bigquery.connections.get erforderlich. Die folgenden vordefinierten IAM-Rollen (Identity and Access Management) enthalten bereits die Berechtigung bigquery.connections.get:

  • bigquery.admin
  • bigquery.connection.admin
  • bigquery.connection.user

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

Verbindungsressource abrufen

Console

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

    Zur Seite „BigQuery“

  2. Verbindungsressourcen werden auf der obersten Ebene unter Ihrem Projekt in der Gruppe External connections aufgeführt. Klicken Sie auf eine Verbindung, um sich Informationen zu dieser Verbindungsressource anzusehen, z. B. connection ID und Cloud SQL instance ID.

    Verbindungsressourcen ansehen

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.

Alle Verbindungsressourcen auflisten

Erforderliche Berechtigungen

Zum Auflisten aller Verbindungsressourcen in einem Projekt sind die Berechtigungen bigquery.connections.list erforderlich. Die folgenden vordefinierten IAM-Rollen enthalten bereits die Berechtigung bigquery.connections.list:

  • bigquery.admin
  • bigquery.connection.admin
  • bigquery.connection.user

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 Cloud Console die Seite „BigQuery“ auf, um sich den Status einer Verbindungsressource anzeigen zu lassen.

    Zur Seite „BigQuery“

  2. Verbindungsressourcen werden auf der obersten Ebene unter Ihrem Projekt in der Gruppe External connections aufgeführt.

    Verbindungsressourcen ansehen

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.

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.

BigQuery-Verbindungsnutzer

Die Rolle bigquery.connection.user ist für Nutzer gedacht, die Abfragen mit der Verbindungsressource ausführen müssen.

Diese IAM-Rolle umfasst die folgenden Berechtigungen:

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

BigQuery-Verbindungsadministrator

Die Rolle bigquery.connection.admin ist für Nutzer gedacht, die Verbindungsressourcen verwalten müssen.

Diese IAM-Rolle enthält dieselben Berechtigungen wie bigquery.connection.user sowie zusätzliche Berechtigungen zum Erstellen, Aktualisieren und Löschen vorhandener Verbindungsressourcen und zum Festlegen von IAM-Richtlinien für Verbindungsressourcen.

  • bigquery.connections.create
  • bigquery.connections.update
  • bigquery.connections.setIamPolicy
  • bigquery.connections.delete

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 Cloud Console die Seite „BigQuery“.

    Zur Seite „BigQuery“

  2. Verbindungsressourcen werden auf der obersten Ebene unter Ihrem Projekt in der Gruppe External connections aufgeführt. Klicken Sie auf eine Verbindung, um sich Informationen zu dieser Verbindungsressource anzusehen.

    Verbindungsressourcen ansehen

  3. Klicken Sie auf die Schaltfläche SHARE CONNECTION, um sich den Berechtigungsbereich für diese Verbindungsressource anzusehen.

    Schaltfläche

  4. Im Bereich Connection permissions können Nutzer mit der Rolle BigQuery-Administrator oder BigQuery-Verbindungsadministrator die Verbindungsressource für andere Nutzer freigeben, indem sie Berechtigungen anderer Nutzer hinzufügen oder bearbeiten.

    Verbindungsressourcen freigeben

  5. Klicken Sie auf Fertig.

bq

Derzeit können Ressourcen nicht mit dem bq-Befehlszeilentool freigegeben werden. Verwenden Sie zum Freigeben einer Verbindungsressource die 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.

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 ist die Berechtigung bigquery.connections.update erforderlich.

Die folgenden vordefinierten Cloud IAM-Rollen enthalten bereits die Berechtigung bigquery.connections.update:

  • bigquery.admin
  • bigquery.connection.admin

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 Cloud Console die BigQuery-Seite auf.

    Zur Seite „BigQuery“

  2. Verbindungsressourcen werden auf der obersten Ebene unter Ihrem Projekt in der Gruppe External connections aufgeführt. Klicken Sie auf eine Verbindung, um sich Informationen zu dieser Verbindungsressource anzusehen.

    Verbindungsressourcen ansehen

  3. Klicken Sie auf die Schaltfläche EDIT CONNECTION, um den Bearbeitungsbereich für diese Verbindungsressource aufzurufen.

    Schaltfläche

  4. Bearbeiten Sie alle angezeigten Felder, einschließlich der Nutzeranmeldedaten.

    Verbindungsressource bearbeiten

  5. Klicken Sie auf Speichern.

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.

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 ist die Berechtigung bigquery.connections.delete erforderlich.

Die folgenden vordefinierten Cloud IAM-Rollen enthalten bereits die Berechtigung bigquery.connections.delete:

  • bigquery.admin
  • bigquery.connection.admin

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. Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.

    Zur Seite „BigQuery“

  2. Verbindungsressourcen werden auf der obersten Ebene unter Ihrem Projekt in der Gruppe External connections aufgeführt. Klicken Sie auf eine Verbindung, um sich Informationen zu dieser Verbindungsressource anzusehen.

    Verbindungsressourcen ansehen

  3. Klicken Sie auf die Schaltfläche DELETE CONNECTION, um sich den Löschbereich für diese Verbindungsressource anzusehen.

    Schaltfläche

  4. Geben Sie im Dialogfeld Delete connection? delete ein, um Ihre Absicht zu bestätigen.

    Verbindungsressource löschen

  5. Klicken Sie auf Delete.

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.