Aller au contenu

Connecter Google BigQuery

Datarelix se connecte à BigQuery via un service en lecture seule qui utilise BigQuery API de Google et GoogleSQL (également appelé Standard SQL).

Prérequis

  • Un projet Google Cloud (le projet de facturation qui paiera les requêtes).
  • L’accès au ou aux jeux de données que vous voulez analyser. BigQuery a ceci de particulier que le projet de données peut différer du projet de facturation — par exemple pour interroger les jeux de données bigquery-public-data.*.
  • Pour l’authentification par compte de service : un compte de service disposant des rôles BigQuery Data Viewer et BigQuery Job User (Data Viewer sur le dataset choisi, Job User sur le projet de facturation).
  • Pour OAuth : un compte Google autorisé à accorder la portée BigQuery (https://www.googleapis.com/auth/bigquery).

Le modèle à deux projets

Les tâches (jobs) BigQuery s’exécutent dans votre projet de facturation mais lisent depuis le projet de données :

  • Projet de facturation — à renseigner sur la connexion (champ Project ID). Les jobs de requête s’y exécutent et y sont facturés.
  • Projet de données — indiquez-le comme premier segment du champ Allowed dataset (jeu de données autorisé), par exemple bigquery-public-data.usa_names. La lecture depuis un autre projet ne demande aucune configuration en plus des droits ci-dessous.

Formulaire de connexion

Project ID (billing): your-billing-project
Location: US (or your preferred region)
Allowed dataset: data-project.dataset_name
Auth mode: select an available mode

Location doit correspondre à la région du jeu de données. BigQuery exécute la tâche de requête dans l’emplacement que vous indiquez et la rejette s’il ne correspond pas à celui du jeu de données — par exemple, un jeu de données situé dans asia-northeast1 interrogé avec Location: US échoue avec « Not found: Dataset … was not found in location US. » Réglez Location (emplacement) sur la région du jeu de données. Vérifiez la localisation de chaque dataset public sans supposer qu’il se trouve en US. Voir BigQuery locations.

Modes d’authentification

Service account JSON

Un compte de service Google Cloud s’authentifie à l’aide d’un fichier de clé JSON — c’est le mode Service account JSON (JSON de compte de service). La clé est stockée chiffrée. Adapté à un usage automatisé ou planifié, sans utilisateur présent pour autoriser l’accès de façon interactive.

Configuration

  1. Dans la console Google Cloud, créez un compte de service (IAM & Admin → Service Accounts → Create Service Account).
  2. Donnez-lui un nom explicite (par exemple datarelix-bq-reader).
  3. À l’étape Grant this service account access to project, attribuez ces deux rôles :
    • BigQuery Data Viewer (sur le dataset choisi, séparément des droits du projet)
    • BigQuery Job User (sur le projet de facturation)
  4. Une fois le compte créé, créez une clé JSON pour ce compte de service (Keys → Add Key → Create new key → JSON). Un fichier .json est téléchargé automatiquement.
  5. Ouvrez le fichier et copiez-en l’intégralité du contenu.

Où trouver vos identifiants

  • Le fichier de clé JSON téléchargé à l’étape 4 ci-dessus.
  • Si vous avez déjà un compte de service : IAM & Admin → Service Accounts → cliquez sur le compte → onglet Keys → ajoutez une nouvelle clé JSON.

Ce qu’il faut saisir

Project ID (billing): your-billing-project
Location: US
Allowed dataset: your-project.your_dataset
Auth mode: Service account JSON
Service account JSON: { "type": "service_account", "project_id": "...", ... }

Collez l’intégralité du contenu du fichier JSON téléchargé dans le champ Service account JSON.


OAuth

L’utilisateur accorde l’accès à BigQuery via l’écran de consentement Google. Un jeton d’actualisation est stocké chiffré et limité à cette connexion. Adapté aux analystes travaillant de façon interactive, quand vous voulez attribuer chaque requête à un utilisateur.

L’autorisation d’une connexion BigQuery est toujours une étape distincte et explicite. Se connecter à Datarelix avec Google ne fournit que l’identité et ne touche pas à vos données — les deux sont volontairement dissociés.

À propos de la portée que Google vous affiche. L’écran de consentement Google nomme la portée https://www.googleapis.com/auth/bigquery, dont la description parle de gestion de vos données. Datarelix demande cette portée pour les appels API BigQuery ; les droits IAM de l’identité déterminent toujours l’accès effectif. Datarelix n’émet que des SELECT : chaque instruction est validée avant exécution et les opérations qui ne sont pas des lectures sont rejetées par le service de requêtes, et non simplement déconseillées. Si vous voulez que la restriction soit appliquée par Google autant que par nous, utilisez l’authentification par compte de service avec BigQuery Data Viewer + BigQuery Job User et aucun rôle en écriture.

Configuration

Confirmez les droits IAM nécessaires avant l’autorisation — l’accès à BigQuery est régi par les autorisations IAM du compte Google. Le compte qui autorise la connexion doit disposer de :

  • BigQuery Data Viewer sur le dataset choisi.
  • BigQuery Job User sur le projet de facturation.

Où attribuer les autorisations

Console Google Cloud → IAM & Admin → IAM → trouvez ou ajoutez l’utilisateur → attribuez les rôles ci-dessus.

Ce qu’il faut saisir

Project ID (billing): your-billing-project
Location: US
Allowed dataset: your-project.your_dataset
Auth mode: OAuth

Après l’enregistrement, Datarelix ouvre une fenêtre de consentement Google. Connectez-vous avec le compte Google qui possède les autorisations IAM requises. La connexion est autorisée dès que vous approuvez la portée BigQuery.


Sémantique de la portée

Sélectionnez les datasets approuvés sous la forme data-project.dataset_name. Les requêtes sont limitées aux datasets sélectionnés. Vérifiez la compatibilité de localisation des datasets interrogés.

Découverte

Entièrement prise en charge, y compris pour les jeux de données publics. La découverte liste les tables de chaque dataset sélectionné et repère les tables qui exigent un filtre de partition, afin que les requêtes générées incluent automatiquement ce filtre.

Limites

  • Requêtes inter-jeux de données au sein d’une même connexion : techniquement possibles en SQL BigQuery via des références pleinement qualifiées project.dataset.table, mais Datarelix restreint les requêtes aux datasets autorisés.
  • Tables à filtre de partition obligatoire : le filtre de partition est ajouté automatiquement lorsque les métadonnées de la table sont disponibles. Relancez la découverte si vous ajoutez de nouvelles tables partitionnées.

Dépannage

SymptômeCause probableSolution
403 Access DeniedRôle BigQuery Data Viewer manquantAttribuez-le sur le projet de données dans IAM & Admin → IAM.
403 caller does not have permission (tâches)BigQuery Job User manquant sur le projet de facturationAttribuez-le sur le projet de facturation.
partitionFilter requiredInterrogation d’une table à filtre de partition obligatoire, sans filtreRelancez la découverte pour que la colonne de partition soit reprise automatiquement.
La fenêtre OAuth se ferme sans jetonLe navigateur a bloqué la fenêtreAutorisez les fenêtres pop-up pour *.datarelix.ai.
JSON de compte de service refuséFormat incorrect ou collage tronquéCollez l’intégralité du contenu du fichier .json, accolades { } comprises.

Limite de facturation par requête

Le connecteur fixe maximum_bytes_billed à 10 GiB (10 × 1024³ octets) par requête. Ce n’est pas un plafond mensuel. Questions et actualisations manuelles créent d’autres jobs. Avec la facturation à la demande, un LIMIT ne réduit pas généralement les octets parcourus ; utilisez les filtres de partition et les colonnes utiles. La facturation à la capacité demande un examen distinct. Contrôles de coût BigQuery

Utiliser l’identité d’un compte de service

Le mode d’authentification Service Account Impersonation prend l’adresse d’un compte de service cible ; l’identité de service de Datarelix obtient alors des identifiants temporaires pour ce compte, sans clé à stocker. Il suppose un accord préalable : contactez Datarelix avant de le choisir. Le compte de service cible doit pouvoir lire les datasets et créer des jobs dans le projet de facturation, et l’identité de service de Datarelix doit être autorisée à emprunter son identité.