Connection à Google Big Query et structure des requêtes

Modifié par Aurelie Bertrand le 2024/09/20 11:53

❗La fiche résolution est susceptible de ne pas fonctionner selon la version utilisée. Le cas échéant, veuillez contacter le support en décrivant ce qui ne fonctionne pas.



Connecteur BigQuery jdbc

Comment se connecter

Pour se connecter à google BigQuery en utilisant le connecteur jdbc, ne pas spécifier d’utilisateur et de mot de passe.
Il faut laisser ces champs vides construire l’url :

jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=MYBIGQUERYPROJECTID;OAuthType=0;OAuthServiceAcctEmail=EMAILBIGQUERYPROJECT;OAuthPvtKeyPath=/usr/share/digdash_enterprise_2019R2_p20191030_64/access/MYJSON.json;Timeout=3600;AllowLargeResults=1;

Explication :
MYBIGQUERYPROJECTID   : Project id name donnée par google dans votre compte BigQuery
EMAILBIGQUERYPROJECT : Gservice email account fourni par google
/usr/[...]/MYJSON.json: Exportez votre PvtKey Big Query (fournit par google sur le compte) et placez la sur le serveur. Donnez ensuite dans l’url le chemin vers cette clé.

Option de connexion dans l’URL

A la fin de l’url, il est possible d’ajouter plusieurs arguments pour configurer la connexion, sous le format :
Argument=Valeur;
Il vaut mieux en rajouter deux de bases :
Timeout=3600
(sinon par défaut, le timeout de du jdbc est d’environ 10 secondes)
et
AllowLargeResults=1
(pour pouvoir récupérer des résultats de query > 128 Mo)
Pour connaître toutes les options de connexion, voir la doc du jdbc simba:
https://www.simba.com/products/BigQuery/doc/JDBC_InstallGuide/content/jdbc/bq/options/intro-general.htm

Debug

En se connectant avec le jdbc simba sur une base BigQuery, DigDash lancera une fatale/exception dans la console à propos de l’autocommit : cette erreur est une réponse du connecteur jdbc sur l’autocommit, il n’y a rien à faire, et la connexion marchera quand même.

Requêter Google BigQuery depuis le studio

En fonction des données, faire un SELECT * sur une table bigquery générera une erreur. Cela vient de métadonnées ou de type de données spécifiques à google .
Pour parer à ce problème, vous devez faire un CAST as STRING sur chaque colonne.
Exemple :
cast(ticket_id as STRING) as ticket_id
Seuls STRING, DATE et INT64 sont disponibles pour faire les CAST.
Si besoin d’une date au format DATETIME, il est possible de CAST en STRING puis la convertir dans DigDash.