Résoudre les problèmes liés aux erreurs et aux limites du connecteur BigQuery

Lorsque vous associez Data Studio à BigQuery, vous pouvez rencontrer des délais avant expiration, des limites de syntaxe SQL, des limites de quotas ou des erreurs liées à VPC Service Controls. Ce guide décrit les problèmes courants liés au connecteur BigQuery. Développez Procédure de résolution pour examiner et résoudre votre problème.


Erreurs de requête et de syntaxe SQL

Les requêtes SQL personnalisées dans Data Studio sont soumises à des limites spécifiques. Si votre requête ne respecte pas ces limites, des erreurs peuvent se produire.

Erreur de jointure Field is ambiguous

Si votre requête personnalisée contient des noms de colonnes en double, les graphiques affichent l'erreur suivante :

User Configuration Error: Field is ambiguous

Texte du message d'erreur : Erreur de configuration de l'utilisateur

Cause : Les tables jointes (JOIN) ne peuvent pas partager des noms de colonnes en double. Par exemple, si vous joignez deux tables avec des schémas identiques sur un champ Criteria_ID, la table virtuelle résultante comportera des colonnes en double (Criteria_ID, Parent_ID, Name), ce qui déclenchera une erreur d'ambiguïté.

Procédure de résolution

Rendez tous les noms de colonnes uniques à l'aide du mot clé AS ou de la clause EXCEPT :

Option 1 : Renommer explicitement les champs en double à l'aide d'alias

SELECT *
FROM (
  SELECT
    Criteria_ID AS Criteria_ID_1,
    Parent_ID AS Parent_ID_1,
    Name AS NAME_1
  FROM
    `project.dataset.table_1` ) AS table_1
LEFT JOIN (
  SELECT
    Criteria_ID AS Criteria_ID_2,
    Parent_ID AS Parent_ID_2,
    Name AS NAME_2
  FROM
    `project.dataset.table_2` ) AS table_2
ON
  table_1.Criteria_ID_1 = table_2.Criteria_ID_2;

Option 2 : Exclure et renommer des champs spécifiques à l'aide de EXCEPT

Si vous n'avez besoin de renommer qu'un petit nombre de champs tout en conservant le reste, utilisez EXCEPT :

SELECT * EXCEPT (city), city AS city_1 FROM `project.dataset.table_1`

Erreur de syntaxe de requête SQL personnalisée (plusieurs instructions)

Votre requête SQL personnalisée échoue si elle contient des variables ou plusieurs instructions (DECLARE, SET).

Cause : Data Studio exécute votre code SQL dans une requête SELECT externe (SELECT * FROM (<your_custom_sql>)). Par conséquent, votre requête doit être une instruction SELECT unique.

Par exemple, la requête suivante échoue, car elle déclare une variable avant de sélectionner :

DECLARE cost_per_tb_in_dollar FLOAT64 DEFAULT 4.2;
SELECT total_bytes_billed / (1024 * 1024) * cost_per_tb_in_dollar / (1024 * 1024) FROM `billing_table`;

Procédure de résolution

Combinez les calculs dans une seule instruction SELECT à l'aide d'expressions de table courantes (CTE, Common Table Expressions) ou de clauses WITH :

WITH constants AS (
  SELECT 4.2 AS cost_per_tb_in_dollar
)
SELECT
  total_bytes_billed / (1024 * 1024) * c.cost_per_tb_in_dollar / (1024 * 1024) AS cost
FROM `billing_table`, constants AS c;

Performances et délais avant expiration des requêtes

Lorsque l'exécution des requêtes prend plus de trois à cinq minutes, Data Studio expire avant de recevoir les résultats et renvoie : HTTP 504 Gateway timeout.

Erreurs HTTP 504 Gateway timeout ou de requête de longue durée

Les requêtes personnalisées ou les agrégations de graphiques complexes dans Data Studio peuvent expirer au bout de trois à cinq minutes, ce qui renvoie une erreur HTTP 504 Gateway timeout.

Procédure de résolution

Si vos requêtes expirent systématiquement, utilisez ces optimisations :

  • Activer l'API de lecture BigQuery Storage : activez l'API de lecture BigQuery Storage Read API pour augmenter le débit des données.
  • Simplifier votre requête : supprimez les commandes `JOIN` inutiles, regroupez les données par périodes plus larges et ne sélectionnez que les colonnes requises.
  • Utiliser BigQuery BI Engine : réservez de la capacité avec BigQuery BI Engine pour des performances inférieures à la seconde.
  • Utiliser des vues de base de données : enregistrez votre code SQL personnalisé en tant que vue BigQuery ou vue matérialisée, puis associez Data Studio directement à cette vue.
  • Effectuer une pré-agrégation dans une table de rapports : utilisez des requêtes planifiées dans BigQuery pour écrire des enregistrements récapitulatifs dans une table distincte, puis interrogez la table récapitulative.

