Mit dem BigQuery-Quell-Plug-in können Sie Daten aus BigQuery-Tabellen verbinden und laden. Daten aus einer BigQuery-Tabelle werden in einen temporären Speicherort in Cloud Storage exportiert und dann von dort in die Pipeline gelesen.
Hinweis
Cloud Data Fusion hat in der Regel zwei Dienstkonten:
- Dienstkonto für die Designzeit: Cloud Data Fusion API Service Agent
- Dienstkonto für die Ausführungszeit: Compute Engine-Dienstkonto
Bevor Sie das BigQuery-Batchquellen-Plug-in verwenden, weisen Sie jedem Dienstkonto die folgenden Rollen oder Berechtigungen zu.
Cloud Data Fusion API-Dienst-Agent
Dieses Dienstkonto hat bereits alle erforderlichen Berechtigungen. Sie müssen keine zusätzlichen Berechtigungen hinzufügen. Sie hat die folgenden Berechtigungen:
bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
Wenn Sie zusätzlich zum Standarddienstkonto für die Designzeit ein Namespace-Dienstkonto verwenden, fügen Sie ihm die Berechtigungen aus der vorherigen Liste hinzu.
Compute Engine-Dienstkonto
Weisen Sie dem Compute Engine-Dienstkonto in Ihrem Google Cloud -Projekt die folgenden IAM-Rollen oder Berechtigungen zu:
- BigQuery Job User (
roles/bigquery.jobUser): Diese vordefinierte Rolle enthält die erforderliche Berechtigungbigquery.jobs.create. BigQuery-Dateneditor (
roles/bigquery.dataEditor): Diese vordefinierte Rolle enthält die folgenden erforderlichen Berechtigungen:bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
Diese Rollen und Berechtigungen können je nach Anwendungsfall auch für das BigQuery-Dataset oder die BigQuery-Tabelle zugewiesen werden.
Autor von Legacy-Storage-Buckets (
roles/storage.legacyBucketWriter). Diese vordefinierte Rolle enthält die folgenden erforderlichen Berechtigungen:storage.buckets.getstorage.objects.getstorage.objects.list
Diese Rolle und diese Berechtigungen können je nach Anwendungsfall auch für den Cloud Storage-Bucket zugewiesen werden.
Plug-in konfigurieren
- Rufen Sie die Cloud Data Fusion-Web-UI auf und klicken Sie auf Studio.
- Prüfen Sie, ob Datenpipeline – Batch (nicht Echtzeit) ausgewählt ist.
- Klicken Sie im Menü Quelle auf BigQuery. Der BigQuery-Knoten wird in Ihrer Pipeline angezeigt.
- Wenn Sie die Quelle konfigurieren möchten, rufen Sie den BigQuery-Knoten auf und klicken Sie auf Properties (Attribute).
Geben Sie die folgenden Eigenschaften ein. Eine vollständige Liste finden Sie unter Properties.
- Geben Sie ein Label für den BigQuery-Knoten ein, z. B.
BigQuery tables. Geben Sie die Verbindungsdetails ein. Sie können eine neue Einmalverbindung oder eine vorhandene, wiederverwendbare Verbindung einrichten.
Neue Verbindung
So fügen Sie eine einmalige Verbindung zu BigQuery hinzu:
- Lassen Sie im Feld Project ID (Projekt-ID) den Wert „auto-detect“ (automatisch erkennen) stehen.
- Wenn sich das BigQuery-Dataset in einem anderen Projekt befindet, geben Sie die ID in das Feld Dataset-Projekt-ID ein.
Wählen Sie im Feld Dienstkontotyp eine der folgenden Optionen aus und geben Sie den Inhalt im nächsten Feld ein:
- Dateipfad
- JSON
Wiederverwendbare Verbindung
So verwenden Sie eine vorhandene Verbindung wieder:
- Aktivieren Sie Verbindung verwenden.
- Klicken Sie auf Verbindungen durchsuchen.
Klicken Sie auf den Verbindungsnamen, z. B. BigQuery Default.
Optional: Wenn keine Verbindung besteht und Sie eine neue wiederverwendbare Verbindung erstellen möchten, klicken Sie auf Verbindung hinzufügen und folgen Sie der Anleitung auf dem Tab Neue Verbindung auf dieser Seite.
Geben Sie im Feld Referenzname einen Namen für die Herkunft ein.
Optional: Wenn Ihr Dataset bereits in Ihrer Instanz verfügbar ist, klicken Sie auf Durchsuchen und wählen Sie die zu lesenden Daten aus.
Geben Sie im Feld Dataset den Namen des Datasets ein, das die Tabelle enthält.
Geben Sie im Feld Tabelle den Namen der Tabelle ein.
Klicken Sie auf Schema abrufen, um die Verbindung zu testen.
Optional: Geben Sie im Feld Startdatum der Partition den String für das inklusive Startdatum ein, z. B.
2021-01-11.Optional: Geben Sie im Feld Partitionsenddatum den String für das inklusive Enddatum ein, z. B.
2024-01-11.Optional: Geben Sie im Feld Filter eine BigQuery-
WHERE-Klausel ein.Optional: Geben Sie im Feld Name des temporären Buckets einen Namen für den Cloud Storage-Bucket ein.
Optional: Geben Sie im Feld Name des Verschlüsselungsschlüssels den Namen des Cloud KMS-Verschlüsselungsschlüssels (Cloud Key Management Service) ein. Weitere Informationen finden Sie unter Ressourcennamen für den Schlüssel abrufen.
Optional: Aktivieren Sie Abfrage von Ansichten aktivieren. Wenn Sie sie aktivieren, gehen Sie so vor:
- Geben Sie im Feld Projekt zum Erstellen temporärer Tabellen den Namen des Projekts ein, in dem die temporäre Tabelle erstellt wird.
- Geben Sie im Feld Dataset für die Erstellung temporärer Tabellen den Namen des Datasets ein, in dem die temporäre Tabelle erstellt wird.
Optional: Klicken Sie auf Validieren und beheben Sie alle gefundenen Fehler.
Klicken Sie auf Schließen. Die Eigenschaften werden gespeichert und Sie können Ihre Datenpipeline in der Cloud Data Fusion-Weboberfläche weiter erstellen.
- Geben Sie ein Label für den BigQuery-Knoten ein, z. B.
Eigenschaften
| Attribut | Makro aktiviert | Erforderliche Property | Beschreibung |
|---|---|---|---|
| Label | Nein | Ja | Der Name des Knotens in Ihrer Datenpipeline. |
| Verbindung verwenden | Nein | Nein | Suchen Sie nach einer wiederverwendbaren Verbindung zur Quelle. Weitere Informationen zum Hinzufügen, Importieren und Bearbeiten der Verbindungen, die beim Durchsuchen von Verbindungen angezeigt werden, finden Sie unter Verbindungen verwalten. |
| Verbindung | Ja | Ja | Wenn Verbindung verwenden aktiviert ist, wird in diesem Feld der Name der wiederverwendbaren Verbindung angezeigt, die Sie auswählen. |
| Projekt-ID | Ja | Nein | Wird nur verwendet, wenn Verbindung verwenden deaktiviert ist. Eine weltweit eindeutige Kennung für das Projekt, in dem der BigQuery-Job ausgeführt wird. Der Standardwert ist auto-detect. |
| Dataset-Projekt-ID | Ja | Nein | Wird nur verwendet, wenn Verbindung verwenden deaktiviert ist. Wenn sich das Dataset in einem anderen Projekt als dem befindet, in dem der BigQuery-Job ausgeführt wird, ist dieser Wert die global eindeutige ID für das Projekt mit dem BigQuery-Dataset. Wenn kein Wert angegeben ist, wird standardmäßig der Wert der Projekt-ID verwendet. Dem angegebenen Dienstkonto muss die Rolle „BigQuery-Datenbetrachter“ zugewiesen werden, damit BigQuery-Daten im Projekt gelesen werden können. |
| Dienstkontotyp | Ja | Nein | Wählen Sie eine der folgenden Optionen aus:
|
| Service account file path (Dateipfad des Dienstkontos) | Ja | Nein | Wird nur verwendet, wenn der Wert für „Service account type“ (Dienstkontotyp) File path (Dateipfad) ist. Der Pfad im lokalen Dateisystem des Dienstkontoschlüssels, der für die Autorisierung verwendet wird. Wenn Jobs in Managed Service for Apache Spark-Clustern ausgeführt werden, legen Sie den Wert auf „auto-detect“ fest. Wenn Jobs auf anderen Clustertypen ausgeführt werden, muss die Datei auf jedem Knoten im Cluster vorhanden sein. Der Standardwert ist auto-detect. |
| JSON-Dienstkonto | Ja | Nein | Wird nur verwendet, wenn der Wert für „Service account type“ (Dienstkontotyp) JSON ist. Der Inhalt der JSON-Datei des Dienstkontos. |
| Referenzname | Nein | Ja | Name, der diese Quelle für andere Dienste wie Datenverlaufskontrolle und Annotieren von Metadaten eindeutig identifiziert. |
| Dataset | Ja | Ja | Das Dataset, zu dem die Tabelle gehört. Datasets sind Bestandteil eines bestimmten Projekts. Datasets sind Container auf oberster Ebene, mit denen Sie den Zugriff auf Tabellen und Ansichten organisieren und steuern können. |
| Tabelle | Ja | Ja | Die Tabelle, aus der gelesen werden soll. Eine Tabelle enthält einzelne Datensätze, die in Zeilen angeordnet sind. Jeder Datensatz besteht aus Spalten (auch Felder genannt). Jede Tabelle wird durch ein Schema definiert, das unter anderem Informationen zu Spaltennamen und Datentypen enthält. |
| Startdatum der Partition | Ja | Nein | Das Startdatum der Partitionierung (einschließlich) wird als yyyy-mm-dd angegeben. Wenn kein Wert angegeben ist, werden alle Partitionen bis zum Enddatum der Partition gelesen. |
| Partitionsenddatum | Ja | Nein | Ausschließliches Partitionsenddatum, angegeben als yyyy-mm-dd. Wenn kein Wert angegeben ist, werden alle Partitionen ab dem Startdatum der Partition gelesen. |
| Filter | Ja | Nein | Eine SQL-Abfrage, die nach den angegebenen Bedingungen filtert. Mit dieser Abfrage werden beispielsweise alle Zeilen aus der Tabelle Roster zurückgegeben, in denen die Spalte SchoolID den Wert SchoolID > 52 hat:SELECT * FROM Roster WHERE SchoolID > 52;. Das entspricht der WHERE-Klausel in BigQuery. |
| Name des temporären Buckets | Ja | Nein | Der Cloud Storage-Bucket für die temporäre Datenspeicherung. Es wird automatisch erstellt, wenn es nicht vorhanden ist. Temporäre Daten werden nach dem Lesen gelöscht. Wenn kein Name angegeben wird, wird ein eindeutiger Bucket erstellt und nach Abschluss des Laufs gelöscht. |
| Name des Verschlüsselungsschlüssels | Ja | Nein | Schlüssel, mit dem Daten verschlüsselt werden, die in einen vom Plug-in erstellten Bucket geschrieben werden. Wenn der Bucket bereits vorhanden ist, wird dieser Wert ignoriert. Weitere Informationen finden Sie unter CMEK. |
| Abfragen von Ansichten aktivieren | Ja | Nein | Gibt an, ob logische und materialisierte BigQuery-Ansichten zulässig sind. Da BigQuery-Ansichten nicht standardmäßig aktiviert sind, kann das Abfragen von Ansichten zu Leistungseinbußen führen. Der Standardwert ist „Nein“. |
| Projekt zum Erstellen temporärer Tabellen | Ja | Nein | Wird nur verwendet, wenn Abfragen von Ansichten aktivieren aktiviert ist. Der Projektname, unter dem die temporäre Tabelle erstellt werden soll. Standardmäßig wird dasselbe Projekt verwendet, in dem sich die Tabelle befindet. |
| Dataset zum Erstellen temporärer Tabellen | Ja | Nein | Das Dataset im angegebenen Projekt, in dem die temporäre Tabelle erstellt werden soll. Standardmäßig wird dasselbe Dataset verwendet, in dem sich die Tabelle befindet. |
| Ausgabeschema | Ja | Ja | Schema der Tabelle, die gelesen werden soll. Sie können es abrufen, indem Sie auf Schema abrufen klicken. |
Datentypzuordnungen
In der folgenden Tabelle finden Sie eine Liste der BigQuery-Datentypen mit den entsprechenden CDAP-Typen.
| BigQuery-Datentyp | CDAP-Schemadatentyp |
|---|---|
BOOL |
boolean |
BYTES |
bytes |
DATE |
date |
DATETIME |
datetime, string |
FLOAT64 |
double |
GEO |
unsupported |
INT64 |
long |
NUMERIC |
decimal |
BIGNUMERIC |
decimal |
REPEATED |
array |
STRING |
string, datetime (ISO 8601-Format) |
STRUCT |
record |
TIME |
time (Mikrosekunden) |
TIMESTAMP |
timestamp (Mikrosekunden) |
JSON |
unsupported |