Cursus
Datawarehousingtechnologie is de laatste tijd geconsolideerd om schaalbaarder en goedkoper te worden door de opkomst van clouddiensten. Een van de meest gebruikte oplossingen is het datawarehouse BigQuery van Google Cloud Platform.
De Stack Overflow-enquête van 2024 bevestigt de toenemende populariteit: het heeft een adoptiepercentage van 24,1% bereikt onder cloudgebruikers wereldwijd. De vraag naar BigQuery-expertise is in verschillende sectoren sterk toegenomen, waardoor inzicht in de basisbeginselen voor dataprofessionals een professionele noodzaak is geworden.
In dit artikel vind je een overzicht van BigQuery-vragen die vaak tijdens sollicitatiegesprekken worden gesteld, zodat je je goed kunt voorbereiden. Als je net begint met BigQuery, raad ik aan om eerst deze gids over Data Warehousing op GCP te bekijken.
Basisvragen over BigQuery tijdens sollicitaties
De basis van BigQuery kennen voordat je complexe onderwerpen aansnijdt, is essentieel. Deze vragen toetsen je begrip van de kernconcepten, architectuur en functionaliteit. Als je de volgende vragen niet kunt beantwoorden, begin dan bij het begin met de Beginner’s Guide to BigQuery en schrijf je in voor onze inleidende BigQuery-cursus.
Wat is BigQuery en hoe verschilt het van traditionele databases?
Waarom dit wordt gevraagd: Om je inzicht te toetsen in moderne datawarehouses en hun voordelen ten opzichte van traditionele databases.
BigQuery is een volledig beheerd, serverless datawarehouse op Google Cloud, ontworpen voor grootschalige data-analyse. Het maakt razendsnelle SQL-queries mogelijk op enorme datasets zonder dat je infrastructuur hoeft te beheren, zodat je je kunt richten op inzichten in plaats van onderhoud.
In tegenstelling tot traditionele on-premises relationele databases, die doorgaans rij-gebaseerd zijn en beperkt worden door hardware, is BigQuery een cloud-native, kolomgebaseerd opslagsysteem dat vrijwel oneindige schaalbaarheid biedt. Dankzij de gedistribueerde architectuur en het pay-as-you-go-prijsmodel is het efficiënter voor analytische workloads dan conventionele databases.
Wat is een dataset in BigQuery?
Waarom dit wordt gevraagd: Om je kennis van de dataorganisatie en de structuur van BigQuery te toetsen.
Een dataset in BigQuery is de bovenste container die tabellen, views en andere resources organiseert. Dit vormt de basis voor toegangsbeheer en het lokaliseren van data. Door data efficiënt te structureren zorgen datasets voor betere queryprestaties en toegangsbeheer, waardoor ze een fundamenteel onderdeel zijn van de BigQuery-architectuur.
Hoe laad je data in BigQuery?
Waarom dit wordt gevraagd: Om je kennis te toetsen van verschillende methoden voor data-inname.
BigQuery biedt verschillende methoden voor data-inname, elk met een eigen doel.
- Batchload-modus wordt doorgaans gebruikt om een grote historische dataset naar BigQuery te uploaden via de BigQuery-webinterface, de bq-commandlinetool of API-calls.
- Streaming-ingestie maakt realtime dataverwerking mogelijk door individuele records of kleine batches te pushen via de BigQuery Streaming API.
- De BigQuery Data Transfer Service kan geplande data-import vereenvoudigen vanuit Google Cloud Storage, Google Ads en SaaS-bronnen.
Voor geavanceerde ETL-workflows zorgen Google Cloud Dataflow en andere pijplinetools voor een naadloze dataverplaatsing naar BigQuery. De best passende ingestiemethode hangt af van datavolume, latentie en verwerkingsbehoeften.
Welke datatypes ondersteunt BigQuery?
Waarom dit wordt gevraagd: Om je kennis te toetsen van BigQuery’s mogelijkheden voor dataverwerking.
BigQuery ondersteunt een reeks datatypes, ingedeeld in:
- Basistypen: BOOL, INT64, FLOAT64, STRING, BYTES, DATE, DATETIME, TIME, TIMESTAMP
- Complexe typen: ARRAY, STRUCT, JSON
- Gespecialiseerde typen: NUMERIC, BIGNUMERIC, INTERVAL, GEOGRAPHY, RANGE
Elk datatype heeft een gedefinieerde logische opslaggrootte, wat invloed heeft op queryprestaties en kosten. Zo is de opslag van STRING afhankelijk van de UTF-8-gecodeerde lengte, terwijl ARRAY<INT64> 8 bytes per element vereist. Inzicht in deze typen helpt bij het optimaliseren van queries en het efficiënt beheren van kosten.
Alle ondersteunde datatypes kun je in de volgende tabel bekijken.

