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:
Erstellen und identifizieren Sie in der Google Cloud Platform relevante Ressourcen:
Erstellen oder identifizieren Sie ein GCP-Projekt, das BigQuery Tabellen enthält, 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 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" }-
Laden Sie die JSON-Datei mit Ihren Anmeldeinformationen an einem entsprechend sicheren Amazon-S3-Speicherort hoch. Behalten Sie den Pfad zur Datei
s3secretpathfür zukünftige Schritte bei.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
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 Schlüssel
token_uriclient_x509_cert_urlprivate_key_id,project_id,,universe_domain,auth_provider_x509_cert_url,auth_uri,,client_email,private_key,type,, dieclient_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.
-
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.
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 IAM-Rolle, die Ihrem AWS Glue-Job zugeordnet ist, die
secretNameLeseberechtigung.Geben
connectionNameSie 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 Optiontabledefiniert. 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 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 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, 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 diese Option auf gesetzt ist
indirect, 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
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 zukünftige Schritte bei. -
Bearbeiten Sie
secretName, fügen Sie denspark.hadoop.google.cloud.auth.service.account.json.keyfileSchlüssel hinzu. Legen Sie den Wert aufs3secretpathfest. -
Gewähren 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", } )