Connection à Google Big Query et structure des requêtes
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 :
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.