Cours
La technologie de stockage de données a récemment été consolidée afin de devenir plus évolutive et moins coûteuse grâce à la popularisation des services cloud. L'une des solutions les plus courantes est l'entrepôt de données BigQuery de Google Cloud Platform.
L'enquête Stack Overflow 2024 confirme sa popularité croissante, avec un taux d'adoption de 24,1 % parmi les utilisateurs du cloud à l'échelle mondiale. La demande en matière d'expertise BigQuery a considérablement augmenté dans divers secteurs, rendant la compréhension de ses principes fondamentaux indispensable pour les professionnels des données.
Cet article présente une compilation de questions fréquemment posées lors d'entretiens d'embauche concernant BigQuery afin de vous aider à vous préparer. Si vous commencez tout juste à vous familiariser avec BigQuery, je vous recommande de consulter d'abord le guide suivant sur le stockage de données sur GCP.
Questions d'entretien de base sur BigQuery
Il est essentiel de connaître les bases de BigQuery avant d'aborder des sujets complexes. Ces questions évaluent votre compréhension des concepts fondamentaux, de l'architecture et des fonctionnalités. Si vous n'êtes pas en mesure de répondre aux questions suivantes, je vous recommande de commencer par consulter le Guide du débutant sur BigQuery et de vous inscrire à notre cours d'introduction à BigQuery.
Qu'est-ce que BigQuery et en quoi diffère-t-il des bases de données traditionnelles ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension des entrepôts de données modernes et leurs avantages par rapport aux bases de données traditionnelles.
BigQuery est un entrepôt de données entièrement géré et sans serveur sur Google Cloud, conçu pour l'analyse de données à grande échelle. Il permet d'effectuer des requêtes SQL à grande vitesse sur des ensembles de données volumineux sans avoir à gérer l'infrastructure, et permet aux utilisateurs de se concentrer sur l'analyse plutôt que sur la maintenance.
Contrairement aux bases de données relationnelles traditionnelles sur site, qui sont généralement basées sur des lignes et limitées par les contraintes matérielles, BigQuery est un système de stockage en colonnes natif du cloud qui offre une évolutivité quasi infinie. Son architecture distribuée et son modèle de tarification à l'utilisation le rendent plus efficace pour traiter les charges de travail analytiques que les bases de données traditionnelles.
Qu'est-ce qu'un ensemble de données dans BigQuery ?
Pourquoi cette question est-elle posée ? Pour évaluer vos connaissances sur l'organisation des données et la structure de BigQuery.
Dans BigQuery, un ensemble de données est défini comme le conteneur supérieur qui organise les tableaux, les vues et d'autres ressources. Cela ouvre la voie au contrôle d'accès et à la localisation des données. En structurant efficacement les données, les ensembles de données garantissent de meilleures performances de requête et une meilleure gestion des accès, ce qui en fait un élément fondamental de l'architecture de BigQuery.
Comment procéder pour charger des données dans BigQuery ?
Pourquoi cette question est-elle posée ? Pour évaluer vos connaissances sur les différentes méthodes d'ingestion de données.
BigQuery propose plusieurs méthodes d'ingestion de données adaptées à différents objectifs.
- Le mode de chargement par lots est généralement utilisé pour télécharger un ensemble de données historiques volumineux dans BigQuery à l'aide de l'interface est généralement utilisé pour télécharger un ensemble de données historiques volumineux dans BigQuery à l'aide de l'interface utilisateur Web BigQuery, de l'outil de ligne de commande bq ou d'appels API.
- L'ingestion en continu permet le traitement des données en temps réel en transférant des enregistrements individuels ou de petits lots à l'aide de l'API BigQuery Streaming.
- Le service de transfert de données de BigQuery peut simplifier les importations de données planifiées à partir du stockage Google Cloud, de Google Ads et de sources SaaS.
Pour les workflows ETL avancés, Google Cloud Dataflow et d'autres outils de pipeline facilitent le transfert transparent des données vers BigQuery. Le choix de la méthode d'ingestion la plus appropriée dépend du volume de données, de la latence et des besoins en matière de traitement.
Quels types de données BigQuery prend-il en charge ?
Pourquoi cette question est-elle posée ? Pour évaluer vos connaissances sur les capacités de traitement des données de BigQuery.
BigQuery prend en charge divers types de données, classés dans les catégories suivantes :
- Types de base : BOOL, INT64, FLOAT64, STRING, BYTES, DATE, DATETIME, TIME, TIMESTAMP
- Types complexes : ARRAY, STRUCT, JSON
- Types spécialisés : NUMÉRIQUE, BIGNUMÉRIQUE, INTERVALLE, GÉOGRAPHIE, PLAGE
Chaque type de données possède une taille de stockage logique définie, qui influe sur les performances et le coût des requêtes. Par exemple, le stockage STRING dépend de la longueur encodée en UTF-8, tandis que ARRAY<INT64> nécessite 8 octets par élément. La compréhension de ces types contribue à optimiser les requêtes et à gérer efficacement les coûts.
Vous pouvez consulter tous les types de données pris en charge dans le tableau suivant.

