Google BigQuery
Vous pouvez utiliser Google BigQuery comme plate-forme 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 plate-forme cible, notamment le stockage de données, la transformation de données, la création de mini-data warehouses et l'enregistrement de données. Par ailleurs, un 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
- Configuration d'une connexion à Google BigQuery
Configuration d'une connexion à Google BigQuery
Pour configurer le connecteur, procédez comme suit :
-
Dans Connexions, cliquez sur Créer une connexion.
-
Sélectionnez le Google BigQuery connecteur cible et fournissez les paramètres suivants :
Cible de données
Passerelle de données
Une Data Movement gateway 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 Data Movement gateway 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 Data Movement gateway que celle 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 Data Movement gateway, consultez Quand Data Movement gateway est-elle obligatoire ? et Cas d'utilisation courants.
Si la base de données cible est directement accessible depuis Qlik Cloud, sélectionnez Aucune.
Propriétés de connexion
Clé de compte de service : 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égions supportés, voir Emplacements BigQuery.
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 > BigQuery Job User
BigQuery > 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 :
-
Créez un compte de service avec l'autorisation suivante :
BigQuery > BigQuery Job User
-
Accédez au jeu de données à utiliser, puis :
-
Ajoutez le compte de service que vous venez de créer comme compte principal.
-
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 Data Movement gateway. Dans ce cas, vous devez installer le pilote sur le poste Data Movement gateway.
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 :
-
Arrêtez le service Data Movement gateway :
sudo systemctl stop repagent
-
Confirmez éventuellement l'arrêt du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: inactive (dead) since <timestamp> ago
-
Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :
opt/qlik/gateway/movement/drivers/bin
-
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.
-
Procédez de l'une des manières 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.
-
Procédez de l'une des manières 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.
-
Attendez la fin de l'installation (indiquée par « Complete! »), puis démarrez le service Data Movement gateway :
sudo systemctl start repagent
-
Confirmez éventuellement le lancement du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: active (running) since <timestamp> ago
Le driver sera installé.
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 :
-
Arrêtez le service Data Movement gateway :
sudo systemctl stop repagent
-
Confirmez éventuellement l'arrêt du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: inactive (dead) since <timestamp> ago
-
Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :
opt/qlik/gateway/movement/drivers/bin
-
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.
-
Procédez de l'une des manières 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.
-
Procédez de l'une des manières 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.
-
Attendez la fin de l'installation (indiquée par « Complete! »), puis démarrez le service Data Movement gateway :
sudo systemctl start repagent
-
Confirmez éventuellement le lancement du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: active (running) since <timestamp> ago
L'ancien driver sera désinstallé et le nouveau driver sera installé.
Désinstallation du driver
Exécutez la commande uninstall si vous souhaitez désinstaller le driver.
Pour désinstaller le driver :
-
Arrêtez toutes les tâches configurées pour utiliser ce connecteur.
-
Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :
opt/qlik/gateway/movement/drivers/bin
-
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 un pilote ODBC et un pilote JDBC.
Installation du pilote ODBC
Une fois la Data Movement gateway installée, téléchargez les fichiers SimbaODBCDriverforGoogleBigQuery_<version>-Linux.tar.gz et google-cloud-sdk-<version>-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 Data Movement gateway.
-
Arrêtez le service Data Movement gateway :
sudo systemctl stop repagent
-
Confirmez éventuellement l'arrêt du service :
sudo systemctl status repagent
-
Extraction :
SimbaODBCDriverforGoogleBigQuery_<version>.tar.gz
par :
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux
-
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_<version>-Linux/setup
par :
/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
Modifiez le fichier simba.googlebigqueryodbc.ini comme suit :
-
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
- Remplacez
DriverManagerEncoding
parUTF-16
.
-
-
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_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib
-
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
-
Installez google-cloud-sdk-<version>-linux-x86_64.tar.gz.
-
Démarrez le service Data Movement gateway :
sudo systemctl start repagent
-
Confirmez éventuellement le lancement du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: active (running) since <timestamp> ago
Le statut doit être comme suit :
Active: inactive (dead) since <timestamp> ago
Installation du pilote JDBC et de ses dépendances
-
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/<version>/google-cloud-bigquery-<version>.jar
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<version>/google-cloud-storage-<version>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<version>.zip
Copiez les fichiers JAR dans le dossier suivant sur le poste Data Movement gateway et extrayez les fichiers JAR dans SimbaJDBCDriverforGoogleBigQuery<version>.zip dans le même dossier :
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Redémarrez le service Data Movement gateway en exécutant la commande décrite à la section Redémarrage du service.
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 Qlik Cloud | Types de données Google BigQuery |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES (length in Bytes) |
DATE |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC (precision, scale) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING (length in Bytes) |
WSTRING |
STRING (length in Bytes) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
Les types de données suivants sont convertis en STRING :
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
Vous devez tenter d'installer manuellement le driver uniquement si l'installation de pilote automatisée n'a pas fonctionné.
Limitations et considérations générales
Les limitations et considérations générales suivantes s'appliquent lors du déplacement de données vers une cible Google BigQuery.
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
- Renommer la table
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.
Limitations et considérations générales concernant uniquement les tâches de réplication
- Le mode Appliquer les modifications transactionnelles n'est pas supporté.
L'option de traitement des erreurs Consigner l'enregistrement dans la table d'exceptions pour les conflits d'applications et les erreurs de données n'est pas supportée.
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.