# Google BigQuery

Vous pouvez utiliser Google BigQuery comme plateforme de données cible dans un pipeline de données ou une tâche de réplication. Dans un pipeline de données, il est possible d'effectuer différentes opérations ELT sur la plateforme cible, notamment le stockage de données, la transformation de données, la création de datamarts et l'enregistrement de données. Par ailleurs, une tâche de réplication implique la réplication de données directement d'un système de source vers un système cible avec des fonctionnalités de transformation de base, mais sans support des opérations ELT.

La configuration de Google BigQuery comme cible implique les conditions suivantes :

* [Respect des conditions préalables requises](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Prerequi2)
* Configuration d'une connexion à Google BigQuery

## Configuration d'une connexion à Google BigQuery

Pour configurer le connecteur, procédez comme suit :

1. Dans Connexions, cliquez sur Créer une connexion.

2. Sélectionnez le Google BigQuery connecteur cible et fournissez les paramètres suivants :

### Cible de données

#### Passerelle de données

Note InformationsCe champ n'est pas disponible avec l'abonnement Démarreur Qlik Talend Cloud, car Passerelle de déplacement des données n'est pas supporté avec ce niveau d'abonnement.

Une Passerelle de déplacement des données est nécessaire uniquement si la base de données cible n'est pas accessible depuis Qlik Cloud et est accessible uniquement via un lien privé (par exemple, si elle est située dans un cloud privé virtuel). Si c'est le cas, sélectionnez la Passerelle de déplacement des données via laquelle vous souhaitez accéder à la base de données cible.

Suivant votre cas d'utilisation, il s'agira soit de la même Passerelle de déplacement des données déployée pour déplacer des données provenant de la source de données, soit d'une autre.

Pour des informations sur les cas d'utilisation de Passerelle de déplacement des données, consultez [Quand Passerelle de déplacement des données est-elle obligatoire ?](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) et [Cas d'utilisation courants](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common).

Si la base de données cible est directement accessible depuis Qlik Cloud, sélectionnez Aucune.

Note InformationsLors de l'accès à la base de données cible via Passerelle de déplacement des données, vous devez également installer le pilote approprié sur le poste Passerelle de déplacement des données. Pour des informations détaillées, voir la section [Google BigQuery](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Driver) ci-dessous.

### Propriétés de connexion

Service account key : Chargez le fichier JSON téléchargé lorsque vous avez créé votre clé de compte de service BigQuery.

