View a markdown version of this page

BigQuery Verbindungen - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

BigQuery Verbindungen

In AWS Glue 4.0 und späteren Versionen können Sie Glue for Spark verwenden, um aus Tabellen BigQuery in AWS Google zu lesen und in Tabellen zu schreiben. Sie können BigQuery mit einer Google SQL-Abfrage lesen. Sie stellen BigQuery mithilfe der Anmeldeinformationen eine Verbindung her, AWS Secrets Manager die über eine AWS Glue-Verbindung gespeichert sind.

Weitere Informationen zu Google BigQuery finden Sie auf der Google BigQuery Cloud-Website.

BigQuery Verbindungen konfigurieren

Um BigQuery von AWS Glue aus eine Verbindung zu Google herzustellen, müssen Sie Ihre Google Cloud Platform-Anmeldeinformationen in einem AWS Secrets Manager Secret erstellen und speichern und dieses Geheimnis dann einer Google BigQuery AWS Glue-Verbindung zuordnen.

So konfigurieren Sie eine Verbindung zu BigQuery:
  1. Erstellen und identifizieren Sie in der Google Cloud Platform relevante Ressourcen:

  2. Erstellen und exportieren Sie in Google Cloud Platform Anmeldeinformationen für ein Dienstkonto:

    Sie können den BigQuery Anmeldeinformations-Assistenten verwenden, um diesen Schritt zu beschleunigen: Anmeldeinformationen erstellen.

    Folgen Sie der Anleitung unter Dienstkonten erstellen, um ein Dienstkonto in GCP zu erstellen.

    • Wählen Sie bei der Auswahl eines Projekts das Projekt aus, das Ihre BigQuery Tabelle enthält.

    • Wenn Sie GCP-IAM-Rollen für Ihr Dienstkonto auswählen, fügen Sie eine Rolle hinzu oder erstellen Sie eine Rolle, die die entsprechenden Berechtigungen zum Ausführen von BigQuery Aufträgen zum Lesen, Schreiben oder Erstellen BigQuery von Tabellen gewährt.

    Folgen Sie der Anleitung unter Einen Dienstkontoschlüssel erstellen, um Anmeldeinformationen für Ihr Dienstkonto zu erstellen.

    • Wählen Sie für den Schlüsseltyp JSON aus.

    Sie sollten jetzt eine JSON-Datei mit Anmeldeinformationen für Ihr Dienstkonto heruntergeladen haben. Das sollte bei Ihnen ähnlich wie im folgenden Bild aussehen:

    { "type": "service_account", "project_id": "*****", "private_key_id": "*****", "private_key": "*****", "client_email": "*****", "client_id": "*****", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "*****", "universe_domain": "googleapis.com" }
  3. Laden Sie die JSON-Datei mit Ihren Anmeldeinformationen an einem entsprechend sicheren Amazon-S3-Speicherort hoch. Behalten Sie den Pfad zur Datei s3secretpath für zukünftige Schritte bei.

  4. Erstellen Sie AWS Secrets Manager unter mithilfe Ihrer Google Cloud Platform-Anmeldeinformationen ein Geheimnis. Um ein Geheimnis in Secrets Manager zu erstellen, folgen Sie dem Tutorial unter Create an AWS Secrets Manager Secret in der AWS Secrets Manager Dokumentation. Nachdem Sie das Geheimnis erstellt haben, behalten Sie den Namen des Geheimnisses secretName für den nächsten Schritt bei.

    Geben Sie beim Erstellen von Key/value Paaren die Schlüssel und Werte wie folgt an:

    • Geben Sie für Schlüssel token_uri client_x509_cert_urlprivate_key_id,project_id,,universe_domain,auth_provider_x509_cert_url,auth_uri,,client_email,private_key,type,, die client_id Schlüssel die entsprechenden Werte in der heruntergeladenen JSON-Datei an.

    • Geben Sie für spark.hadoop.google.cloud.auth.service.account.json.keyfile Schlüssel den ans3secretpath.

  5. Erstellen AWS Sie im Glue-Datenkatalog eine Verbindung, indem Sie die Schritte unter ausführenAWS Glue Verbindung hinzufügen. Nachdem Sie die Verbindung hergestellt haben, behalten Sie den Verbindungsnamen für den nächsten Schritt bei. connectionName

    • Wählen Sie bei der Auswahl eines Verbindungstyps Google aus BigQuery.

    • Geben Sie bei der Auswahl eines AWS Geheimnisses Folgendes ansecretName.

  6. Erteilen Sie der IAM-Rolle, die Ihrem AWS Glue-Job zugeordnet ist, die secretName Leseberechtigung.

  7. Geben connectionName Sie in Ihrer AWS Glue-Job-Konfiguration eine zusätzliche Netzwerkverbindung an.