Quotas et limites de tables

Lorsque votre ensemble de données contient des milliers de tables ou renvoie des millions d'enregistrements, des erreurs de limite peuvent se produire :

Gel de la réactivité de l'interface utilisateur pour un ensemble de données contenant plus de 5 000 tables

Lorsque vous tentez de vous connecter à un ensemble de données BigQuery à l'aide de la liste de sélection de tables dans Data Studio, l'interface utilisateur se fige ou ne répond plus.

Cause : Le connecteur accepte jusqu'à 5 000 tables par ensemble de données. Si un ensemble de données dépasse 5 000 tables ou vues, la liste de sélection de tables expire et se fige.

Procédure de résolution

Utilisez l'une de ces alternatives pour vous connecter sans charger la liste des tables :

  • Se connecter à l'aide d'une requête personnalisée : sélectionnez REQUÊTE PERSONNALISÉE et écrivez une instruction `SELECT` moins complexe :
    SELECT * FROM `your_project.your_dataset.your_table`
  • Se connecter directement depuis BigQuery : dans la console BigQuery, recherchez votre table, cliquez sur Exporter ou Explorer les données, puis sélectionnez Ouvrir avec Looker Studio.
  • Diviser ou réorganiser votre ensemble de données : déplacez les tables de rapports dans des ensembles de données de rapports plus petits et dédiés contenant moins de 5 000 tables.

Limite maximale de 2 millions de lignes renvoyées

Lorsque vous visualisez des ensembles de données volumineux, votre graphique peut afficher un avertissement de troncature des données ou omettre les lignes qui dépassent 2 millions d'enregistrements.

Cause : Le connecteur renvoie un maximum de 2 millions de lignes par requête de graphique. Si une requête dépasse 2 millions d'enregistrements, les graphiques tronquent les données et affichent un avertissement.

Procédure de résolution

Pour éviter la troncature des données :

  • Appliquez des filtres de date au niveau du rapport pour réduire le volume des requêtes.
  • Interrogez les tables partitionnées par date (`DATE`, `DATETIME`, `TIMESTAMP`) qui nécessitent des filtres de partition (en savoir plus).
  • Regroupez les dimensions à cardinalité élevée dans BigQuery avant de les visualiser dans Data Studio.

Variance MEDIAN et PERCENTILE

Lorsque vous calculez des médianes exactes (MEDIAN) ou des centiles (PERCENTILE) dans des graphiques associés à BigQuery, la sortie peut différer légèrement des calculs identiques effectués sur d'autres bases de données SQL ou exportations CSV.

Cause : Dans les requêtes BigQuery, MEDIAN et PERCENTILE utilisent la fonction d'agrégation approximative APPROX_QUANTILES. Cela permet de traiter rapidement les ensembles de données à l'échelle du pétaoctet, mais les résultats approximatifs peuvent différer légèrement des calculs exacts effectués sur des exportations CSV ou d'autres bases de données SQL.


Erreurs de type de données et de chiffrement

Découvrez comment gérer les types de colonnes non compatibles et les stratégies de chiffrement des clés appliquées par l'organisation.

Erreur de chiffrement CONDITION_NOT_MET (CMEK)

Lorsque vous interrogez un ensemble de données, le graphique échoue et renvoie l'erreur suivante :

User Configuration Error: CONDITION_NOT_MET