BigQuery-datatypes. Afbeelding uit Google Cloud-documentatie.
Wat zijn de belangrijkste voordelen van BigQuery?
Waarom dit wordt gevraagd: Om zeker te weten dat je de voornaamste pluspunten van BigQuery als datawarehouse begrijpt.
Het gebruik van BigQuery biedt vijf grote voordelen ten opzichte van traditionele, zelfbeheerde oplossingen:
- Schaalbaarheid: Investeringen in hardware worden initieel uitgesteld. Je kunt resources eenvoudig op- of afschalen afhankelijk van de businessbehoefte.
- Flexibiliteit: Infrastructuur kan worden aangepast aan de behoeften van het bedrijf.
- Hoge beveiliging: Automatische back-ups en disaster recovery zijn standaardfuncties van cloudoplossingen zoals GCP.
- Kostenbesparend: Pay-as-you-go-opties zorgen ervoor dat klanten alleen betalen voor de diensten die ze gebruiken.
- Data delen en samenwerken: Het gebruik van cloudgebaseerde diensten stimuleert het delen van data en samenwerking.

Voordelen van BigQuery. Afbeelding door auteur.
Technische BigQuery-sollicitatievragen
Zodra je de basis van BigQuery beheerst, is het tijd om in te zoomen op meer technische aspecten die interviewers vaak beoordelen.
Deze vragen gaan verder dan definities en toetsen je vermogen om prestaties te optimaliseren, kosten te beheren en te werken met geavanceerde functies zoals partitionering, clustering en beveiliging.
Wat is partitionering in BigQuery en hoe verbetert het de prestaties?
Waarom dit wordt gevraagd: Om je kennis te toetsen van technieken voor dataorganisatie en hun impact op query-efficiëntie.
Partitionering in BigQuery is een methode om grote tabellen op te delen in kleinere, beheersbare stukken op basis van een criterium zoals datum, innametijd of gehele getalwaarden. Doordat data wordt opgesplitst in partities, kan BigQuery de hoeveelheid gescande data tijdens queries beperken, wat de prestaties verhoogt en kosten aanzienlijk verlaagt.
Een voorbeeld: een gepartitioneerde tabel met dagelijkse transactiegegevens maakt het mogelijk om efficiënt op specifieke datumbereiken te filteren in plaats van de hele dataset te scannen. Partitionering is daarom bijzonder nuttig voor tijdreeksanalyse en grootschalige analytische workloads.
Wat is clustering in BigQuery en hoe verbetert het de queryprestaties?
Waarom dit wordt gevraagd: Om je inzicht te toetsen in strategieën voor dataorganisatie die query-efficiëntie en kosten optimaliseren.
Clustering in BigQuery verwijst naar de organisatie van data binnen partities op basis van waarden uit een of meer opgegeven kolommen. Door gerelateerde rijen te groeperen via clustering reduceert BigQuery de hoeveelheid te scannen data, wat de queryprestaties verbetert en de verwerkingskosten verlaagt.
Deze manier van optimaliseren is vooral effectief bij het filteren, sorteren of aggregeren op geclustere kolommen, waar de query-engine irrelevante data kan overslaan in plaats van de volledige partitie te scannen. Clustering werkt het best in combinatie met partitionering en biedt nog meer prestatievoordelen bij grote datasets.
Wat is het verschil tussen een tabel en een view in BigQuery?
Waarom dit wordt gevraagd: Om je begrip van de datastructuren van BigQuery en hun use-cases te toetsen.
In BigQuery is een tabel een gestructureerde opslagunit die data fysiek bevat, terwijl een view een virtuele tabel is die dynamisch data ophaalt op basis van een vooraf gedefinieerde SQL-query. Het belangrijkste verschil is dat views zelf geen data bevatten, maar helpen bij het opbouwen van grote queries of bij het afdwingen van beveiligingsregels rond data-toegang door toegang te bieden tot een subset van data zonder deze te dupliceren. Views kunnen de uitvoeringstijd van queries ook verbeteren doordat je data opnieuw kunt benaderen zonder tabellen te herladen of te herorganiseren, wat ze krachtig maakt voor analytics, data-abstrahering en het afdwingen van security.
Kort samengevat:
- Een tabel is een gestructureerde opslagunit die data fysiek bevat
- Een view is een virtuele tabel die data dynamisch ophaalt op basis van een vooraf gedefinieerde SQL-query, zonder deze op te slaan
Hoe gaat BigQuery om met databeveiliging?
Waarom dit wordt gevraagd: Om je kennis te toetsen van BigQuery-beveiliging en de bescherming van gevoelige data.
BigQuery hanteert een gelaagde aanpak voor databeveiliging, gebaseerd op een beveiligingsmodel dat data op alle niveaus van de datalevenscyclus beschermt.
- Data is versleuteld in rust met door Google beheerde encryptiesleutels als standaard, of met door de klant beheerde sleutels als je daar zelf regie over wilt.
- Data is versleuteld tijdens transport via HTTPS/TLS en tijdens transport tussen clients en BigQuery.
- Identity and Access Management (IAM) biedt fijnmazige toegangscontrole via gebruikers- en service-accountrollen en -toewijzingen, zodat alleen geautoriseerde partijen data kunnen inzien of wijzigen.
- Auditlogging houdt gebruikers- en systeemactiviteit bij en biedt een audittrail voor monitoring en compliance.
Deze ingebouwde beveiligingsfuncties helpen organisaties de vertrouwelijkheid, integriteit en naleving te waarborgen.
Wat is de BigQuery Data Transfer Service en hoe vereenvoudigt deze data-inname?
Waarom dit wordt gevraagd: Om je inzicht te beoordelen in geautomatiseerde dataverplaatsing en integratie binnen BigQuery.
De BigQuery Data Transfer Service (BQ DTS) automatiseert en plant data-import uit diverse externe bronnen naar BigQuery, waardoor handmatige ETL-processen overbodig worden. Het integreert native met Google-diensten zoals Google Ads, YouTube en Google Cloud Storage, evenals externe SaaS-applicaties.
Door geautomatiseerde, geplande datatransfers mogelijk te maken, zorgt BQ DTS ervoor dat data up-to-date blijft voor analyse zonder tussenkomst van gebruikers. Deze service is vooral nuttig voor organisaties die terugkerende data-innameworkflows op schaal beheren, wat de efficiëntie verhoogt en de operationele overhead verlaagt.
Wat zijn geneste en herhaalde velden in BigQuery en waarom zijn ze nuttig?
Waarom dit wordt gevraagd: Om je begrip te toetsen van BigQuery’s ondersteuning voor semi-gestructureerde data en de voordelen ten opzichte van traditionele relationele modellen.
BigQuery ondersteunt geneste en herhaalde velden, wat efficiëntere opslag en query’s van hiërarchische of array-gebaseerde data mogelijk maakt. Geneste velden gebruiken het datatype STRUCT, waardoor een kolom subvelden kan bevatten, vergelijkbaar met een JSON-object.
Herhaalde velden functioneren als ARRAYS, zodat één kolom meerdere waarden kan opslaan. Deze structuren helpen complexe JOIN-bewerkingen te vermijden, verbeteren de queryprestaties en maken BigQuery zeer geschikt voor het verwerken van semi-gestructureerde data zoals logs, eventstreams en NoSQL-achtige datasets.
Hoe kun je jobs in BigQuery plannen en automatiseren?
Waarom dit wordt gevraagd: Om je kennis te toetsen van het automatiseren van query-uitvoering en workflowbeheer in BigQuery.
BigQuery biedt meerdere manieren om jobs te plannen en te automatiseren, zodat terugkerende taken zonder handmatige tussenkomst draaien.
- Geplande queries laten gebruikers terugkerende query-uitvoeringen definiëren via de BigQuery-webinterface of API.
- Cloud Scheduler biedt een volledig beheerde cron-achtige service die queries op vooraf ingestelde intervallen triggert.
- Voor eventgedreven automatisering kunnen Cloud Functions BigQuery-jobs uitvoeren als reactie op triggers van andere Google Cloud-services.
Deze automatiseringstools stroomlijnen datapijplijnen, verminderen handmatig werk en zorgen voor tijdige dataverwerking voor analytics en rapportage.
Hoe gaat Big Query om met datapartitionering en clustering?
Waarom dit wordt gevraagd: Om je inzicht te toetsen in strategieën voor dataorganisatie in BigQuery en hun impact op queryprestaties en kostenefficiëntie.
Partitionering splitst grote tabellen in kleinere segmenten, waardoor queryprestaties verbeteren doordat alleen relevante data wordt gescand.
-
Tijdbased: Op DATE, TIMESTAMP, DATETIME (bijv. dagelijkse sales_date-partities).
-
Bereik van gehele getallen: Op INTEGER-waarden (bijv.
user_id-bereiken). -
Innametijd: Op timestamp van dataload (
_PARTITIONDATE).
Het is het best voor tijdreeksdata en het verlagen van querykosten bij filtering op datum- of numerieke bereiken.
Clustering ordent data binnen een tabel of partitie door te sorteren op geselecteerde kolommen, wat queries versnelt.
Het is het best bij filteren en aggregeren op veelgevraagde velden zoals regio of user_id.

