Els plans d'execució de consultes són una eina essencial per optimitzar el rendiment de les consultes a BigQuery. Aquests plans proporcionen una visió detallada de com BigQuery processa una consulta, permetent identificar colls d'ampolla i oportunitats per a l'optimització.

Què és un pla d'execució de consultes?

Un pla d'execució de consulta és una representació detallada dels passos que BigQuery segueix per executar una consulta SQL. Inclou informació sobre les operacions que es realitzen, com ara escanejar taules, aplicar filtres, unir taules, etc.

Components clau d'un pla d'execució

  1. Lectura de dades: Com BigQuery llegeix les dades de les taules.
  2. Filtratge: Aplicació de condicions WHERE per reduir el conjunt de dades.
  3. Unions: Com BigQuery combina dades de diferents taules.
  4. Agregació: Operacions com GROUP BY i funcions agregades (SUM, COUNT, etc.).
  5. Ordenació: Ordenació de dades amb ORDER BY.
  6. Sortida: Com es presenten els resultats finals.

Com obtenir un pla d'execució a BigQuery

Per obtenir un pla d'execució de consulta a BigQuery, pots utilitzar la consola de BigQuery o l'eina de línia de comandes bq.

Utilitzant la consola de BigQuery

  1. Escriu la teva consulta SQL a la consola de BigQuery.
  2. Fes clic a "Explica" (Explain) en lloc de "Executa" (Run).
  3. La consola mostrarà el pla d'execució de la consulta.

Utilitzant l'eina de línia de comandes bq

bq query --use_legacy_sql=false --dry_run --format=prettyjson 'SELECT * FROM `project.dataset.table` WHERE condition'

Aquest comandament executarà una "execució en sec" (dry run) de la consulta i mostrarà el pla d'execució en format JSON.

Interpretació d'un pla d'execució

Un pla d'execució de consulta a BigQuery es presenta en forma de gràfic o taula que detalla les operacions realitzades. A continuació, es mostra un exemple simplificat d'un pla d'execució:

Operació Descripció Cost estimat
Scan Escaneja la taula project.dataset.table 100 MB
Filter Aplica el filtre condition 50 MB
Join Uneix amb la taula project.dataset.other_table 30 MB
Aggregate Agrega dades amb GROUP BY 10 MB
Output Retorna els resultats 5 MB

Exemples pràctics

Exemple 1: Consulta simple amb filtratge

SELECT name, age
FROM `project.dataset.table`
WHERE age > 30

Pla d'execució:

Operació Descripció Cost estimat
Scan Escaneja la taula project.dataset.table 100 MB
Filter Aplica el filtre age > 30 50 MB
Output Retorna els resultats 50 MB

Exemple 2: Consulta amb unió i agregació

SELECT t1.name, COUNT(t2.order_id) as order_count
FROM `project.dataset.customers` t1
JOIN `project.dataset.orders` t2
ON t1.customer_id = t2.customer_id
GROUP BY t1.name

Pla d'execució:

Operació Descripció Cost estimat
Scan Escaneja la taula project.dataset.customers 100 MB
Scan Escaneja la taula project.dataset.orders 200 MB
Join Uneix les taules customers i orders 150 MB
Aggregate Agrega dades amb GROUP BY t1.name 50 MB
Output Retorna els resultats 50 MB

Exercicis pràctics

Exercici 1: Consulta amb filtratge

Escriu una consulta que seleccioni els noms i edats dels usuaris de la taula users que tinguin més de 25 anys. Obteniu el pla d'execució i interpreteu-lo.

Solució:

SELECT name, age
FROM `project.dataset.users`
WHERE age > 25

Pla d'execució esperat:

Operació Descripció Cost estimat
Scan Escaneja la taula project.dataset.users 100 MB
Filter Aplica el filtre age > 25 60 MB
Output Retorna els resultats 60 MB

Exercici 2: Consulta amb unió

Escriu una consulta que uneixi les taules employees i departments per obtenir els noms dels empleats i els noms dels seus departaments. Obteniu el pla d'execució i interpreteu-lo.

Solució:

SELECT e.name, d.department_name
FROM `project.dataset.employees` e
JOIN `project.dataset.departments` d
ON e.department_id = d.department_id

Pla d'execució esperat:

Operació Descripció Cost estimat
Scan Escaneja la taula project.dataset.employees 100 MB
Scan Escaneja la taula project.dataset.departments 50 MB
Join Uneix les taules employees i departments 75 MB
Output Retorna els resultats 75 MB

Resum

Comprendre els plans d'execució de consultes és fonamental per optimitzar el rendiment de les consultes a BigQuery. Aquests plans proporcionen una visió detallada de les operacions realitzades durant l'execució d'una consulta, permetent identificar colls d'ampolla i oportunitats per a l'optimització. Practicar la interpretació dels plans d'execució amb exemples reals és una manera efectiva de millorar les teves habilitats en l'optimització de consultes.

Curs de BigQuery

Mòdul 1: Introducció a BigQuery

Mòdul 2: SQL bàsic a BigQuery

Mòdul 3: SQL intermedi a BigQuery

Mòdul 4: SQL avançat a BigQuery

Mòdul 5: Gestió de dades a BigQuery

Mòdul 6: Optimització del rendiment de BigQuery

Mòdul 7: Seguretat i compliment de BigQuery

Mòdul 8: Integració i automatització de BigQuery

Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)

Mòdul 10: Casos d'ús de BigQuery en el món real

© Copyright 2024. Tots els drets reservats