Types de données BigQuery. Image provenant de Documentation Google Cloud.
Quels sont les principaux avantages de l'utilisation de BigQuery ?
Pourquoi cette question est-elle posée ? Pour vous assurer de bien comprendre les principaux avantages de l'utilisation de BigQuery en tant qu'entrepôt de données.
L'utilisation des services BigQuery offre cinq avantages principaux par rapport aux solutions autogérées traditionnelles :
- Évolutivité: Tous les investissements en matériel informatique sont initialement reportés. Cela nous permet d'augmenter ou de réduire facilement les ressources, en fonction des besoins de l'entreprise.
- Flexibilité: L'infrastructure peut être adaptée en fonction des besoins de l'entreprise.
- Sécurité élevée: Les sauvegardes automatiques et les fonctionnalités de reprise après sinistre sont des fonctionnalités par défaut des solutions cloud telles que GCP.
- Rentable: Les options de paiement à l'utilisation permettent aux clients de payer uniquement pour les services qu'ils utilisent.
- Partage de données et collaboration : L'utilisation de services basés sur le cloud favorise le partage des données et la collaboration.

Avantages de BigQuery. Image fournie par l'auteur.
Questions techniques relatives à BigQuery pour un entretien d'embauche
Une fois que vous avez acquis les bases de BigQuery, il est temps de vous plonger dans les aspects plus techniques que les recruteurs évaluent généralement.
Ces questions dépassent le cadre des définitions de base et évaluent votre capacité à optimiser les performances, à gérer les coûts et à utiliser des fonctionnalités avancées telles que le partitionnement, le clustering et la sécurité.
Qu'est-ce que le partitionnement dans BigQuery et comment améliore-t-il les performances ?
Pourquoi cette question est-elle posée ? Évaluer vos connaissances des techniques d'organisation des données et leur impact sur l'efficacité des requêtes.
Le partitionnement dans BigQuery est une méthode qui consiste à subdiviser de grandes tables en éléments plus petits et plus faciles à gérer, en fonction d'un certain critère tel que la date, l'heure d'ingestion ou les valeurs d'entiers. Ainsi, en segmentant les données en partitions, BigQuery peut limiter la quantité de données analysées lors des requêtes, ce qui améliore considérablement les performances et réduit les coûts.
Par exemple, une table partitionnée stockant des données de transactions quotidiennes permet aux requêtes de filtrer efficacement des plages de dates spécifiques au lieu de parcourir l'ensemble des données. Cela rend le partitionnement particulièrement avantageux pour l'analyse de séries chronologiques et les charges de travail analytiques à grande échelle.
Qu'est-ce que le regroupement dans BigQuery et comment améliore-t-il les performances des requêtes ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension des stratégies d'organisation des données qui optimisent l'efficacité et le coût des requêtes.
Dans BigQuery, le regroupement désigne l'organisation des données au sein de partitions en fonction des valeurs d'une ou plusieurs colonnes spécifiées. En regroupant essentiellement les lignes associées par clustering, BigQuery réduit la quantité de données analysées, améliorant ainsi les performances des requêtes et diminuant les coûts globaux de traitement.
Cette méthode d'optimisation des requêtes s'est avérée particulièrement efficace lors du filtrage, du tri ou de l'agrégation de données basées sur des colonnes clusterisées, où le moteur de requête peut ignorer toutes les données non pertinentes plutôt que d'effectuer un balayage complet de la partition. Le clustering est particulièrement efficace lorsqu'il est associé au partitionnement et offre des avantages encore plus significatifs en termes de performances lors du traitement de grands ensembles de données.
Quelle est la différence entre une table et une vue dans BigQuery ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension des structures de données de BigQuery et de leurs cas d'utilisation.
Dans BigQuery, une table est une unité de stockage structurée qui contient physiquement des données, tandis qu'une vue est une table virtuelle qui récupère dynamiquement des données à partir d'une requête SQL prédéfinie. La principale différence entre les deux réside dans le fait que les vues ne peuvent pas contenir de données en elles-mêmes, mais servent de base pour écrire des requêtes volumineuses ou appliquer des règles de sécurité relatives à l'accès aux données en offrant un accès à un sous-ensemble de données sans les dupliquer effectivement. Les vues améliorent également les temps d'exécution des requêtes en permettant aux utilisateurs de réaccéder aux données sans avoir à recharger ou réorganiser les tableaux, ce qui les rend particulièrement efficaces pour l'analyse, l'abstraction des données et l'application des mesures de sécurité.
En résumé :
- A tableau est une unité de stockage structurée qui contient physiquement des données.
- A vue est un tableau virtuel qui récupère dynamiquement des données à partir d'une requête SQL prédéfinie sans les stocker.
Comment BigQuery assure-t-il la sécurité des données ?
Pourquoi cette question est-elle posée ? Vérifiez vos connaissances sur la sécurité BigQuery associée à la protection des données sensibles.
BigQuery adopte une approche multicouche de la sécurité des données, en commençant par un modèle sécurisé destiné à protéger les données à tous les niveaux de leur cycle de vie.
- Les données sont cryptées au repos à l'aide de clés de chiffrement gérées par Google par défaut, ou à l'aide de clés gérées par le client si celui-ci souhaite en conserver le contrôle.
- Les données sont cryptées pendant leur transfert via HTTPS/TLS et lors de leur transfert entre les clients et BigQuery.
- La gestion des identités et des accès (IAM) Le contrôle permet un contrôle d'accès précis en attribuant des rôles et des affectations aux comptes utilisateurs et aux comptes de service afin de garantir que seules les personnes autorisées peuvent accéder aux données ou les modifier.
- La journalisation d'audit vise à suivre l'activité des utilisateurs et du système en fournissant une piste d'audit pouvant être utilisée à des fins de surveillance et de conformité.
Ces fonctionnalités de sécurité intégrées aident les organisations à préserver la confidentialité et l'intégrité des données, ainsi que la conformité réglementaire.
Qu'est-ce que le service de transfert de données BigQuery et comment simplifie-t-il l'ingestion de données ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension du transfert et de l'intégration automatisés des données dans BigQuery.
Le service de transfert de données BigQuery (BQ DTS) automatise et planifie les importations de données provenant de diverses sources externes vers BigQuery, éliminant ainsi le besoin de processus ETL manuels. Il s'intègre de manière native à aux services Google tels que Google Ads, YouTube et Google Cloud Storage, ainsi qu'aux applications SaaS tierces.
En permettant des transferts de données automatisés et planifiés, BQ DTS garantit que les données restent à jour pour l'analyse sans nécessiter l'intervention de l'utilisateur. Ce service est particulièrement utile pour les organisations qui gèrentdes flux de travail récurrents d'ingestion de données à grande échelle, car il améliore l'efficacité et réduit les frais généraux opérationnels.
Que sont les champs imbriqués et répétés dans BigQuery, et en quoi sont-ils utiles ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension de la prise en charge des données semi-structurées par BigQuery et ses avantages par rapport aux modèles relationnels traditionnels.
BigQuery prend en charge les champs imbriqués et répétés, ce qui permet un stockage et une interrogation plus efficaces des données hiérarchiques ou basées sur des tableaux. Champs imbriqués utilisez la STRUCT , ce qui permet à une colonne de contenir des sous-champs, à l'instar d'un objet JSON.
Les champs répétés fonctionnent comme des TABLEAUX, permettant à une seule colonne de stocker plusieurs valeurs. Ces structures permettentà d'éliminer le besoin d'opérations JOIN complexes, d'améliorer les performances des requêtes et de rendre BigQuery particulièrement adapté au traitement de données semi-structurées telles que les journaux, les flux d'événements et les ensembles de données de type nosql.
Comment planifier et automatiser des tâches dans BigQuery ?
Pourquoi cette question est-elle posée ? Pour évaluer vos connaissances en matière d'automatisation de l'exécution des requêtes et de gestion des flux de travail dans BigQuery.
BigQuery propose plusieurs méthodes pour planifier et automatiser les tâches, garantissant ainsi l'exécution des tâches récurrentes sans intervention manuelle.
- Les requêtes planifiées permettent aux utilisateurs de définir des exécutions de requêtes récurrentes directement via l'interface utilisateur Web ou l'API BigQuery.
- Cloud Scheduler fournit un service de type cron entièrement géré qui déclenche des requêtes à des intervalles prédéfinis.
- Pour l'automatisation basée sur les événements, Cloud Functions peut exécuter des tâches BigQuery en réponse à des déclencheurs provenant d'autres services Google Cloud.
Ces outils d'automatisation contribuent à rationaliser les pipelines de données, à réduire la charge de travail manuelle et à garantir un traitement rapide des données à des fins d'analyse et de reporting.
Comment Big Query gère-t-il le partitionnement et le regroupement des données ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension des stratégies d'organisation des données dans BigQuery et leur impact sur les performances des requêtes et la rentabilité.
Le partitionnement divise les grands tableaux en segments plus petits, améliorant ainsi les performances des requêtes en ne scannant que les données pertinentes.
-
basées sur le temps: Par DATE, TIMESTAMP, DATETIME (par exemple, partitions quotidiennes sales_date).
-
s relatives à la plage d'entiers: Par valeurs INTEGER (par exemple, plages d'
user_id). -
s relatives au moment de l'ingestion: Par horodatage du chargement des données (
_PARTITIONDATE).
Il est particulièrement adapté aux données chronologiques et permet de réduire les coûts de requête lors du filtrage par date ou par plages numériques.
Le regroupement organise les données dans un tableau ou une partition en les triant en fonction des colonnes sélectionnées, ce qui accélère les requêtes.
Il est particulièrement adapté au filtrage et à l'agrégation par champs fréquemment interrogés, tels que région ou l'user_id.