Voorbeelden van tabelclusters en -partities. Afbeelding door Google Cloud.
Vragen over BigQuery-architectuur
Hoe is de architectuur van Google BigQuery ontworpen en wat maakt die uniek?
Waarom dit wordt gevraagd: Om je begrip te beoordelen van BigQuery’s serverless architectuur en hoe die verschilt van traditionele datawarehouses.
BigQuery heeft een serverless, volledig beheerde architectuur die opslag en compute loskoppelt, zodat beide onafhankelijk kunnen schalen op basis van de vraag. In tegenstelling tot traditionele cloud-datawarehouses of on-premises massively parallel processing (MPP)-systemen biedt deze scheiding flexibiliteit, kostenefficiëntie en hoge beschikbaarheid zonder dat gebruikers infrastructuur hoeven te beheren. BigQuery’s reken-engine wordt aangedreven door Dremel, een multi-tenant cluster dat SQL-queries efficiënt uitvoert, terwijl data is opgeslagen in Colossus, Google’s wereldwijde gedistribueerde opslagsysteem. Deze componenten communiceren via Jupiter, Google’s netwerk op petabitschaal, wat ultrasnelle datatransfer garandeert. Het geheel wordt georkestreerd door Borg, Google’s interne clustermanagementsysteem en voorloper van Kubernetes. Dankzij deze architectuur kunnen gebruikers hoog-performante, schaalbare analyses uitvoeren op enorme datasets zonder zich zorgen te hoeven maken over infrastructuurbeheer.

