# Google BigQuery

Sie können Google BigQuery als eine Zieldatenplattform in einer Daten-Pipeline oder einer Replikationsaufgabe verwenden. In einer Daten-Pipeline können verschiedene ELT-Vorgänge auf der Zielplattform durchgeführt werden, wie das Speichern oder Umwandeln von Daten, das Erstellen von Data Marts und die Datenregistrierung. Im Gegensatz dazu werden bei einer Replikationsaufgabe die Daten direkt aus einem Quellsystem in ein Zielsystem mit grundlegenden Umwandlungsfunktionen repliziert. ELT-Vorgänge werden nicht unterstützt.

Das Einrichten von Google BigQuery als Ziel beinhaltet:

* [Erfüllen der Voraussetzungen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Prerequi2)
* Konfigurieren einer Verbindung zu Google BigQuery

## Konfigurieren einer Verbindung zu Google BigQuery

Gehen Sie wie folgt vor, um den Konnektor zu konfigurieren:

1. Klicken Sie in Verbindungen auf Verbindung erstellen.

2. Wählen Sie den Konnektor für denGoogle BigQuery -Zielkonnektor aus und geben Sie dann die folgenden Einstellungen an:

### Datenziel

#### Daten-Gateway

InformationshinweisDieses Feld ist für Qlik Talend Cloud Starter-Abonnements nicht verfügbar, da Data Movement gateway für diese Abonnementstufe nicht unterstützt wird.

Ein Data Movement gateway ist nur erforderlich, wenn die Zieldatenbank nicht über Qlik Cloud, sondern nur über einen privaten Link erreichbar ist (wenn sie sich z. B. in einer Virtual Private Cloud befindet). Wählen Sie in diesem Fall das Data Movement gateway aus, über das Sie auf die Zieldatenbank zugreifen möchten.

Abhängig von Ihrem Anwendungsfall ist dies das gleiche Data Movement gateway, das zum Verschieben von Daten aus der Datenquelle bereitgestellt wurde, oder ein anderes.

Informationen zu Anwendungsfällen für Data Movement gateway finden Sie unter [Wann ist Data Movement gateway erforderlich?](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) und [Häufige Anwendungsfälle](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common).

Wenn auf die Zieldatenbank direkt über Qlik Cloud zugegriffen werden kann, wählen Sie Keine aus.

InformationshinweisWenn Sie über Data Movement gateway auf die Zieldatenbank zugreifen, müssen Sie auch den entsprechenden Treiber auf dem Data Movement gateway-Rechner installieren. Weitere Einzelheiten finden Sie unter [Google BigQuery](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Driver) unten.

### Verbindungseigenschaften

Dienstkontoschlüssel: Laden Sie die JSON-Datei hoch, die beim Erstellen des BigQuery-Dienstkontoschlüssels heruntergeladen wurde.