Exemples de regroupements de tableaux et de partitions. Image by Google Cloud.
Questions d'entretien sur l'architecture BigQuery
Comment l'architecture de Google BigQuery est-elle conçue et qu'est-ce qui la rend unique ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension de l'architecture sans serveur de BigQuery et en quoi elle diffère des entrepôts de données traditionnels.
BigQuery dispose d'une architecture sans serveur et entièrement gérée qui dissocie less de stockage et de calcul, leur permettant ainsi d'évoluer indépendamment en fonction de la demande. Contrairement aux entrepôts de données cloud traditionnels ouaux systèmes de traitement massivement parallèle (MPP) sur site, cette séparation offre une flexibilité, une rentabilité et une haute disponibilité sans que les utilisateurs aient à gérer l'infrastructure. Le moteur de calcul de BigQuery est optimisé par Dremel, un cluster multi-locataires qui exécute efficacement les requêtes SQL, tandis que les données sont stockées dans Colossus, le système de stockage distribué mondial de Google. Ces composants communiquent via Jupiter, le réseau à l'échelle du pétaoctet de Google, garantissant un transfert de données ultra-rapide. L'ensemble du système est orchestré par Borg, le système interne de gestion de clusters de Google et précurseur de Kubernetes. Cette architecture permet aux utilisateurs d'exécuterdes analyses hautement performantes et évolutives sur des ensembles de données volumineuxà l'aide d' , sans se soucier de la gestion de l'infrastructure.