Big Query-architectuur. Afbeelding door Google.
Hoe scheidt BigQuery opslag en compute, en waarom is dat voordelig?
Waarom dit wordt gevraagd: Deze vraag beoordeelt je begrip van de BigQuery-architectuur, specifiek hoe het losgekoppelde opslag- en computemodel de schaalbaarheid, kostenefficiëntie en prestaties verbetert.
BigQuery volgt een serverless, volledig beheerde architectuur waarin opslag en compute volledig gescheiden zijn:
- Opslag: Data wordt opgeslagen in Colossus, Google’s wereldwijde gedistribueerde opslagsysteem. Dit garandeert hoge beschikbaarheid, duurzaamheid en vrijwel oneindige schaalbaarheid zonder infrastructuurbeheer.
- Compute: Query-uitvoering wordt afgehandeld door Dremel, een gedistribueerde query-engine die rekenresources (slots) dynamisch toewijst op basis van de werkdruk.
Belangrijkste voordelen van het scheiden van opslag en compute:
- Onafhankelijk schalen: Je kunt opslag schalen zonder compute te beïnvloeden en andersom.
- Kostenefficiëntie: Je betaalt alleen voor de data die tijdens queries wordt gescand, waardoor onnodige compute-kosten worden vermeden.
- Geoptimaliseerde prestaties: Queries draaien sneller omdat opslag geen bottleneck vormt voor verwerking.
- Multi-regio-opslag: Data kan op verschillende locaties worden opgeslagen zonder de snelheid van queries te beïnvloeden.
Dankzij dit ontwerp kan BigQuery efficiënt queries op petabyteschaal verwerken tegen lage kosten, waardoor het een ideale keuze is voor cloudgebaseerde analytics.
Deze architecturale flexibiliteit is cruciaal nu de industrie de focus verlegt naar enorme rekenkracht. Zoals opgemerkt in de DataFramed-podcast over datatrends voor 2025:
Er is zeker een weddenschap die alle grote spelers maken. Ze bouwen meer compute, en dus zullen ze volgend jaar opschalen met meer compute. En dan is de vraag: oké, is er meer data? En daar wordt het genuanceerder. En ik denk dat het een spectrum is. Het is niet zwart-wit.
Jonathan Cornelissen, Co-founder & CEO of DataCamp
Wat is Dremel en hoe maakt het de snelle queryprestaties van BigQuery mogelijk?
Waarom dit wordt gevraagd: Om je kennis te beoordelen van Dremel, de onderliggende query-engine van BigQuery, en hoe het boomgebaseerde, kolomgeoriënteerde uitvoeringsmodel high-performance data-analyse mogelijk maakt.
Dremel is een gedistribueerde query-uitvoeringsengine die BigQuery aandrijft. In tegenstelling tot traditionele databases die rij-gebaseerde verwerking gebruiken, hanteert Dremel een kolomgebaseerd opslagformaat en een boomgebaseerd uitvoeringsmodel voor snelheid en efficiëntie.
Hoe Dremel snelle queries mogelijk maakt:
- Kolomgebaseerde opslag: In plaats van volledige rijen te lezen, scant Dremel alleen de benodigde kolommen, waardoor minder data wordt verwerkt.
- Boomgebaseerde uitvoering: Queries worden opgesplitst in fragmenten en parallel uitgevoerd op duizenden nodes. Resultaten worden hiërarchisch geaggregeerd, wat de latentie minimaliseert.
- Serverless resource-allocatie: Dremel wijst dynamisch compute-slots toe aan queries op basis van complexiteit, voor efficiënte inzet van resources.
Belangrijkste voordelen van Dremel:
- Bliksemsnelle queries op datasets op petabyteschaal.
- Kostenefficiënte verwerking door alleen relevante kolommen te scannen.
- Automatische parallelisatie voor grote workloads zonder handmatige tuning.
Meer over Dremel lees je in de officiële documentatie van Google.
Hoe werkt denormalisatie in BigQuery en wanneer moet je het gebruiken?
Waarom dit wordt gevraagd: Om je begrip te toetsen van datamodelleringsstrategieën en hun impact op queryprestaties in analytische databases.
Denormalisatie in BigQuery voegt bewust redundantie toe door tabellen samen te voegen en data te dupliceren om queryprestaties te optimaliseren. In tegenstelling tot normalisatie, dat redundantie minimaliseert via kleinere, gerelateerde tabellen, vermindert denormalisatie de noodzaak voor complexe joins, wat resulteert in snellere leestijden. Deze aanpak is vooral nuttig in datawarehousing en analytics, waar leesbewerkingen vaker voorkomen dan schrijfbewerkingen. Denormalisatie verhoogt echter de opslagbehoefte, daarom raadt BigQuery aan geneste en herhaalde velden te gebruiken om denormaliseerde data efficiënt te structureren met minimale opslagoverhead.