Aus BigQuery Tabellen lesen

Voraussetzungen:

  • Eine BigQuery Tabelle, aus der Sie gerne lesen würden. Sie benötigen die BigQuery Tabellen- und Datensatznamen im Formular[dataset].[table]. Nennen wir dastableName.

  • Das Abrechnungsprojekt für die BigQuery Tabelle. Sie benötigen den Namen des Projekts,parentProject. Wenn es kein übergeordnetes Fakturierungsprojekt gibt, verwenden Sie das Projekt, das die Tabelle enthält.

  • BigQuery Informationen authentifizieren. Führen Sie die Schritte zur Verwaltung Ihrer Verbindungsdaten mit AWS Glue aus, um Ihre Authentifizierungsinformationen zu konfigurieren. Sie benötigen den Namen der AWS Glue-Verbindung,connectionName.

Beispiel:

bigquery_read = glueContext.create_dynamic_frame.from_options( connection_type="bigquery", connection_options={ "connectionName": "connectionName", "parentProject": "parentProject", "sourceType": "table", "table": "tableName", }

Sie können auch eine Abfrage stellen, um die an Sie zurückgegebenen Ergebnisse zu filtern DynamicFrame. Sie müssen query, sourceType, viewsEnabled und materializationDataset konfigurieren.

Beispiel:

Zusätzliche Voraussetzungen:

Sie müssen einen BigQuery Datensatz erstellen oder identifizierenmaterializationDataset, in den Sie materialisierte Ansichten für Ihre Abfragen schreiben BigQuery können.

Sie müssen Ihrem Dienstkonto die entsprechenden GCP-IAM-Berechtigungen gewähren, um darin Tabellen erstellen zu können. materializationDataset

glueContext.create_dynamic_frame.from_options( connection_type="bigquery", connection_options={ "connectionName": "connectionName", "materializationDataset": materializationDataset, "parentProject": "parentProject", "viewsEnabled": "true", "sourceType": "query", "query": "select * from bqtest.test" } )

In Tabellen schreiben BigQuery

In diesem Beispiel wird direkt in den BigQuery Dienst geschrieben. BigQuery unterstützt auch die „indirekte“ Schreibmethode. Weitere Informationen zur Konfiguration indirekter Schreibvorgänge finden Sie unter Indirektes Schreiben mit Google verwenden BigQuery.

Voraussetzungen:

  • Eine BigQuery Tabelle, in die Sie schreiben möchten. Sie benötigen die BigQuery Tabellen- und Datensatznamen im Formular[dataset].[table]. Sie können auch einen neuen Tabellennamen angeben, der automatisch erstellt wird. Nennen wir dastableName.

  • Das Abrechnungsprojekt für die BigQuery Tabelle. Sie benötigen den Namen des Projekts,parentProject. Wenn es kein übergeordnetes Fakturierungsprojekt gibt, verwenden Sie das Projekt, das die Tabelle enthält.

  • BigQuery Informationen authentifizieren. Führen Sie die Schritte zur Verwaltung Ihrer Verbindungsdaten mit AWS Glue aus, um Ihre Authentifizierungsinformationen zu konfigurieren. Sie benötigen den Namen der AWS Glue-Verbindung,connectionName.

Beispiel:

bigquery_write = glueContext.write_dynamic_frame.from_options( frame=frameToWrite, connection_type="bigquery", connection_options={ "connectionName": "connectionName", "parentProject": "parentProject", "writeMethod": "direct", "table": "tableName", } )

BigQuery Referenz zur Verbindungsoption

  • project – Standard: Standard für das Google Cloud-Dienstkonto. Wird verwendet für Read/Write. Der Name eines Google Cloud-Projekts, das mit Ihrer Tabelle verknüpft ist.

  • table— (Erforderlich) Verwendet für Read/Write. Der Name Ihrer BigQuery Tabelle im Format[[project:]dataset.].

  • dataset – Erforderlich, wenn nicht über die Option table definiert. Verwendet für Read/Write. Der Name des Datensatzes, der Ihre BigQuery Tabelle enthält.

  • parentProject – Standard: Standard für das Google Cloud-Dienstkonto. Wird verwendet für Read/Write. Der Name eines Google Cloud-Projekts, das mit project verknüpft ist und für die Fakturierung verwendet wird.

  • sourceType – Wird zum Lesen verwendet. Beim Lesen erforderlich. Gültige Werte:table, query Informiert AWS Glue darüber, ob Sie tabellarisch oder per Abfrage lesen.

  • materializationDataset – Wird zum Lesen verwendet. Gültige Werte: Zeichenfolgen. Der Name eines BigQuery Datensatzes, der zum Speichern von Materialisierungen für Ansichten verwendet wird.

  • viewsEnabled – Wird zum Lesen verwendet. Standard: falsch. Zulässige Werte: true, false. Konfiguriert, ob Ansichten verwendet BigQuery werden.

  • query – Wird zum Lesen verwendet. Wird verwendet, wenn viewsEnabled „true“ ist. Eine GoogleSQL-DQL-Abfrage.

  • temporaryGcsBucket – Wird zum Schreiben verwendet. Erforderlich, wenn writeMethod auf Standard (indirect) eingestellt ist. Name eines Google Cloud Storage-Buckets, in dem beim Schreiben eine Zwischenform Ihrer Daten gespeichert wird. BigQuery

  • writeMethod – Standardwert: indirect. Zulässige Werte: direct, indirect. Wird zum Schreiben verwendet. Gibt die Methode an, mit der Ihre Daten geschrieben werden.

    • Wenn auf gesetztdirect, schreibt Ihr Connector mithilfe der BigQuery Storage Write-API.

    • Wenn diese Option auf gesetzt istindirect, schreibt Ihr Connector in Google Cloud Storage und überträgt ihn dann BigQuery mithilfe eines Ladevorgangs in den Speicher. Ihr Google Cloud-Dienstkonto benötigt entsprechende GCS-Berechtigungen.

Indirektes Schreiben mit Google verwenden BigQuery

In diesem Beispiel wird indirektes Schreiben verwendet. Dabei werden Daten in Google Cloud Storage geschrieben und nach Google kopiert BigQuery.

Voraussetzungen:

Sie benötigen einen temporären Google Cloud Storage-Bucket,temporaryBucket.

Für den Zugriff auf die GCP-IAM-Rolle für das GCP-Dienstkonto von AWS Glue sind entsprechende GCS-Berechtigungen erforderlich. temporaryBucket

Zusätzliche Konfiguration:

So konfigurieren Sie indirektes Schreiben mit: BigQuery
  1. Bewerten Sie BigQuery Verbindungen konfigurieren und suchen oder laden Sie die JSON-Datei mit Ihren GCP-Anmeldeinformationen erneut herunter. Identifizieren Sie secretName das AWS Secrets Manager Geheimnis für die Google BigQuery AWS Glue-Verbindung, die in Ihrem Job verwendet wird.

  2. Laden Sie die JSON-Datei mit Ihren Anmeldeinformationen an einem entsprechend sicheren Amazon-S3-Speicherort hoch. Behalten Sie den Pfad zur Datei s3secretpath für zukünftige Schritte bei.

  3. Bearbeiten SiesecretName, fügen Sie den spark.hadoop.google.cloud.auth.service.account.json.keyfile Schlüssel hinzu. Legen Sie den Wert auf s3secretpath fest.

  4. Gewähren Sie Ihrem AWS Glue-Job Amazon S3 s3secretpath IAM-Zugriffsberechtigungen.

Sie können jetzt den Speicherort Ihres temporären GCS-Bucket für Ihre Schreibmethode angeben. Sie müssen writeMethod nicht angeben, da indirect üblicherweise die Standardeinstellung ist.

bigquery_write = glueContext.write_dynamic_frame.from_options( frame=frameToWrite, connection_type="bigquery", connection_options={ "connectionName": "connectionName", "parentProject": "parentProject", "temporaryGcsBucket": "temporaryBucket", "table": "tableName", } )