Cause : Le connecteur n'est pas compatible avec les clés de chiffrement gérées par le client (CMEK). Si une règle d'administration nécessite le chiffrement CMEK pour les requêtes ou le stockage temporaire (service de règles d'administration), les graphiques affichent User Configuration Error: CONDITION_NOT_MET.

Procédure de résolution

Collaborez avec l'administrateur de votre organisation pour exempter le projet de rapport de la règle CMEK ou exportez les données de rapport dans un ensemble de données régi par la norme Google-owned and Google-managed encryption keys.


Type de données TIME non compatible

Lorsque vous vous connectez à une table BigQuery contenant des colonnes de type de données TIME (par exemple, 23:59:59), Data Studio convertit le champ en TEXT, ce qui empêche le tri ou les agrégations basés sur l'heure.

Cause : Data Studio n'est pas compatible de manière native avec le type de données TIME de BigQuery (par exemple, 23:59:59). Le connecteur convertit les colonnes TIME en chaînes TEXT lors de l'ingestion, ce qui empêche le tri basé sur l'heure.

Procédure de résolution

Convertissez les colonnes `TIME` en objets DATETIME à l'aide de l'une des solutions suivantes :

Solution 1 : Utiliser une requête SQL personnalisée

Combinez le champ `TIME` avec une date de base (`1970-01-01`) directement dans votre code SQL :

SELECT
  *,
  -- Combine a dummy date (1970-01-01) with your TIME field
  DATETIME(DATE "1970-01-01", your_time_field) AS time_as_datetime
FROM
  `your_project.your_dataset.your_table`
  • Résultat : Data Studio ingère `time_as_datetime` en tant que champ **Date et heure**.
  • Mise en forme : dans les propriétés du graphique de votre rapport, remplacez le **format d'affichage** du champ par **Heure**, **Minute** ou un format d'heure personnalisé (`h:mm:ss`) afin de n'afficher que la partie de l'heure (en savoir plus).

Solution 2 : Créer un champ calculé dans Data Studio

Si vous ne modifiez pas la requête SQL, créez un champ calculé dans votre source de données :

PARSE_DATETIME("%H:%M:%S", CAST(your_time_field AS TEXT))
  • Résultat : La fonction `PARSE_DATETIME` analyse la chaîne de texte en un objet **Date et heure** , en définissant par défaut la date du calendrier au 1er janvier 1970 (en savoir plus).

Erreurs liées à VPC Service Controls

Résolvez les erreurs d'accès refusé et les restrictions liées aux processus en arrière-plan lorsque vous travaillez dans des périmètres de service.

Service Control Failure lors de la consultation de rapports en dehors d'un VPN

Lorsque vous consultez un rapport en dehors du VPN ou du réseau d'entreprise de votre organisation, certains graphiques, voire tous, échouent et affichent l'erreur suivante :

Service Control Failure

Cause : Le connecteur transmet l'adresse IP du lecteur de rapport à BigQuery pour vérifier les niveaux d'accès basés sur l'adresse IP de VPC Service Controls. Lorsque vous copiez un rapport, les sources de données SQL personnalisées héritées ou "fantômes" de la copie peuvent faire référence à un projet de facturation protégé dans un périmètre de service, même si votre ensemble de données principal se trouve en dehors.

Procédure de résolution

Identifiez et supprimez ou réattribuez tous les projets de facturation cachés liés à un périmètre dans votre rapport :

  1. Créez une copie du rapport concerné pour résoudre le problème en toute sécurité.
  2. Dans l'éditeur de rapport de la copie, accédez à Ressource > Gérer les nouvelles sources de données.
  3. Examinez chaque source de données **BigQuery** ou **SQL personnalisée** intégrée au rapport.
  4. Modifiez chaque connexion SQL personnalisée pour vérifier son **projet de facturation** configuré. Si une source de données pointe vers un projet de facturation protégé par un périmètre VPC Service Controls, mettez-le à jour pour utiliser un projet de facturation non protégé ou supprimez la source de données si elle n'est plus utilisée.

Échec de la livraison d'e-mails programmés ou des alertes de graphique derrière VPC Service Controls

Lorsque des fonctionnalités d'arrière-plan automatisées (telles que la livraison d'e-mails programmés ou les alertes de graphique) s'exécutent sur un graphique associé à un ensemble de données BigQuery protégé par VPC Service Controls, l'e-mail programmé est envoyé sans contenu ni pièces jointes, ou l'alerte ne se déclenche pas (VPC Service Controls unexpected field in error map).

Cause : Étant donné que les fonctionnalités d'arrière-plan automatisées (telles que les e-mails programmés ou les alertes de graphique) s'exécutent en tant que tâches en arrière-plan sans adresse IP d'utilisateur final, VPC Service Controls (VPC-SC) les bloque lors de l'évaluation des niveaux d'accès basés sur l'adresse IP (VPC Service Controls unexpected field in error map).

Procédure de résolution

Pour utiliser des fonctionnalités d'arrière-plan automatisées derrière un périmètre VPC Service Controls, configurez votre source de données pour qu'elle utilise des identifiants de compte de service ou créez un niveau d'accès basé sur l'identité :