Standort: Ort, an den der von Qlik erstellte Datensatz hochgeladen wird. Wenn Sie Sonstige auswählen, geben Sie den Regionsnamen in das Feld Regionsname ein. Eine Liste der unterstützen Regionsnamen finden Sie unter [BigQuery-Standorte](https://cloud.google.com/bigquery/docs/locations).

InformationshinweisFür die Auswahl von Sonstige ist Data Movement gateway 2023.11.4 oder höher erforderlich.

### Name

Der Anzeigename für die Verbindung.

## Voraussetzungen

### Für Bereitstellungsdaten erforderliche Berechtigungen

Erforderliche Berechtigungen zur automatischen Erstellung des Ziel-Datasets:

Wenn das Dataset automatisch erstellt werden soll, sind die folgenden Berechtigungen nötig:

BigQuery &gt; BigQuery Job User

BigQuery &gt; BigQuery Data Editor

Erforderlichen Berechtigungen, wenn das Ziel-Dataset bereits vorhanden ist:

Wenn der Datensatz bereit vorhanden ist, müssen Sie folgende Schritte durchführen:

1. Erstellen Sie ein Dienstkonto mit der folgenden Berechtigung:

   BigQuery &gt; BigQuery Job User

2. Navigieren Sie zum Dataset, das Sie verwenden möchten, und führen Sie dann Folgendes aus:

   1. Fügen Sie das Dienstkonto hinzu, das Sie gerade als Prinzipal erstellt haben.

   2. Weisen Sie die Rolle BigQuery Data Editor zu.

### Treibereinrichtung

Ein Treiber ist nur erforderlich, wenn Sie über Data Movement gateway auf die Datenbank zugreifen. Installieren Sie in diesem Fall den Treiber auf dem Data Movement gateway-Rechner.

Sie können den driver mit dem Treiberinstallations-Dienstprogramm (empfohlen) oder manuell installieren. Eine manuelle Installation sollte nur in dem unwahrscheinlichen Fall versucht werden, dass Sie beim Verwenden des Treiberinstallations-Dienstprogramms auf Probleme stoßen.

#### Verwenden des Treiberinstallations-Dienstprogramms zum Installieren des Treibers

In diesem Abschnitt wird die Installation des erforderlichen driver beschrieben. Der Prozess umfasst das Ausführen eines Skripts, das den erforderlichen driver automatisch herunterlädt, installiert und konfiguriert. Sie können auch Skripte ausführen, um den driver bei Bedarf zu aktualisieren und zu deinstallieren.

Vorbereiten der Installation

* Vergewissern Sie sich, dass Python 3.6 oder höher auf dem Data Movement-Gateway-Server installiert ist.

  Python ist in den meisten Linux-Distributionen vorinstalliert. Führen Sie den folgenden Befehl aus, um zu prüfen, welche Python-Version auf Ihrem System installiert ist.

  python3 --version

Installieren von driver

So laden Sie den driver herunter und installieren ihn:

1. Halten Sie den Data Movement Gateway-Dienst an:

   sudo systemctl stop repagent

2. Bestätigen Sie optional, dass der Dienst angehalten wurde:

   sudo systemctl status repagent

   Der Status lautet wie folgt:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:

   opt/qlik/gateway/movement/drivers/bin

4. Führen Sie den folgenden Befehl aus:

   Syntax:

   ./install gbq

   Wenn der driver (aufgrund von Zugriffsbeschränkungen oder technischen Fehlern) nicht heruntergeladen werden kann, wird eine Meldung mit Anleitungen dazu angezeigt, wo Sie den driver herunterladen können und wohin er im Data Movement-Gateway-Computer kopiert werden muss. Führen Sie dann den Befehl install gbq erneut aus.

   Andernfalls wird die Endbenutzer-Lizenzvereinbarung für den driver angezeigt.

5. Gehen Sie folgendermaßen vor:

   * Drücken Sie mehrmals die [Eingabetaste], um langsam durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
   * Drücken Sie mehrmals die Leertaste, um schnell durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
   * Drücken Sie q, um den Lizenztext zu schließen und die Optionen zum Akzeptieren der Endbenutzer-Lizenzvereinbarung anzuzeigen.

6. Gehen Sie folgendermaßen vor:

   * Geben Sie „y“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung zu akzeptieren und mit der Installation zu beginnen.

   * Geben Sie „n“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung abzulehnen und den Installationsvorgang abzubrechen.

   * Geben Sie „v“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung erneut anzuzeigen.

   Der driver wird installiert.

7. Warten Sie, bis die Installation abgeschlossen ist („Complete!“ wird angezeigt) und starten Sie dann den Data Movement Gateway-Dienst:

   sudo systemctl start repagent

8. Bestätigen Sie optional, dass der Dienst gestartet wurde:

   sudo systemctl status repagent

   Der Status lautet wie folgt:

   Active: active (running) since &lt;timestamp&gt; ago

Aktualisieren des driver

Führen Sie den Befehl „update“ aus, wenn Sie vorherige Versionen des driver deinstallieren möchten, bevor Sie den bereitgestellten driver installieren.

So laden Sie den driver herunter und aktualisieren ihn:

1. Halten Sie den Data Movement Gateway-Dienst an:

   sudo systemctl stop repagent

2. Bestätigen Sie optional, dass der Dienst angehalten wurde:

   sudo systemctl status repagent

   Der Status lautet wie folgt:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:

   opt/qlik/gateway/movement/drivers/bin

4. Führen Sie den folgenden Befehl aus:

   Syntax:

   ./update gbq

   Wenn der driver (aufgrund von Zugriffsbeschränkungen oder technischen Fehlern) nicht heruntergeladen werden kann, wird eine Meldung mit Anleitungen dazu angezeigt, wo Sie den driver herunterladen können und wohin er im Data Movement-Gateway-Computer kopiert werden muss. Führen Sie dann den Befehl update gbq erneut aus.

   Andernfalls wird die Endbenutzer-Lizenzvereinbarung für den driver angezeigt.

5. Gehen Sie folgendermaßen vor:

   * Drücken Sie mehrmals die [Eingabetaste], um langsam durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
   * Drücken Sie mehrmals die Leertaste, um schnell durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
   * Drücken Sie q, um den Lizenztext zu schließen und die Optionen zum Akzeptieren der Endbenutzer-Lizenzvereinbarung anzuzeigen.

6. Gehen Sie folgendermaßen vor:

   * Geben Sie „y“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung zu akzeptieren und mit der Installation zu beginnen.
   * Geben Sie „n“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung abzulehnen und den Installationsvorgang abzubrechen.
   * Geben Sie „v“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung von Anfang an anzuzeigen.

   Der alte driver wird deinstalliert und der neue driver installiert.

7. Warten Sie, bis die Installation abgeschlossen ist („Complete!“ wird angezeigt) und starten Sie dann den Data Movement Gateway-Dienst:

   sudo systemctl start repagent

8. Bestätigen Sie optional, dass der Dienst gestartet wurde:

   sudo systemctl status repagent

   Der Status lautet wie folgt:

   Active: active (running) since &lt;timestamp&gt; ago

Deinstallieren des driver

Führen Sie den Befehl „uninstall“ aus, wenn Sie den driver deinstallieren möchten.

So deinstallieren Sie den driver:

1. Halten Sie alle Aufgaben an, die für die Verwendung dieses Konnektors konfiguriert sind.

2. Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:

   opt/qlik/gateway/movement/drivers/bin

3. Führen Sie den folgenden Befehl aus:

   Syntax:

   ./uninstall gbq

   Der driver wird deinstalliert.

#### Manuelles Installieren des Treibers

Nehmen Sie nur dann eine manuelle Installation des driver vor, wenn die automatische Treiberinstallation nicht erfolgreich abgeschlossen werden konnte.

Sie müssen sowohl den ODBC-Treiber als auch den JDBC-Treiber installieren.

Installieren des ODBC-Treibers

Nachdem Data Movement gateway installiert ist, laden Sie die Dateien SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux.tar.gz und google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz herunter. Direkte Download-Links für diese Dateien finden Sie unter binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Kopieren Sie nach Abschluss des Downloads die Dateien auf den Data Movement gateway-Rechner.

1. Halten Sie den Data Movement Gateway-Dienst an:

   sudo systemctl stop repagent

2. Bestätigen Sie optional, dass der Dienst angehalten wurde:

   sudo systemctl status repagent

   Der Status lautet wie folgt:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Extrahieren:

   SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;.tar.gz

   zu:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux

4. Verschieben Sie die Dateien GoogleBigQueryODBC.did und simba.googlebigqueryodbc.ini in das Verzeichnis lib unter dem Simba ODBC-Treiberverzeichnis.

   Beispiel:

   Verschieben Sie die Dateien aus:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/setup

   zu:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/SimbaODBCDriverforGoogleBigQuery64\_&lt;version&gt;/lib

5. Bearbeiten Sie die Datei simba.googlebigqueryodbc.ini wie folgt:

   1. Ändern Sie den ` ErrorMessagesPath  ` in den Pfad der XML-Datei mit den ODBC-Nachrichten. Der Standardspeicherort lautet:

      `ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages`

   2. Ändern Sie `DriverManagerEncoding` in `UTF-16`.

6. Fügen Sie den folgenden Pfad zu der Datei site\_arep\_login.sh hinzu, die sich im Data Movement Gateway-Bin-Verzeichnis befindet:

   export LD\_LIBRARY\_PATH=$LD\_LIBRARY\_PATH:/opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/SimbaODBCDriverforGoogleBigQuery64\_&lt;version&gt;/lib

7. Bearbeiten Sie die Datei /etc/odbcinst.ini und fügen Sie den Treiberpfad hinzu (also den Pfad, in dem der Treiber installiert wird):

   `[ODBC Drivers]`

   `Simba= Installed`

   `Simba ODBC Driver for Google BigQuery = Installed`

   `[Simba ODBC Driver for Google BigQuery]`

   `Description=Simba ODBC Driver for Google BigQuery(64-bit)`

   `Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so`

8. Installieren Sie google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz.

9. Starten Sie den Data Movement Gateway-Dienst:

   sudo systemctl start repagent

10. Bestätigen Sie optional, dass der Dienst gestartet wurde:

    sudo systemctl status repagent

    Der Status lautet wie folgt:

    Active: active (running) since &lt;timestamp&gt; ago

Installieren des JDBC-Treibers und seiner Abhängigkeiten

1. Laden Sie die folgende ZIP-Datei und die JAR-Dateien herunter, die Sie unter binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml finden:

   * https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/&lt;version&gt;/google-cloud-bigquery-&lt;version&gt;.jar
   * https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/&lt;version&gt;/google-cloud-storage-&lt;version&gt;.jar
   * https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery&lt;version&gt;.zip

   Kopieren Sie die JAR-Dateien in den folgenden Ordner auf dem Data Movement gateway-Rechner und extrahieren Sie die JAR-Dateien in SimbaJDBCDriverforGoogleBigQuery&lt;version&gt;.zip in den gleichen Ordner:

   /opt/qlik/gateway/movement/qcs\_agents/qdi-db-commands/lib

2. Starten Sie den Data Movement gateway-Dienst neu, indem Sie den in [Neustarten des Diensts](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti2) beschriebenen Befehl ausführen.

### Port

Der Firewall-Port 443 muss für die ausgehende Kommunikation geöffnet werden.

## Datentypen

Die parametrisierte Datentypenlänge wird auf Standardwerte gesetzt:

* STRING: 8192 (Länge)

* BYTES: 8192 (Länge)

* NUMERIC Genauigkeit: 38, Dezimalstellen: 9

* BIGDECIMAL: Genauigkeit: 76, Dezimalstellen: 38

Die folgende Tabelle zeigt die Google BigQuery-Datentypen, die bei der Verwendung von Qlik Cloud unterstützt werden, sowie die Standardzuordnung von Qlik Cloud-Datentypen.

Informationen zum nativen Datentyp werden beibehalten und in der Spalte Nativer Datentyp in Datensatzansichten angezeigt. Wenn die Spalte nicht angezeigt wird, müssen Sie die Spaltenauswahl in der Datensatzansicht öffnen und die Spalte Nativer Datentyp auswählen.

Unterstützte Datentypen

| Qlik Cloud-Datentypen | Google BigQuery SQL-Datentypen |
| --- | --- |
| BOOLEAN | BOOL |
| BYTES | BYTES (Länge in Byte) |
| DATE | DATE |
| TIME | TIME |
| DATETIME | TIMESTAMP<br><br>Wenn Dezimalstellen &gt; 7: STRING(37)<br><br>Andernfalls ist die Genauigkeit immer 6, auch wenn die Eingabespalte eine geringere Genauigkeit als 6 verwendet. |
| INT1 | TINYINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | NUMERIC (Genauigkeit, Dezimalstellen) |
| REAL4 | FLOAT64 |
| REAL8 | FLOAT64 |
| UINT1 | TINYINT |
| UINT2 | SMALLINT |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| STRING | STRING<br><br>Wenn der Untertyp JSON ist, dann:<br><br>JSON |
| WSTRING | STRING<br><br>Wenn der Untertyp JSON ist, dann:<br><br>JSON |
| BLOB | BYTES |
| NCLOB | STRING<br><br>Wenn der Untertyp JSON ist, dann:<br><br>JSON |
| CLOB | STRING<br><br>Wenn der Untertyp JSON ist, dann:<br><br>JSON |
| ARRAY | STRING |
| STRUCT | STRING |
| GEOGRAPHY | STRING |
| JSON | JSON |

## Einschränkungen und Überlegungen für alle Datenaufgaben

* Die folgenden DDLs werden nicht unterstützt:

  * Spalte verwerfen
  * Spalte umbenennen
  * Spaltendatentyp ändern

* Das Erfassen von Änderungen aus Quelltabellen ohne Primärschlüssel oder eindeutigen Index wird nicht unterstützt. Wenn Sie Änderungen aus diesen Tabellen erfassen müssen, können Sie einen Primärschlüssel mithilfe einer Umwandlung hinzufügen. Zusätzlich können die Spalten für Primärschlüssel oder eindeutigen Index keine NULLs enthalten. Wenn Sie wissen, dass solche Spalten mit NULL-Werten gefüllt werden, definieren Sie eine Umwandlung, um die NULL-Werte in nicht-nullwertfähige Werte zu ändern.

* JSON-Felder werden nicht als Primärschlüssel unterstützt.

## Einschränkungen und Überlegungen nur für Replikationsaufgaben

* Der Transaktionsmodus „Änderungen anwenden“ wird nicht unterstützt.

* Mit der folgenden Konfiguration der Aufgabeneinstellungen führt die Replikationsaufgabe einen DELETE-Vorgang gefolgt von einem INSERT anstelle eines UPDATE durch:

  * Der Modus „Änderungen anwenden“ ist auf Stapeloptimiert festgelegt.

  * Die Option Änderungen mit SQL MERGE anwenden ist nicht ausgewählt.

  * Fehlerbehandlung für UPDATEs für Anwendungskonflikte wird wie folgt festgelegt: Kein Datensatz für die Anwendung eines UPDATE gefunden: INSERT für fehlenden Zieldatensatz.

  Da Google Cloud BigQuery kein Rollback unterstützt, werden die Daten im Falle, dass die Replikationsaufgabe die aktualisierte Zeile nicht einfügen kann, aus dem Ziel gelöscht.