Architecture Big Query. Image fournie par Google.
Comment BigQuery sépare-t-il le stockage et le calcul, et quels sont les avantages de cette approche ?
Pourquoi cette question est-elle posée ? Cette question évalue votre compréhension de l'architecture de BigQuery, en particulier de son modèle de stockage et de calcul découplé améliore l'évolutivité, la rentabilité et les performances.
BigQuery suit une architecture sans serveur et entièrement gérée, dans laquelle le stockage et le calcul sont complètement séparés :
- Stockage : Les données sont stockées dans Colossus, le système de stockage distribué mondial de Google. Cela garantit une haute disponibilité, une durabilité et une évolutivité quasi infinie sans que les utilisateurs aient à gérer l'infrastructure.
- Calculer : L'exécution des requêtes est gérée par Dremel, un moteur de requêtes distribué qui alloue dynamiquement les ressources informatiques (slots) en fonction de la charge de travail.
Principaux avantages de la séparation entre stockage et calcul :
- Mise à l'échelle indépendante : Vous pouvez faire évoluer le stockage sans affecter la puissance de calcul et inversement.
- Rentabilité : Vous ne payez que pour les données analysées lors des requêtes, ce qui vous évite des coûts informatiques inutiles.
- Performances optimisées : Les requêtes s'exécutent plus rapidement, car le stockage ne constitue plus un goulot d'étranglement pour le calcul.
- Stockage multirégional : Les données peuvent être stockées à différents emplacements sans affecter la vitesse des requêtes.
Cette conception permet à BigQuery de traiter efficacement des requêtes à l'échelle du pétaoctet tout en maintenant des coûts réduits, ce qui en fait un choix idéal pour l'analyse basée sur le cloud.
Qu'est-ce que Dremel et comment permet-il à BigQuery d'offrir des performances de requête rapides ?
Pourquoi cette question est-elle posée ? Évaluer vos connaissances sur Dremel, le moteur de requête sous-jacent de BigQuery, et sur la manière dont son modèle d'exécution en colonnes basé sur une arborescence permet une analyse de données hautement performante.
Dremel est un moteur d'exécution de requêtes distribuées qui alimente BigQuery. Contrairement aux bases de données traditionnelles qui utilisent un traitement basé sur les lignes, Dremel utilise un format de stockage en colonnes et un modèle d'exécution de requêtes basé sur une arborescence afin d'optimiser la vitesse et l'efficacité.
Comment Dremel permet des requêtes rapides :
- Stockage en colonnes : Au lieu de lire des lignes entières, Dremel ne scanne que les colonnes nécessaires, ce qui réduit la quantité de données traitées.
- Exécution basée sur un arbre : Les requêtes sont divisées en fragments et exécutées en parallèle sur des milliers de nœuds. Les résultats sont regroupés dans une structure arborescente hiérarchique, ce qui minimise la latence.
- Allocation des ressources sans serveur : Dremel attribue de manière dynamique des slots de calcul aux requêtes en fonction de leur complexité, garantissant ainsi une utilisation efficace des ressources.
Principaux avantages de Dremel :
- Requêtes extrêmement rapides sur des ensembles de données de l'ordre du pétaoctet.
- Traitement économique grâce à la numérisation des colonnes pertinentes uniquement.
- Parallélisation automatique pour les charges de travail importantes sans réglage manuel.
Vous pouvez obtenir plus d'informations sur Dremel dans la documentation officielle de Google.
Comment la dénormalisation fonctionne-t-elle dans BigQuery et quand est-il recommandé de l'utiliser ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension des stratégies de modélisation des données et leur impact sur les performances des requêtes dans les bases de données analytiques.
La dénormalisation dans BigQuery introduit intentionnellement des redondances en fusionnant des tables et en dupliquant des données afin d'optimiser les performances des requêtes. Contrairement à la normalisation, qui minimise la redondance grâce à des tableaux plus petits et liés entre eux, la dénormalisation réduit le besoin de jointures complexes, ce qui accélère les temps de lecture. Cette approche est particulièrement utile dansle stockage de données d' s et l'analytique, où les opérations de lecture sont plus fréquentes que les opérations d'écriture. Cependant, la dénormalisation augmente les besoins en stockage, c'est pourquoi BigQuery recommande d'utiliserdes champs imbriqués et répétés afin de structurer efficacement les données dénormalisées tout en minimisant les coûts de stockage.