Emplacement : emplacement de chargement du jeu de données créé par Qlik. Si vous sélectionnez Autre, saisissez le nom de région dans le champ Nom de région. Pour une liste des noms de région supportés, voir [Emplacements BigQuery](https://cloud.google.com/bigquery/docs/locations).

Note InformationsLa sélection de Autre nécessite Passerelle de déplacement des données 2023.11.4 ou une version ultérieure.

### Nom

Nom d'affichage de la connexion.

## Conditions préalables requises

### Autorisations nécessaires pour déposer temporairement des données

Autorisations nécessaires pour créer automatiquement le jeu de données cible :

Pour créer automatiquement le jeu de données, vous avez besoin des autorisations suivantes :

BigQuery &gt; BigQuery Job User

BigQuery &gt; BigQuery Data Editor

Autorisations nécessaires lorsque le jeu de données cible existe déjà :

Si le jeu de données existe déjà, vous devez procéder comme suit :

1. Créez un compte de service avec l'autorisation suivante :

   BigQuery &gt; BigQuery Job User

2. Accédez au jeu de données à utiliser, puis :

   1. Ajoutez le compte de service que vous venez de créer comme compte principal.

   2. Affectez le rôle BigQuery Data Editor.

### Configuration du pilote

Un pilote est obligatoire uniquement si vous accédez à la base de données via Passerelle de déplacement des données. Dans ce cas, vous devez installer le pilote sur le poste Passerelle de déplacement des données.

Vous pouvez installer le driver via l'utilitaire d'installation de pilote (recommandé) ou manuellement. Tentez une installation manuelle uniquement dans le cas improbable où vous rencontriez un problème avec l'utilitaire d'installation de pilote.

#### Utilisation de l'utilitaire d'installation de pilote pour installer le pilote

Cette section explique comment installer le driver requis. Le processus implique l'exécution d'un script qui téléchargera, installera et configurera automatiquement le driver requis. Vous pouvez également exécuter des scripts permettant de mettre à jour et de désinstaller le driver, si nécessaire.

Préparation de l'installation

* Assurez-vous que Python 3.6 ou une version ultérieure est installé sur le serveur de passerelle Déplacement des données.

  Python est préinstallé sur la plupart des distributions Linux. Vous pouvez vérifier la version de Python installée sur votre système en exécutant la commande suivante :

  python3 --version

Installation de driver

Pour télécharger et installer le driver :

1. Arrêtez le service Data Movement gateway :

   sudo systemctl stop repagent

2. Confirmez éventuellement l'arrêt du service :

   sudo systemctl status repagent

   Le statut doit être comme suit :

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

3. Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :

   opt/qlik/gateway/movement/drivers/bin

4. Exécutez la commande suivante :

   Syntaxe :

   ./install gbq

   Si le driver ne peut pas être téléchargé (en raison de restrictions d'accès ou de problèmes techniques), un message s'affichera, vous indiquant où télécharger et copier le driver sur le poste de passerelle Déplacement des données. Une fois que c'est fait, exécutez de nouveau la commande install gbq.

   Sinon, le CLUF du driver apparaîtra.

5. Effectuez l'une des opérations suivantes :

   * Appuyez à plusieurs reprises sur [Entrée] pour parcourir lentement le CLUF.
   * Appuyez à plusieurs reprises sur la barre d'espace pour parcourir rapidement le CLUF.
   * Appuyez sur q pour quitter le texte de licence et faire apparaître les options d'acceptation du CLUF.

6. Effectuez l'une des opérations suivantes :

   * Saisissez « y » et appuyez sur [Entrée] pour accepter le CLUF et démarrer l'installation.

   * Saisissez « n » et appuyez sur [Entrée] pour rejeter le CLUF et quitter l'installation.

   * Saisissez « v » et appuyez sur [Entrée] pour afficher de nouveau le CLUF.

   Le driver sera installé.

7. Attendez la fin de l'installation (indiquée par « Complete! »), puis démarrez le service Data Movement gateway :

   sudo systemctl start repagent

8. Confirmez éventuellement le lancement du service :

   sudo systemctl status repagent

   Le statut doit être comme suit :

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

Mise à jour du driver

Exécutez la commande update si vous souhaitez désinstaller des versions précédentes du driver avant d'installer le driver fourni.

Pour télécharger et mettre à jour le driver :

1. Arrêtez le service Data Movement gateway :

   sudo systemctl stop repagent

2. Confirmez éventuellement l'arrêt du service :

   sudo systemctl status repagent

   Le statut doit être comme suit :

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

3. Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :

   opt/qlik/gateway/movement/drivers/bin

4. Exécutez la commande suivante :

   Syntaxe :

   ./update gbq

   Si le driver ne peut pas être téléchargé (en raison de restrictions d'accès ou de problèmes techniques), un message s'affichera, vous indiquant où télécharger et copier le driversur le poste de passerelle Déplacement des données. Une fois que c'est fait, exécutez de nouveau la commande update gbq.

   Sinon, le CLUF du driver apparaîtra.

5. Effectuez l'une des opérations suivantes :

   * Appuyez à plusieurs reprises sur [Entrée] pour parcourir lentement le CLUF.
   * Appuyez à plusieurs reprises sur la barre d'espace pour parcourir rapidement le CLUF.
   * Appuyez sur q pour quitter le texte de licence et faire apparaître les options d'acceptation du CLUF.

6. Effectuez l'une des opérations suivantes :

   * Saisissez « y » et appuyez sur [Entrée] pour accepter le CLUF et démarrer l'installation.
   * Saisissez « n » et appuyez sur [Entrée] pour rejeter le CLUF et quitter l'installation.
   * Saisissez « v » et appuyez sur [Entrée] pour passer le CLUF en revue depuis le début.

   L'ancien driver sera désinstallé et le nouveau driver sera installé.

7. Attendez la fin de l'installation (indiquée par « Complete! »), puis démarrez le service Data Movement gateway :

   sudo systemctl start repagent

8. Confirmez éventuellement le lancement du service :

   sudo systemctl status repagent

   Le statut doit être comme suit :

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

Désinstallation du driver

Exécutez la commande uninstall si vous souhaitez désinstaller le driver.

Pour désinstaller le driver :

1. Arrêtez toutes les tâches configurées pour utiliser ce connecteur.

2. Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :

   opt/qlik/gateway/movement/drivers/bin

3. Exécutez la commande suivante :

   Syntaxe :

   ./uninstall gbq

   le driver sera désinstallé.

#### Installation manuelle du pilote

Vous devez tenter d'installer manuellement le driver uniquement si l'installation de pilote automatisée n'a pas fonctionné.

Vous devez installer le pilote ODBC et le pilote JDBC.

Installation du pilote ODBC

Une fois la Passerelle de déplacement des données installée, téléchargez les fichiers SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux.tar.gz et google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz. Vous trouverez des liens de téléchargement direct de ces fichiers sous binary-artifacts dans /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. Une fois le téléchargement terminé, copiez les fichiers sur le poste Passerelle de déplacement des données.

1. Arrêtez le service Data Movement gateway :

   sudo systemctl stop repagent

2. Confirmez éventuellement l'arrêt du service :

   sudo systemctl status repagent

   Le statut doit être comme suit :

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

3. Extraction :

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

   par :

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

4. Placez les fichiers GoogleBigQueryODBC.did et simba.googlebigqueryodbc.ini dans le répertoire lib sous le répertoire du pilote Simba ODBC.

   Exemple :

   Déplacez les fichiers de :

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

   par :

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

5. Modifiez le fichier simba.googlebigqueryodbc.ini comme suit :

   1. Remplacez ` ErrorMessagesPath  ` par le chemin d'accès au fichier XML contenant les messages ODBC. L'emplacement par défaut est :

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

   2. Remplacez `DriverManagerEncoding` par `UTF-16`.

6. Ajoutez le chemin d'accès suivant au fichier site\_arep\_login.sh qui se trouve dans le répertoire de compartimentage Data Movement gateway :

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

7. Modifiez le fichier /etc/odbcinst.ini et ajoutez le chemin d'accès au pilote (à savoir, le chemin d'accès à l'emplacement d'installation du pilote) :

   `[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. Installez google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz.

9. Démarrez le service Data Movement gateway :

   sudo systemctl start repagent

10. Confirmez éventuellement le lancement du service :

    sudo systemctl status repagent

    Le statut doit être comme suit :

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

Installation du pilote JDBC et de ses dépendances

1. Téléchargez le fichier ZIP et les fichiers JAR suivants répertoriés sous binary-artifacts dans /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml :

   * 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

   Copiez les fichiers JAR dans le dossier suivant sur le poste Passerelle de déplacement des données et extrayez les fichiers JAR dans SimbaJDBCDriverforGoogleBigQuery&lt;version&gt;.zip dans le même dossier :

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

2. Redémarrez le service Passerelle de déplacement des données en exécutant la commande décrite à la section [Redémarrage du service](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti2).

### Port

Le port du pare-feu 443 doit être ouvert pour la communication sortante.

## Types de données

La longueur du type de données paramétré sera définie avec les valeurs par défaut :

* STRING: 8192 (length)

* BYTES: 8192 (length)

* NUMERIC: Precision: 38, Scale: 9

* BIGDECIMAL: Precision: 76, Scale: 38

Le tableau suivant indique les types de données Google BigQuery supportés lors de l'utilisation de Qlik Cloud et le mapping par défaut depuis les types de données Qlik Cloud.

Les informations de type de données natif sont préservées et affichées dans la colonne Type de données natif des vues d'ensemble de données. Si la colonne n'est pas visible, vous devez ouvrir le sélecteur de colonnes de la vue d'ensemble de données et sélectionner la colonne Type de données natif.

Types de données supportés

| Types de données Qlik Cloud | Types de données Google BigQuery |
| --- | --- |
| BOOLEAN | BOOL |
| BYTES | BYTES (length in Bytes) |
| DATE | DATE |
| TIME | TIME |
| DATETIME | TIMESTAMP<br><br>Si scale &gt; 7 : STRING(37)<br><br>Sinon, la précision est toujours de 6, même si la colonne d'entrée utilise une précision inférieure à 6. |
| INT1 | TINYINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | NUMERIC (precision, scale) |
| REAL4 | FLOAT64 |
| REAL8 | FLOAT64 |
| UINT1 | TINYINT |
| UINT2 | SMALLINT |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| Chaîne de caractères | Chaîne de caractères<br><br>Si le sous-type est JSON :<br><br>JSON |
| WSTRING | Chaîne de caractères<br><br>Si le sous-type est JSON :<br><br>JSON |
| BLOB | BYTES |
| NCLOB | Chaîne de caractères<br><br>Si le sous-type est JSON :<br><br>JSON |
| CLOB | Chaîne de caractères<br><br>Si le sous-type est JSON :<br><br>JSON |
| ARRAY | Chaîne de caractères |
| STRUCT | Chaîne de caractères |
| GEOGRAPHY | Chaîne de caractères |
| JSON | JSON |

## Limitations et considérations générales concernant l'ensemble des tâches de données

* Les DDL suivantes ne sont pas supportées :

  * Supprimer la colonne
  * Renommer la colonne
  * Modifier le type de données de la colonne

* La capture des modifications des tables sources sans clé primaire ou index unique n'est pas supportée. Si vous devez capturer les modifications apportées auprès de ces tables, vous pouvez ajouter une clé primaire à l'aide d'une transformation. De plus, les colonnes de clé primaire ou d'index unique ne peuvent pas contenir de valeurs NULL. Si vous savez que de telles colonnes seront renseignées à l'aide de valeurs NULL, définissez une transformation pour remplacer les valeurs NULL par des valeurs non-nullables.

* Les champs JSON ne sont pas supportés comme clés primaires.

## Limitations et considérations générales concernant uniquement les tâches Replicate

* Le mode Appliquer les modifications transactionnelles n'est pas supporté.

* Avec la configuration suivante des paramètres de tâche, la tâche de réplication effectuera une opération DELETE suivie d'une opération INSERT au lieu d'une opération UPDATE :

  * Le mode Appliquer les modifications est défini sur Optimisation par lots.

  * L'option Appliquer les modifications via SQL MERGE n'est pas sélectionnée.

  * L'option Gestion des erreurs des MISES À JOUR pour les conflits d'applications est définie sur : Enregistrement introuvable pour l'application d'une MISE À JOUR : INSÉRER l'enregistrement cible manquant.

  Google Cloud BigQuery ne supportant pas le rollback (la restauration), au cas où la tâche de réplication ne parvient pas à insérer la ligne mise à jour, les données seront supprimées de la cible.