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 aus lesen. Sie stellen eine Verbindung BigQuery mit Anmeldeinformationen 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 Anmeldeinformationen für die Google Cloud Platform erstellen und in einem AWS Secrets Manager geheimen Ordner speichern und dieses Geheimnis dann mit einer Google BigQuery AWS Glue-Verbindung verknüpfen.
So konfigurieren Sie eine Verbindung zu BigQuery:
Erstellen und identifizieren Sie in der Google Cloud Platform relevante Ressourcen:
Erstellen oder identifizieren Sie ein GCP-Projekt mit BigQuery Tabellen, zu denen Sie eine Verbindung herstellen möchten.
Aktivieren Sie die BigQuery API. Weitere Informationen finden Sie unter Verwenden der BigQuery Storage Read API zum Lesen von Tabellendaten
.
Erstellen und exportieren Sie in Google Cloud Platform Anmeldeinformationen für ein Dienstkonto:
Sie können den Assistenten für BigQuery Anmeldeinformationen 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 Projektauswahl 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 entsprechende Berechtigungen zum Ausführen von BigQuery Jobs 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" }-
Laden Sie die JSON-Datei mit Ihren Anmeldeinformationen an einem entsprechend sicheren Amazon-S3-Speicherort hoch. Behalten Sie den Pfad zur Datei
s3secretpathfür future Schritte bei.Erstellen Sie AWS Secrets Manager unter mit Ihren Anmeldedaten für die Google Cloud Platform einen geheimen Schlüssel. Um ein Geheimnis in Secrets Manager zu erstellen, folgen Sie dem Tutorial, das in der AWS Secrets Manager Dokumentation unter Create an AWS Secrets Manager Secret verfügbar ist. Nachdem Sie das Geheimnis erstellt haben, behalten Sie den Geheimnamen
secretNamefü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
token_uriclient_x509_cert_urlprivate_key_id,project_id,universe_domain,auth_provider_x509_cert_url,auth_uri,client_email,private_keytype,client_idSchlüssel die entsprechenden Werte in der heruntergeladenen JSON-Datei an. -
Geben Sie für
spark.hadoop.google.cloud.auth.service.account.json.keyfileSchlüssel den ans3secretpath.
-
Stellen AWS Sie im Glue-Datenkatalog eine Verbindung her, indem Sie die Schritte unter befolgenHinzufügen einer AWS Glue-Verbindung. Nachdem Sie die Verbindung hergestellt haben, behalten Sie den Verbindungsnamen für den nächsten Schritt bei.
connectionNameWählen Sie bei der Auswahl eines Verbindungstyps Google aus BigQuery.
Geben Sie bei der Auswahl eines AWS Geheimnisses Folgendes an
secretName.
Erteilen Sie der mit Ihrem AWS Glue-Job verknüpften IAM-Rolle
secretNameLeserechte.Stellen
connectionNameSie in Ihrer AWS Glue-Job-Konfiguration eine zusätzliche Netzwerkverbindung bereit.
Aus BigQuery Tabellen lesen
Voraussetzungen:
-
Eine BigQuery Tabelle, aus der Sie lesen möchten. 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 zur Authentifizierung. Gehen Sie wie folgt vor, um Ihre Verbindungsdaten mit AWS Glue zu verwalten, um Ihre Authentifizierungsinformationen zu konfigurieren. Sie benötigen den Namen der AWS Glue-Verbindung,
connectionName.
Zum 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 angeben, um die an Sie zurückgegebenen Ergebnisse zu filtern DynamicFrame. Sie müssen query, sourceType, viewsEnabled und materializationDataset konfigurieren.
Zum 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 Verwenden Sie indirektes Schreiben mit Google 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 zur Authentifizierung. Gehen Sie wie folgt vor, um Ihre Verbindungsdaten mit AWS Glue zu verwalten, um Ihre Authentifizierungsinformationen zu konfigurieren. Sie benötigen den Namen der AWS Glue-Verbindung,
connectionName.
Zum 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 für Lesen/Schreiben verwendet. Der Name eines Google Cloud-Projekts, das mit Ihrer Tabelle verknüpft ist. -
table– (Erforderlich) Wird zum Lesen/Schreiben verwendet. Der Name Ihrer BigQuery Tabelle im Format[[project:]dataset.]. -
dataset– Erforderlich, wenn nicht über die Optiontabledefiniert. Wird für Lesen/Schreiben verwendet. Der Name des Datensatzes, der Ihre BigQuery Tabelle enthält. -
parentProject– Standard: Standard für das Google Cloud-Dienstkonto. Wird für Lesen/Schreiben verwendet. Der Name eines Google Cloud-Projekts, das mitprojectverknüpft ist und für die Fakturierung verwendet wird. -
sourceType– Wird zum Lesen verwendet. Beim Lesen erforderlich. Gültige Werte:table,queryInformiert AWS Glue darüber, ob Sie nach Tabelle oder nach Abfrage lesen werden. -
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, wennviewsEnabled„true“ ist. Eine GoogleSQL-DQL-Abfrage. -
temporaryGcsBucket– Wird zum Schreiben verwendet. Erforderlich, wennwriteMethodauf 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 gesetzt
direct, schreibt Ihr Connector mithilfe der BigQuery Storage Write-API.Wenn auf gesetzt
indirect, schreibt Ihr Connector in Google Cloud Storage und überträgt ihn dann BigQuery mithilfe eines Ladevorgangs an Google Cloud Storage. Ihr Google Cloud-Dienstkonto benötigt entsprechende GCS-Berechtigungen.
Verwenden Sie indirektes Schreiben mit Google BigQuery
In diesem Beispiel wird indirektes Schreiben verwendet, bei dem Daten in Google Cloud Storage geschrieben und nach Google kopiert BigQuery werden.
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:
Um indirektes Schreiben zu konfigurieren mit: BigQuery
Bewerten Sie BigQuery Verbindungen konfigurieren und suchen oder laden Sie die JSON-Datei mit Ihren GCP-Anmeldeinformationen erneut herunter. Identifizieren Sie
secretNamedas AWS Secrets Manager Geheimnis für die Google BigQuery AWS Glue-Verbindung, die in Ihrem Job verwendet wird.-
Laden Sie die JSON-Datei mit Ihren Anmeldeinformationen an einem entsprechend sicheren Amazon-S3-Speicherort hoch. Behalten Sie den Pfad zur Datei
s3secretpathfür future Schritte bei. -
Bearbeiten
secretName,spark.hadoop.google.cloud.auth.service.account.json.keyfileSchlüssel hinzufügen. Legen Sie den Wert aufs3secretpathfest. -
Erteilen Sie Ihrem AWS Glue-Job Amazon S3
s3secretpathIAM-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", } )