Comparaison de différentes stratégies de normalisation des données. Image by Google Cloud.
Questions spécifiques à SQL
Une fois que vous maîtrisez parfaitement l'architecture et les techniques d'optimisation de BigQuery, le prochain domaine essentiel sur lequel vous devez vous concentrer est la maîtrise du langage SQL. SQL est la base du travail avec BigQuery, et les recruteurs évalueront souvent votre capacité à rédiger, optimiser et dépanner des requêtes. Afin d'être mieux préparé, je vous encourage à vous inscrire aux cours SQL de DataCamp.
Comment procéder à une opération JOIN dans BigQuery ?
Pourquoi cette question est-elle posée ? Évaluer votre capacité à combiner des données provenant de plusieurs tableaux à l'aide d'opérations SQL JOIN.
BigQuery prend en charge divers types de JOIN pour combiner les données de plusieurs tableaux en fonction d'une colonne commune. Par exemple, pour récupérer les détails d'un produit ainsi que ses informations de vente, vous pouvez utiliser une jointure interne (INNER JOIN) entre la table SALES et la table PRODUCT sur Product_Id :
SELECT
s.Id AS Sales_Id,
p.Product,
p.Price,
s.Purchase_date
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id;
Pour plus de détails, tels que les dates de livraison, veuillez consulter le TABLEAU DE LIVRAISON :
SELECT
s.Id AS Sales_Id,
p.Product,
p.Price,
s.Purchase_date,
d.Deliver_date
FROM sales_table s
JOIN product_table p ON s.Product_Id = p.Id
JOIN delivery_table d ON s.Id = d.Sales_Id;
Veuillez rédiger une requête SQL pour sélectionner les 10 produits les plus chers.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à récupérer et à trier efficacement des données.
Pour identifier les 10 produits les plus chers, veuillez utiliser ORDER BY pour trier par prix décroissant et LIMIT pour limiter le résultat :
SELECT
Product,
Price
FROM product_table
ORDER BY Price DESC
LIMIT 10;
Veuillez rédiger une requête SQL pour calculer le nombre moyen de ventes par mois.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à effectuer des agrégations basées sur le temps.
Pour calculer le nombre moyen de ventes par mois, veuillez utiliser la fonction « EXTRACT » pour regrouper les ventes par mois et la fonction « COUNT » pour compter le nombre de ventes par mois :
SELECT
EXTRACT(MONTH FROM Purchase_date) AS Month,
COUNT(Id) AS Total_Sales,
AVG(COUNT(Id)) OVER () AS Average_Sales
FROM sales_table
GROUP BY Month;
Veuillez rédiger une requête SQL pour déterminer le nombre total de livraisons par produit.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à agréger des données à l'aide de GROUP BY et COUNT.
Pour compter les livraisons pour chaque produit :
SELECT
p.Product,
COUNT(d.Id) AS Total_Deliveries
FROM delivery_table d
JOIN product_table p
ON d.Product_Id = p.Id
GROUP BY p.Product;
Veuillez rédiger une requête SQL afin de déterminer le nombre total de livraisons pour chaque produit.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à filtrer des données temporelles.
Pour obtenir les registres des ventes des 30 derniers jours :
SELECT *
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY);
Veuillez rédiger une requête SQL pour compter le nombre de produits uniques vendus au cours de la semaine dernière.
Pourquoi cette question est-elle posée? Évaluer votre capacité à effectuer des comptages distincts sur des données temporelles.
Pour compter les produits distincts vendus au cours des 7 derniers jours :
SELECT COUNT(DISTINCT Product_Id) AS Unique_Products_Sold
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY);
Veuillez rédiger une requête SQL pour regrouper les données de vente par produit et calculer le chiffre d'affaires total pour chacun d'entre eux.
Pourquoi cette question est-elle posée ? Pour évaluer votre capacité à utiliser GROUP BY et à agréger les ventes.
Pour calculer le revenu total par produit :
SELECT
p.Product,
SUM(p.Price) AS Total_Revenue
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Veuillez rédiger une requête SQL pour calculer le pourcentage du chiffre d'affaires total généré par chaque produit.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à calculer des pourcentages à l'aide de SQL.
Pour déterminer le pourcentage des ventes totales par produit :
SELECT
p.Product,
SUM(p.Price) AS Product_Sales,
(SUM(p.Price) / (SELECT SUM(Price) FROM product_table)) * 100 AS Sales_Percentage
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Veuillez rédiger une requête SQL pour classer les produits en fonction du total des ventes.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à utiliser les fonctions de fenêtre pour le classement.
Pour classer les produits en fonction du total des ventes :
SELECT
p.Product,
SUM(p.Price) AS Total_Sales,
RANK() OVER (ORDER BY SUM(p.Price) DESC) AS Sales_Rank
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Veuillez rédiger une requête SQL afin de calculer le délai de livraison moyen pour chaque produit.
Pourquoi cette question est-elle posée ? Évaluer votre capacité à gérer les différences de date dans SQL.
Pour calculer le délai de livraison moyen par produit :
SELECT
p.Product,
AVG(DATE_DIFF(d.Deliver_date, s.Purchase_date, DAY)) AS Avg_Delivery_Time
FROM sales_table s
JOIN delivery_table d
ON s.Id = d.Sales_Id
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Questions avancées et basées sur des scénarios
Au-delà des connaissances fondamentales et de la maîtrise du langage SQL, il est essentiel de posséder des compétences en résolution de problèmes concrets pour travailler avec BigQuery à grande échelle.
Les questions d'entretien avancées portent souvent sur le traitement de grands ensembles de données, l'optimisation des performances, la gestion des pipelines de données et la résolution des problèmes courants dans les environnements de production.
Pourriez-vous décrire votre expérience en matière de mise en œuvre de pipelines de données dans BigQuery ?
Pourquoi cette question est-elle posée ? Évaluer vos connaissances pratiques en matière de création, de gestion et d'optimisation de pipelines de données dans BigQuery, y compris l'ingestion, la transformation, l'orchestration et la surveillance.
Le recruteur souhaite obtenir des informations sur votre expérience pratique en matière de conception et de mise en œuvre de pipelines de données dans BigQuery. Veuillez discuter des points suivants :
- s relatives à l'ingestion des données: Méthodes utilisées (, BigQuery Data Transfer Service, Cloud Storage, ingestion en continu).
- s de transformation des données: Utilisation d', de transformations basées sur SQL, derequêtes planifiées ou d'outils tels que Dataflow et dbt.
- Orchestration: Comment gérer les workflows de pipeline à l'aide d'Cloud Composer (Apache Airflow), Cloud Functions ou Cloud Scheduler.
- s de surveillance et d'optimisation: Comment suivreles performances de votre pipeline d' , résoudre les problèmes et optimiser les coûts des requêtes.
Une réponse efficace devrait inclure des exemples concrets des défis auxquels vous avez été confronté et de la manière dont vous les avez relevés, par exemple la gestion de grands ensembles de données, l'optimisation des performances des requêtes ou la garantie de l'intégrité des données dans les pipelines de production.
Voici quelques ressources utiles pour mettre en œuvre un tel projet :
- Le guide YouTube suivantconcerne les pipelines ETL par lots utilisant BigQuery.
- Le dépôt GitHub du pipeline de bout en bout suivant.
- Le pipeline ETL suivant avec Airflow et BigQuery GitHub repo.
Comment supprimer les enregistrements en double d'une colonne dans une grande table BigQuery tout en conservant le nom de la table ?
Pourquoi cette question est-elle posée ? Évaluer votre capacité à gérer efficacement les données en double dans BigQuery sans modifier la structure du tableau.
Lorsqu'il s'agit d'un tableau contenant des millions de lignes et des valeurs en double dans une colonne spécifique, la meilleure approche consiste à utiliser la fonction de fenêtre « ROW_NUMBER() » pour identifier et conserver uniquement la première occurrence de chaque doublon tout en supprimant les autres.
Vous pouvez y parvenir en écrasant la table avec une version dédupliquée à l'aide d'une instruction ` CREATE OR REPLACE TABLE ` :
CREATE OR REPLACE TABLE tableX AS
SELECT * EXCEPT(row_number)
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY troubleColumn ORDER BY someOtherColumn) AS row_number
FROM tableX
)
WHERE row_number = 1;
Voici comment cela fonctionne :
-
ROW_NUMBER()attribue un numéro de ligne unique à chaque enregistrement au sein d'une même valeur d'troubleColumn, garantissant ainsi qu'un seul enregistrement par groupe de doublons est conservé. -
Le
PARTITION BYtroubleColumnregroupe les lignes en fonction des doublons dans cette colonne. -
Le
ORDER BYsomeOtherColumn(par exemple,Purchase_date) garantit la conservation d'un enregistrement spécifique. -
La requête externe filtre uniquement la première occurrence (
row_number = 1), supprimant ainsi efficacement les doublons. -
La
CREATE OR REPLACE TABLEinstruction garantit que la table conserve le même nom tout en la remplaçant par les données nettoyées.
Cette approche élimine efficacement les doublons sans créer de nouvelle table ni affecter la structure globale du tableau.
Comment utilisez-vous BigQuery pour la visualisation des données et la création de rapports, et quels sont les outils les plus couramment utilisés à cette fin ?
Pourquoi cette question est-elle posée ? Évaluer votre capacité à intégrer BigQuery à des outils de visualisation et à communiquer efficacement des informations grâce à des rapports.
BigQuery constitue un backend puissant pour la visualisation des données et la création de rapports, permettant des connexions directes avec des outils tels que Google Looker Studio (anciennement Data Studio), Tableau et Power BI.
Ces outils permettent aux utilisateurs d'interroger les données en temps réel et de créer des tableaux de bord, des graphiques et des rapports personnalisés sans avoir à exporter manuellement les données. Les principales techniques de visualisation comprennent :
- Agrégation et transformation des données dans BigQuery à l'aide de SQL avant la visualisation.
- Création de tableaux de bord interactifs avec des filtres dynamiques et des capacités d'exploration.
- Optimisation des requêtes et des vues matérialisées afin d'améliorer les performances du tableau de bord.
Une réponse forte devrait mettre en évidence des cas d'utilisation concrets, tels que :
- Cursus des indicateurs clés de performance (KPI) de l'entreprise
- Suivi des tendances
- Génération de rapports automatisés
Pour mettre en œuvre votre propre projet de visualisation de données, vous pouvez suivre les projets spécialisés de DataCamp sur l'analyse des habitudes de recharge des véhicules électriques et l'exploration du réseau de transport londonien avec BigQuery.
Questions sur les meilleures pratiques et l'optimisation de BigQuery
Pour travailler efficacement avec BigQuery, il ne suffit pas de rédiger des requêtes SQL. Il est également nécessaire d'optimiser les performances, de gérer les coûts et de mettre en œuvre les meilleures pratiques afin de garantir le bon déroulement des opérations liées aux données. Étant donné que BigQuery fonctionne selon un modèle de paiement à l'utilisation, il est essentiel de comprendre comment minimiser les analyses de données, tirer parti du partitionnement et du clustering, et optimiser l'exécution des requêtes, tant pour les performances que pour la rentabilité.
Quelles sont les meilleures pratiques pour gérer efficacement les coûts liés à BigQuery ?
Pourquoi cette question est-elle posée ? Évaluer votre capacité à optimiser la rentabilité tout en travaillant avec de grands ensembles de données dans BigQuery.
Pour gérer efficacement les coûts liés à BigQuery, il est recommandé de :
-
Optimisez les requêtes afin de n'analyser que les colonnes et les lignes nécessaires, en évitant
SELECT *. -
Utilisez des tableaux partitionnés et en cluster afin de minimiser l'analyse des données et d'améliorer les performances des requêtes.
-
Utilisez des outils de suivi des coûts tels que les budgets, les alertes et les politiques de contrôle des coûts dans Google Cloud.
-
Profitez des réservations de créneaux horaires pour bénéficier de tarifs plus prévisibles et réaliser des économies.
-
Veuillez régulièrement supprimer les tableaux et partitions inutilisées afin d'optimiser les coûts de stockage.
Une stratégie de gestion des coûts bien structurée permet de contrôler les dépenses tout en maintenant une exécution efficace des requêtes.
Quelles sont les meilleures pratiques pour optimiser les performances des requêtes dans BigQuery ?
Pourquoi cette question est-elle posée ? Évaluer votre capacité à rédiger des requêtes efficaces qui réduisent le temps d'exécution et les coûts.
Pour optimiser les performances des requêtes dans BigQuery :
-
Concevez un schéma efficace, en sélectionnant les types de données appropriés et en évitant une normalisation excessive.
-
Utilisez le partitionnement et le clustering pour réduire la quantité de données analysées.
-
Veuillez éviter
SELECT *et ne récupérez que les colonnes nécessaires. -
Optimisez les opérations JOIN et GROUP BY, en veillant à ce qu'elles respectent les meilleures pratiques pour les requêtes à grande échelle.
-
Utilisez la mise en cache et les vues matérialisées pour stocker les résultats précalculés et améliorer les performances.
-
Veuillez utiliser des fonctions d'agrégation approximatives, telles que
APPROX_COUNT_DISTINCT, lorsque la précision exacte n'est pas requise.
En suivant ces pratiques, vous pouvez accélérer les requêtes, réduire les coûts informatiques et améliorer l'efficacité globale.
Que sont les slots BigQuery et quel est leur impact sur les performances des requêtes ?
Pourquoi cette question est-elle posée ? Évaluer votre compréhension des ressources informatiques de BigQuery et leur impact sur l'exécution des requêtes.
Les slotsBigQuery sont des unités de capacité de calcul utilisées pour traiter les requêtes SQL. Ils sont alloués de manière dynamique en fonction des exigences de la charge de travail, ce qui garantit une utilisation efficace des ressources. Les organisations peuvent choisir entre :
- Places disponibles à la demande, qui s'adaptent automatiquement en fonction des besoins des requêtes.
- Emplacements réservés, qui offrent des performances plus prévisibles et des économies de coûts pour des charges de travail constantes.
Une gestion efficace des créneaux horaires peut réduire le temps d'exécution des requêtes, optimiser l'allocation des ressources et diminuer les coûts globaux.
Comment pouvez-vous surveiller et optimiser efficacement les coûts liés à BigQuery ?
Pourquoi cette question est-elle posée ? Pour évaluer votre capacité à suivre et à contrôler les dépenses liées à BigQuery.
Pour surveiller et optimiser les coûts dans BigQuery :
- Analysez l'exécution des requêtes à l'aide de l'historique des requêtes et des plans EXPLAIN afin d'identifier les opérations coûteuses.
- Activez les journaux d'audit pour suivre les modèles d'utilisation et détecter les requêtes inefficaces.
- Configurez des budgets et des alertes de coûts afin d'éviter les dépenses imprévues.
- Optimisez l'utilisation des emplacementsen tirant parti des emplacements réservés pour les charges de travail régulières afin de réduire les coûts.
- Veuillez nettoyer régulièrement les tableaux et les cloisons inutilisées afin d'éviter des frais de stockage inutiles.
En mettant en œuvre ces stratégies, vous pouvez garantir un traitement des données rentable tout en conservant les performances et l'évolutivité.
Conseils supplémentaires pour réussir votre entretien BigQuery
Voici quelques conseils pour réussir votre prochain entretien sur BigQuery.
Maîtrisez les principes fondamentaux. Découvrez l'architecture de BigQuery, notamment sa conception sans serveur, la séparation entre stockage et calcul, et le moteur de requête Dremel grâce à notrecours d'introduction à BigQuery. Apprenez à utiliser les ensembles de données, les tableaux, les vues et les vues matérialisées pour gérer et structurer efficacement les données. Notretutoriel sur les vues matérialisées SQL vous sera utile.
Renforcez vos compétences en SQL et en optimisation des requêtes. Exercez-vous à utiliser les fonctions SQL spécifiques à BigQuery (ARRAY, STRUCT, fonctions de fenêtre) pour les requêtes complexes grâce à notre guide de démarrage avec BigQuery. Optimisez les requêtes à l'aide du partitionnement, du clustering et des fonctions approximatives afin de réduire les coûts et d'améliorer les performances, conformément à la documentation officielle de Google.
Acquérez une expérience pratique. Travaillez sur des projets concrets à l'aide de jeux de données publics et créez des rapports avec Looker Studio, Tableau ou Power BI grâce aux projets DataCamp. Essayer nos exercices « Analyse des habitudes de recharge des véhicules électriques » et « Exploration du réseau de transport londonien » sont deux excellents moyens d'améliorer vos compétences en SQL.
Josep est data scientist et chef de projet à l'Office du tourisme de Catalogne, où il utilise les données pour améliorer l'expérience des touristes en Catalogne. Son expertise comprend la gestion du stockage et du traitement des données, associée à des analyses avancées et à la communication efficace des données.
Il est également un éducateur dévoué, enseignant le programme de Master Big Data à l'Université de Navarre, et contribuant régulièrement à des articles perspicaces sur la science des données sur Medium et KDNuggets.
Il est titulaire d'une licence en ingénierie physique de l'université polytechnique de Catalogne et d'une maîtrise en systèmes interactifs intelligents de l'université Pompeu Fabra.
Actuellement, il s'engage avec passion à rendre les technologies liées aux données plus accessibles à un public plus large par le biais de la publication ForCode'Sake sur Medium.
Questions fréquentes
Qu'est-ce que BigQuery et en quoi diffère-t-il des bases de données traditionnelles ?
BigQuery est un entrepôt de données entièrement géré et sans serveur sur Google Cloud, conçu pour l'analyse de données à grande échelle. Contrairement aux bases de données relationnelles traditionnelles sur site, qui sont généralement basées sur des lignes et limitées par les contraintes matérielles, BigQuery est un système de stockage en colonnes natif du cloud qui offre une évolutivité quasi infinie. Son architecture distribuée et son modèle de tarification à l'utilisation le rendent plus efficace pour traiter les charges de travail analytiques que les bases de données traditionnelles.
Quels sont les principaux avantages de l'utilisation de BigQuery ?
BigQuery présente cinq avantages principaux : (1) Évolutivité : adaptation automatique des ressources à la hausse ou à la baisse, (2) Flexibilité : infrastructure s'adaptant aux besoins de l'entreprise, (3) Sécurité élevée : cryptage et contrôle d'accès intégrés, (4) Rentabilité : tarification à l'utilisation, et (5) Partage de données et collaboration : solutions basées sur le cloud permettant un accès transparent entre les équipes.
Qu'est-ce que le partitionnement dans BigQuery et comment améliore-t-il les performances ?
Le partitionnement dans BigQuery divise les grands tableaux en éléments plus petits et plus faciles à gérer en fonction de critères tels que la date, l'heure d'ingestion ou les valeurs numériques. Cela améliore les performances des requêtes en analysant uniquement les partitions pertinentes au lieu de la table entière, ce qui réduit les coûts et le temps d'exécution des requêtes. Il est particulièrement avantageux pour l'analyse de séries chronologiques et les grands ensembles de données.
Quelle est la différence entre une table et une vue dans BigQuery ?
Un tableau stocke physiquement des données, tandis qu'une vue est un tableau virtuel qui récupère dynamiquement des données en fonction d'une requête SQL prédéfinie. Les vues permettent de simplifier les requêtes complexes, d'appliquer des contrôles d'accès aux données et d'améliorer les temps d'exécution des requêtes sans dupliquer les données.
Comment BigQuery assure-t-il la sécurité des données ?
BigQuery utilise plusieurs niveaux de sécurité : (1) Chiffrement des données au repos et en transit, (2) Gestion des identités et des accès (IAM) pour un contrôle d'accès granulaire, (3) Journalisation d'audit pour surveiller l'utilisation et la conformité, et (4) Clés de chiffrement gérées par le client pour un contrôle de sécurité renforcé.
