Hoe u de Crux BigQuery-dataset gebruikt

De ruwe data van het Chrome UX Report ( CrUX ) is beschikbaar op BigQuery , een database op Google Cloud. Om BigQuery te gebruiken, heb je een GCP-project en basiskennis van SQL nodig.

In deze handleiding leert u hoe u BigQuery kunt gebruiken om query's uit te voeren op de CruX-dataset en zo waardevolle inzichten te verkrijgen in de staat van de gebruikerservaring op het web:

  • Begrijp hoe de gegevens georganiseerd zijn.
  • Schrijf een eenvoudige query om de prestaties van een server te evalueren.
  • Schrijf een geavanceerde query om de prestaties in de loop van de tijd te volgen.

Gegevensorganisatie

Begin met een eenvoudige zoekopdracht:

SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`

Om de query uit te voeren, voert u deze in de query-editor in en drukt u op de knop "Query uitvoeren":

Voer een eenvoudige zoekopdracht in de editor in en druk op Uitvoeren.

Deze vraag bestaat uit twee delen:

  • SELECT COUNT(DISTINCT origin) betekent dat er wordt gezocht naar het aantal origins in de tabel. Grofweg gezegd, twee URL's behoren tot dezelfde origin als ze hetzelfde schema, host en poort hebben.

  • FROM chrome-ux-report.all.202206 specificeert het adres van de brontabel, die uit drie delen bestaat:

    • Het cloudproject met de naam chrome-ux-report is de locatie waarbinnen alle CruX-gegevens worden georganiseerd.
    • De dataset all bevat gegevens uit alle landen.
    • De tabel 202206 , het jaar en de maand van de gegevens in het formaat JJJJMM.

Er zijn ook datasets voor elk land. Zo bevat chrome-ux-report.country_ca.202206 alleen de gebruikerservaringgegevens afkomstig uit Canada.

Elke dataset bevat tabellen voor elke maand sinds oktober 2017. Nieuwe tabellen voor de voorgaande kalendermaand worden regelmatig gepubliceerd.

De structuur van de gegevenstabellen (ook wel het schema genoemd) bevat:

  • De oorsprong, bijvoorbeeld origin = 'https://www.example.com' , vertegenwoordigt de totale gebruikerservaring voor alle pagina's op die website.
  • De verbindingssnelheid op het moment dat de pagina wordt geladen, bijvoorbeeld effective_connection_type.name = '4G' ( verwijderd vanaf februari 2025 )
  • Het apparaattype, bijvoorbeeld form_factor.name = 'desktop'
  • De UX-statistieken zelf
    • first_paint (FP)
    • first_contentful_paint ( FCP )
    • largest_contentful_paint ( LCP )
    • dom_content_loaded (DCL)
    • onload (OL)
    • layout_instability.cumulative_layout_shift ( CLS )
    • interaction_to_next_paint ( INP )

De gegevens voor elke metriek zijn georganiseerd als een array van objecten. In JSON-notatie zou first_contentful_paint.histogram.bin er ongeveer zo uitzien:

[
    {"start": 0, "end": 100, "density": 0.1234},
    {"start": 100, "end": 200, "density": 0.0123},
    ...
]

Elke bin bevat een begin- en eindtijd in milliseconden en een dichtheid die het percentage gebruikerservaringen binnen dat tijdsbereik weergeeft. Met andere woorden, 12,34% van de FCP-ervaringen voor deze hypothetische herkomst, verbindingssnelheid en apparaattype zijn korter dan 100 ms. De som van alle bindichtheden is 100%.

Bekijk de structuur van de tabellen in BigQuery.

Evalueer de prestaties

We kunnen onze kennis van het tabelschema gebruiken om een ​​query te schrijven die deze prestatiegegevens extraheert.

SELECT
  fcp
FROM
  `chrome-ux-report.all.202502`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  form_factor.name = 'phone' AND
  fcp.start = 0

Een query uitvoeren op CruX FCP in BigQuery

Het resultaat is 0.01115 , wat betekent dat 1,115% van de gebruikerservaringen op deze oorsprong tussen 0 en 100 ms liggen op 4G en op een telefoon. Als we onze query willen generaliseren naar elke verbinding en elk apparaattype, kunnen we deze weglaten uit de WHERE clausule en de aggregatiefunctie SUM gebruiken om alle respectievelijke bin-dichtheden op te tellen:

SELECT
  SUM(fcp.density)
FROM
  `chrome-ux-report.all.202206`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  fcp.start = 0

Samenvatten van CruX FCP op BigQuery

Het resultaat is 0.05355 , oftewel 5,355% over alle apparaten en verbindingstypen. We kunnen de query iets aanpassen en de dichtheden optellen voor alle bins die zich in het "snelle" FCP-bereik van 0-1000 ms bevinden:

SELECT
  SUM(fcp.density) AS fast_fcp
FROM
  `chrome-ux-report.all.202206`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  fcp.start < 1000

Snelle FCP-query's uitvoeren op BigQuery

Dit geeft ons 0.6977 . Met andere woorden, 69,77% van de FCP-gebruikerservaringen op web.dev wordt als "snel" beschouwd volgens de FCP-bereikdefinitie.

Trackprestaties

Nu we prestatiegegevens over een bepaalde herkomst hebben verzameld, kunnen we deze vergelijken met de historische gegevens in oudere tabellen. Hiervoor kunnen we het tabeladres aanpassen naar een eerdere maand, of we kunnen de wildcard-syntaxis gebruiken om alle maanden op te vragen:

SELECT
  _TABLE_SUFFIX AS yyyymm,
  SUM(fcp.density) AS fast_fcp
FROM
  `chrome-ux-report.all.*`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  fcp.start < 1000
GROUP BY
  yyyymm
ORDER BY
  yyyymm DESC

Een tijdreeks van CruX FCP opvragen in BigQuery

Hieruit blijkt dat het percentage snelle FCP-ervaringen maandelijks met een paar procentpunten varieert.

jjjjmm fast_fcp
202206 69,77%
202205 70,71%
202204 69,04%
202203 69,82%
202202 67,75%
202201 58,96%
202112 41,69%
... ...

Met deze technieken kunt u de prestaties van een specifieke bron opzoeken, het percentage snelle ervaringen berekenen en dit in de loop van de tijd volgen. Probeer vervolgens de prestaties van twee of meer bronnen te vergelijken.

Veelgestelde vragen

Dit zijn enkele veelgestelde vragen over de CruX BigQuery-dataset:

Wanneer zou ik BigQuery gebruiken in plaats van andere tools?

BigQuery is alleen nodig als je dezelfde informatie niet kunt verkrijgen met andere tools zoals CruX Vis en PageSpeed ​​Insights. Met BigQuery kun je bijvoorbeeld de data op zinvolle manieren filteren en zelfs combineren met andere openbare datasets zoals het HTTP Archive om geavanceerde data-analyse uit te voeren.

Zijn er beperkingen aan het gebruik van BigQuery?

Ja, de belangrijkste beperking is dat gebruikers standaard slechts 1 TB aan data per maand kunnen opvragen. Daarboven geldt het standaardtarief van $5 per TB.

Waar kan ik meer leren over BigQuery?

Raadpleeg de BigQuery-documentatie voor meer informatie.