# BigQuery uitgelegd: SQL op grote datasets [[TOC]] ## Wat is BigQuery? BigQuery is een cloudgebaseerd data warehouse van Google Cloud. Het is ontworpen voor analytische queries op grote hoeveelheden data, niet voor transactionele bewerkingen zoals een MySQL- of PostgreSQL-database. De kerneigenschappen van BigQuery: - **Serverless**: je beheert geen servers, geen indexen, geen query-optimalisatie. - **Columnair**: data wordt kolom voor kolom opgeslagen in plaats van rij voor rij, wat aggregatie-queries extreem snel maakt. - **Massaal parallel**: een enkele query kan duizenden CPU-cores tegelijk gebruiken. - **Automatisch schaalbaar**: of je nu een rij of een biljoen rijen hebt, de query-tijd is vergelijkbaar. - **Standaard SQL**: je schrijft ANSI-compatibele SQL (GoogleSQL). :::info title="BigQuery is geen transactiedatabase" BigQuery is niet bedoeld voor transactionele bewerkingen op individuele rijen. Gebruik het voor analytische queries op grote, relatief statische datasets. Voor OLTP (online transaction processing) gebruik je Cloud SQL of Spanner. ::: ## BigQuery vs. traditionele databases | Aspect | MySQL/PostgreSQL | BigQuery | |---|---|---| | Doel | Transacties (OLTP) | Analyse (OLAP) | | Schaal | Miljoenen rijen | Miljarden tot biljoenen rijen | | Query-tijd | Milliseconden voor kleine queries | Seconden voor grote scans | | Opslag | Rij-gebaseerd | Kolom-gebaseerd | | Beheer | Servers, indexen, vacuuming | Volledig beheerd | | Kosten | Vaste serverkosten | Betalen per verwerkte data | | SQL-dialect | Sterk gestandaardiseerd | GoogleSQL met extensies | ## De BigQuery-structuur begrijpen BigQuery organiseert data in drie niveaus: **Project**: het hoogste niveau, gekoppeld aan een Google Cloud-project en factureringsaccount. Alle resources vallen onder een project. **Dataset**: een verzameling tabellen, vergelijkbaar met een database in MySQL. Een dataset heeft een regio (bijvoorbeeld `europe-west4` voor Nederland en de EU) en eigen toegangsbeheer. **Tabel**: de eigenlijke data, met een schema (kolomnamen en typen). Tabellen in BigQuery worden vooral aangevuld (APPEND): je voegt rijen toe en wijzigt ze zelden. ## Prijsmodel BigQuery heeft bij het on-demand-model twee kostencomponenten. Bedragen zijn richtprijzen (regio VS, multiregio) en kunnen per regio verschillen. **Opslag**: ongeveer 0,02 dollar per GB per maand voor actieve data. Data die 90 dagen niet is gewijzigd, gaat automatisch over naar langetermijnopslag tegen ongeveer 0,01 dollar per GB per maand. **Queries**: ongeveer 6,25 dollar per TiB verwerkte data. De eerste TiB per maand is gratis. De kosten worden bepaald door de hoeveelheid data die de query scant, niet door het aantal rijen in het resultaat. :::warning title="SELECT * kan duur uitpakken" De querykosten worden bepaald door de kolommen die je scant, niet door de WHERE-clausule. Als je `SELECT *` schrijft op een tabel van 1 TiB, betaal je voor 1 TiB, ook al geeft de WHERE slechts 100 rijen terug. Selecteer altijd alleen de kolommen die je echt nodig hebt. ::: :::tip title="Werk met een capaciteitsmodel bij grote volumes" Naast on-demand kun je kiezen voor BigQuery-edities (Standard, Enterprise, Enterprise Plus) met gereserveerde of autoscaling-slots. Voor voorspelbare, hoge query-volumes is een capaciteitsabonnement vaak goedkoper dan betalen per TiB. Begin met on-demand en stap over zodra je verbruik stabiel en hoog wordt. ::: ## BigQuery openen in Google Cloud Bij nieuwe Google Cloud-projecten is de BigQuery API standaard al ingeschakeld. Je hoeft hem dan niet apart te activeren. :::howto title="BigQuery openen in de console" 1. Ga naar `console.cloud.google.com` en log in met je Google-account. 2. Selecteer een bestaand project of maak een nieuw project aan. 3. Open het navigatiemenu (hamburger-icoon) en kies onder Analytics voor **BigQuery**. 4. Is de API in een ouder project nog niet actief? Activeer hem dan via **API's en services** en zoek op "BigQuery". 5. Je komt in **BigQuery Studio** met links de Explorer, in het midden de query-editor en onderin het resultatenpaneel. ::: ## Je eerste dataset en tabel aanmaken Je kunt data laden vanuit verschillende bronnen: - **CSV/JSON-upload**: sleep een bestand naar BigQuery of upload via de console. - **Google Sheets**: koppel een Sheet als externe tabel. - **Cloud Storage**: laad bestanden vanuit GCS-buckets. - **Data Transfer Service**: automatische imports van bijvoorbeeld Google Ads, Analytics en YouTube. - **Streaming**: real-time data via de BigQuery Storage Write API. - **Dataflow**: grote ETL-pipelines. Een eenvoudig startvoorbeeld: maak een dataset `analytics` aan in regio `europe-west4`, upload een CSV met verkoopdata naar een tabel `verkopen`, en draai daarna een eerste query. ```sql SELECT product, SUM(bedrag) AS omzet FROM `mijn-project.analytics.verkopen` WHERE datum >= '2026-01-01' GROUP BY product ORDER BY omzet DESC LIMIT 10; ``` ## BigQuery in de praktijk: use-cases **Analyse van logdata**: servers en applicaties genereren enorme hoeveelheden logs. BigQuery verwerkt deze in seconden voor vragen als "geef me alle 500-fouten van de afgelopen week per endpoint". **Marketing-analyse**: Google Analytics 4, Google Ads en Search Console exporteren naar BigQuery voor drempelvrije, gecombineerde analyse. **Financiƫle rapportages**: miljoenen transacties per dag aggregeren tot dagelijkse of maandelijkse overzichten. **Machine learning**: met BigQuery ML train je modellen direct op je data met SQL. Zie het artikel over BigQuery ML voor meer details. :::faq ### Is BigQuery beschikbaar voor kleine organisaties? Ja, BigQuery werkt met elk Google Cloud-account, ook individueel. De eerste TiB queries per maand en 10 GB opslag zijn gratis, dus kleine datasets kosten vrijwel niets. ### Kan ik BigQuery gebruiken met een Google Workspace-account? Ja. Je koppelt een Google Cloud-project aan je Workspace-domein of gebruikt een persoonlijk Google-account. BigQuery staat los van Workspace, maar integreert er goed mee. ### Hoe verschilt BigQuery van Google Sheets? Sheets is een spreadsheet voor kleine datasets met een grafische interface voor handmatige bewerkingen. BigQuery is een data warehouse voor miljarden rijen en is primair SQL-gebaseerd. ### Wat is het verschil tussen BigQuery en Looker Studio? BigQuery slaat de data op en verwerkt de queries. Looker Studio is de visualisatietool die de resultaten toont. Ze werken samen: Looker Studio stuurt queries naar BigQuery en zet de resultaten om in grafieken. ### Hoe houd ik mijn querykosten laag? Selecteer alleen de kolommen die je nodig hebt, partitioneer en clusterop datumvelden, gebruik de prijsschatting voordat je een query draait, en stel een kostenlimiet per query in via de instellingen. ### Verandert het prijsmodel snel? De tarieven zijn al lange tijd stabiel, maar Google kan ze per regio aanpassen. Controleer voor een concrete berekening altijd de actuele BigQuery-prijspagina in je eigen regio. :::