Vergelijking van verschillende normalisatiestrategieën. Afbeelding door Google Cloud.
SQL-specifieke vragen
Als je de architectuur en optimalisatietechnieken van BigQuery goed begrijpt, is de volgende cruciale stap SQL-vaardigheid. SQL is de ruggengraat van werken met BigQuery, en interviewers toetsen vaak je vermogen om queries te schrijven, te optimaliseren en te troubleshooten. Om je beter voor te bereiden, raad ik je aan je in te schrijven voor de SQL-cursussen van DataCamp.
Hoe voer je een JOIN-bewerking uit in BigQuery?
Waarom dit wordt gevraagd: Om je vermogen te toetsen om data uit meerdere tabellen te combineren met SQL JOIN’s.
BigQuery ondersteunt verschillende typen JOIN’s om data uit meerdere tabellen te combineren op basis van een gedeelde kolom. Om bijvoorbeeld productdetails samen met verkoopinformatie op te halen, kun je een INNER JOIN gebruiken tussen de SALES TABLE en de PRODUCT TABLE op 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;
Voor extra details, zoals leverdata, kun je de DELIVERY TABLE joinen:
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;
Schrijf een SQL-query om de 10 duurste producten te selecteren.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om data efficiënt op te halen en te sorteren.
Gebruik ORDER BY om te sorteren op prijs in aflopende volgorde en LIMIT om het resultaat te beperken:
SELECT
Product,
Price
FROM product_table
ORDER BY Price DESC
LIMIT 10;
Schrijf een SQL-query om het gemiddelde aantal verkopen per maand te berekenen.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om tijdgebaseerde aggregaties uit te voeren.
Gebruik de functie EXTRACT om verkopen per maand te groeperen en COUNT om het aantal verkopen per maand te tellen:
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;
Schrijf een SQL-query om het totale aantal leveringen per product te vinden.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om te aggregeren met GROUP BY en COUNT.
Om leveringen per product te tellen:
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;
Schrijf een SQL-query om het totale aantal leveringen voor elk product te vinden.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om tijdgebaseerde data te filteren.
Om verkooprecords van de laatste 30 dagen op te halen:
SELECT *
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY);
Schrijf een SQL-query om het aantal unieke producten te tellen dat in de afgelopen week is verkocht.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om distinct tellingen op tijdgebaseerde data uit te voeren.
Om het aantal unieke producten te tellen dat in de afgelopen 7 dagen is verkocht:
SELECT COUNT(DISTINCT Product_Id) AS Unique_Products_Sold
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY);
Schrijf een SQL-query om verkoopdata per product te groeperen en de totale omzet per product te berekenen.
Waarom dit wordt gevraagd: Om je vermogen te testen om GROUP BY te gebruiken en verkopen te aggregeren.
Om de totale omzet per product te berekenen:
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;
Schrijf een SQL-query om het percentage van de totale verkoop te berekenen dat door elk product wordt bijgedragen.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om percentages te berekenen met SQL.
Zo bepaal je het verkooppercentage per product:
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;
Schrijf een SQL-query om producten te ranken op basis van totale verkoop.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om vensterfuncties te gebruiken voor ranking.
Om producten te ranken op basis van totale verkoop:
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;
Schrijf een SQL-query om de gemiddelde levertijd per product te berekenen.
Waarom dit wordt gevraagd: Om je vermogen te toetsen om met datumverschillen te werken in SQL.
Zo bereken je de gemiddelde levertijd per product:
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;
Geavanceerde en scenariogebaseerde vragen
Naast basiskennis en SQL-vaardigheid zijn probleemoplossende skills in de praktijk cruciaal om op schaal met BigQuery te werken.
Geavanceerde sollicitatievragen richten zich vaak op het omgaan met grote datasets, prestatie-optimalisatie, beheer van datapijplijnen en het oplossen van veelvoorkomende uitdagingen in productieomgevingen.
Kun je je ervaring beschrijven met het implementeren van datapijplijnen in BigQuery?
Waarom dit wordt gevraagd: Om je praktische kennis te beoordelen van het bouwen, beheren en optimaliseren van datapijplijnen in BigQuery, inclusief inname, transformatie, orkestratie en monitoring.
De interviewer zoekt naar inzichten in je hands-on ervaring met het ontwerpen en implementeren van datapijplijnen in BigQuery. Je zou het volgende moeten bespreken:
- Data-inname: Gebruikte methoden (BigQuery Data Transfer Service, Cloud Storage, streaming-ingestie).
- Datatransformatie: Gebruik van SQL-gebaseerde transformaties, geplande queries of tools zoals Dataflow en dbt.
- Orkestratie: Hoe je pijplines aanstuurt met Cloud Composer (Apache Airflow), Cloud Functions of Cloud Scheduler.
- Monitoring en optimalisatie: Hoe je pijplijnprestaties volgt, problemen debugt en querykosten optimaliseert.
Een sterk antwoord bevat praktijkvoorbeelden van uitdagingen die je bent tegengekomen en hoe je die hebt aangepakt, zoals omgaan met grote datasets, queryprestaties optimaliseren of dataintegriteit borgen in productiepijplijnen.
Enkele goede resources om zo’n project te realiseren zijn:
- De volgende YouTube-gids over ETL-batchpijplijnen met BigQuery.
- De volgende end-to-end pijplijn-GitHub-repo.
- De volgende ETL-pijplijn met Airflow en BigQuery GitHub-repo.
Hoe kun je dubbele records uit een kolom in een grote BigQuery-tabel verwijderen terwijl de tabelnaam behouden blijft?
Waarom dit wordt gevraagd: Om je vermogen te toetsen om efficiënt met dubbele data om te gaan in BigQuery zonder de tabelstructuur te wijzigen.
Bij een tabel met miljoenen rijen en dubbele waarden in een specifieke kolom, kun je het best de vensterfunctie ROW_NUMBER() gebruiken om alleen het eerste voorkomen per duplicaat te behouden en de rest te verwijderen.
Dit kun je bereiken door de tabel te overschrijven met een gededupliceerde versie via 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;
Zo werkt het:
-
ROW_NUMBER()kent een uniek volgnummer toe aan elk record binnen dezelfde waarde vantroubleColumn, zodat slechts één record per duplicaatgroep behouden blijft. -
De
PARTITION BYtroubleColumngroepeert rijen op basis van duplicaten in die kolom. -
De
ORDER BYsomeOtherColumn(bijv.Purchase_date) bepaalt welk specifiek record behouden blijft. -
De buitenste query filtert alleen het eerste voorkomen (
row_number = 1) en verwijdert zo effectief de duplicaten. -
Met
CREATE OR REPLACE TABLEblijft de tabelnaam gelijk en wordt deze vervangen door de opgeschoonde data.
Deze aanpak verwijdert efficiënt duplicaten zonder een nieuwe tabel te maken of de tabelstructuur te wijzigen.
Hoe gebruik je BigQuery voor datavisualisatie en rapportage, en wat zijn de meest gebruikte tools?
Waarom dit wordt gevraagd: Om je vermogen te toetsen om BigQuery te integreren met visualisatietools en inzichten effectief te communiceren via rapportage.
BigQuery fungeert als krachtige backend voor datavisualisatie en rapportage en kan direct worden verbonden met tools zoals Google Looker Studio (voorheen Data Studio), Tableau en Power BI.
Met deze tools kunnen gebruikers realtime data bevragen en aangepaste dashboards, grafieken en rapporten maken zonder handmatige export. Belangrijke technieken voor visualisatie zijn:
- Data aggregeren en transformeren in BigQuery met SQL vóór de visualisatie.
- Interactieve dashboards bouwen met dynamische filters en doorklikmogelijkheden.
- Queries en materialized views optimaliseren om de prestaties van dashboards te verbeteren.
Een sterk antwoord benadrukt praktijkcases, zoals:
- KPI’s van het bedrijf volgen
- Trends monitoren
- Geautomatiseerde rapporten genereren
Om je eigen datavisualisatieproject te implementeren, kun je de gespecialiseerde projecten van DataCamp volgen over Analyzing Electric Vehicle Charging Habits en Exploring London's Travel Network met BigQuery.
Vragen over best practices en optimalisatie in BigQuery
Efficiënt werken met BigQuery gaat verder dan het schrijven van SQL-queries: het vereist prestatie-optimalisatie, kostenbeheer en de implementatie van best practices voor soepele data-operaties. Omdat BigQuery werkt met een pay-per-use-model, is het cruciaal om te begrijpen hoe je datascans minimaliseert, partitionering en clustering benut en query-uitvoering optimaliseert voor zowel prestaties als kosten.
Wat zijn best practices om BigQuery-kosten efficiënt te beheren?
Waarom dit wordt gevraagd: Om je vermogen te beoordelen om kosten te optimaliseren bij werken met grote datasets in BigQuery.
Om BigQuery-kosten effectief te beheren, moet je:
-
Queries optimaliseren om alleen noodzakelijke kolommen en rijen te scannen; vermijd
SELECT *. -
Gepartitioneerde en geclusterde tabellen gebruiken om datascans te minimaliseren en prestaties te verbeteren.
-
Kostenmonitoring inzetten zoals budgetten, alerts en kostenbeperkingsbeleid in Google Cloud.
-
Slots reserveren benutten voor voorspelbare prijzen en kostenbesparing.
-
Ongebruikte tabellen en partities regelmatig opschonen om opslagkosten te optimaliseren.
Een goed gestructureerde kostenstrategie helpt de uitgaven te beheersen en tegelijk de query-efficiëntie te behouden.
Wat zijn best practices om queryprestaties in BigQuery te optimaliseren?
Waarom dit wordt gevraagd: Om je vermogen te toetsen om efficiënte queries te schrijven die uitvoeringstijd en kosten verminderen.
Om queryprestaties in BigQuery te optimaliseren:
-
Ontwerp een efficiënte schema, kies passende datatypes en vermijd overmatige normalisatie.
-
Gebruik partitionering en clustering om de hoeveelheid gescande data te beperken.
-
Vermijd
SELECT *en haal alleen noodzakelijke kolommen op. -
Optimaliseer JOIN- en GROUP BY-bewerkingen volgens best practices voor grootschalige queries.
-
Maak gebruik van caching en materialized views om vooraf berekende resultaten op te slaan en prestaties te verbeteren.
-
Gebruik benaderende aggregatiefuncties, zoals
APPROX_COUNT_DISTINCT, als exacte precisie niet vereist is.
Door deze praktijken te volgen, versnel je queries, verlaag je compute-kosten en verhoog je de algehele efficiëntie.
Wat zijn BigQuery-slots en hoe beïnvloeden ze de queryprestaties?
Waarom dit wordt gevraagd: Om je begrip te toetsen van BigQuery’s rekenresources en hun effect op query-uitvoering.
BigQuery-slots zijn eenheden van rekencapaciteit die worden gebruikt om SQL-queries te verwerken. Ze worden dynamisch toegewezen op basis van de werkdruk, voor efficiënte inzet van resources. Organisaties kunnen kiezen tussen:
- On-demand slots, die automatisch schalen op basis van querybehoeften.
- Gereserveerde slots, die voorspelbaardere prestaties en kostenbesparing bieden voor consistente workloads.
Efficiënt slotbeheer kan de uitvoeringstijd van queries verminderen, resourcetoewijzing optimaliseren en de totale kosten verlagen.
Hoe kun je BigQuery-kosten effectief monitoren en optimaliseren?
Waarom dit wordt gevraagd: Om je vermogen te toetsen om BigQuery-uitgaven te volgen en te beheersen.
Om kosten in BigQuery te monitoren en te optimaliseren:
- Analyseren van query-uitvoering met querygeschiedenis en EXPLAIN-plannen om dure bewerkingen te identificeren.
- Auditlogs inschakelen om gebruikspatronen te volgen en inefficiënte queries te detecteren.
- Budgetten en kostalerts instellen om onverwachte uitgaven te voorkomen.
- Slotgebruik optimaliseren en gereserveerde slots benutten voor stabiele workloads om kosten te verlagen.
- Ongebruikte tabellen en partities regelmatig opschonen om onnodige opslagkosten te vermijden.
Door deze strategieën te implementeren, zorg je voor kostenefficiënte dataverwerking met behoud van prestaties en schaalbaarheid.
Extra tips om je BigQuery-sollicitatie te rocken
Hier zijn nog wat laatste tips om te schitteren in je komende BigQuery-sollicitatie.
Beheers de basis. Begrijp de architectuur van BigQuery, inclusief het serverless ontwerp, de scheiding van opslag en compute, en de Dremel-query-engine met onze inleidende BigQuery-cursus. Leer over datasets, tabellen, views en materialized views om data efficiënt te beheren en te structureren. Onze SQL-tutorial over materialized views helpt je op weg.
Scherp je SQL- en queryoptimalisatievaardigheden aan. Oefen BigQuery-specifieke SQL-functies (ARRAY’s, STRUCT’s, vensterfuncties) voor complexe queries met onze Getting Started with BigQuery code-along. Optimaliseer queries met partitionering, clustering en benaderende functies om kosten te verlagen en prestaties te verbeteren volgens de officiële documentatie van Google.
Doe praktijkervaring op. Werk aan real-world projecten met openbare datasets en bouw rapporten met Looker Studio, Tableau of Power BI met DataCamp-projecten. Onze projecten Analyzing Electric Vehicle Charging Habits en Exploring London's Travel Network zijn allebei geweldige manieren om je SQL-skills te verbeteren.
Josep is een freelance Data Scientist die zich richt op Europese projecten, met expertise in dataopslag, -verwerking, geavanceerde analyses en impactvolle data storytelling.
Als docent geeft hij Big Data in de masteropleiding aan de Universiteit van Navarra en deelt hij inzichten via artikelen op platforms als Medium, KDNuggets en DataCamp. Josep schrijft ook over Data en Tech in zijn nieuwsbrief Databites (databites.tech).
Hij heeft een bachelor in Engineering Physics van de Polytechnische Universiteit van Catalonië en een master in Intelligent Interactive Systems van de Pompeu Fabra-universiteit.
FAQs
Wat is BigQuery en hoe verschilt het van traditionele databases?
BigQuery is een volledig beheerd, serverless datawarehouse op Google Cloud, ontworpen voor grootschalige data-analyse. In tegenstelling tot traditionele on-premises relationele databases, die doorgaans rij-gebaseerd zijn en beperkt worden door hardware, is BigQuery een cloud-native, kolomgebaseerd opslagsysteem met vrijwel oneindige schaalbaarheid. Dankzij de gedistribueerde architectuur en het pay-as-you-go-prijsmodel is het efficiënter voor analytische workloads dan conventionele databases.
Wat zijn de belangrijkste voordelen van BigQuery?
BigQuery biedt vijf kernvoordelen: (1) Schaalbaarheid – resources schalen automatisch op of af, (2) Flexibiliteit – infrastructuur past zich aan aan businessbehoeften, (3) Hoge beveiliging – ingebouwde versleuteling en toegangscontrole, (4) Kosteneffectiviteit – pay-as-you-go-prijzen, en (5) Data delen en samenwerken – cloudoplossingen maken naadloze teamtoegang mogelijk.
Wat is partitionering in BigQuery en hoe verbetert het de prestaties?
Partitionering in BigQuery verdeelt grote tabellen in kleinere, beheersbare stukken op basis van criteria zoals datum, innametijd of numerieke waarden. Dit verbetert de queryprestaties door alleen relevante partities te scannen in plaats van de hele tabel, waardoor kosten en uitvoeringstijd dalen. Het is vooral nuttig voor tijdreeksanalyse en grote datasets.
Wat is het verschil tussen een tabel en een view in BigQuery?
Een tabel slaat data fysiek op, terwijl een view een virtuele tabel is die data dynamisch ophaalt op basis van een vooraf gedefinieerde SQL-query. Views helpen complexe queries te vereenvoudigen, data-toegangscontroles af te dwingen en uitvoeringstijden te verbeteren zonder data te dupliceren.
Hoe gaat BigQuery om met databeveiliging?
BigQuery hanteert meerdere beveiligingslagen: (1) Dataversleuteling in rust en tijdens transport, (2) Identity and Access Management (IAM) voor fijnmazige toegangscontrole, (3) Auditlogging om gebruik en compliance te monitoren, en (4) Door de klant beheerde encryptiesleutels voor extra controle.

