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ó
- Lectura de dades: Com BigQuery llegeix les dades de les taules.
- Filtratge: Aplicació de condicions
WHERE
per reduir el conjunt de dades. - Unions: Com BigQuery combina dades de diferents taules.
- Agregació: Operacions com
GROUP BY
i funcions agregades (SUM
,COUNT
, etc.). - Ordenació: Ordenació de dades amb
ORDER BY
. - 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
- Escriu la teva consulta SQL a la consola de BigQuery.
- Fes clic a "Explica" (Explain) en lloc de "Executa" (Run).
- 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
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ó:
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
- Què és BigQuery?
- Configurar el teu entorn de BigQuery
- Comprendre l'arquitectura de BigQuery
- Visió general de la consola de BigQuery
Mòdul 2: SQL bàsic a BigQuery
Mòdul 3: SQL intermedi a BigQuery
Mòdul 4: SQL avançat a BigQuery
- Unions avançades
- Camps niats i repetits
- Funcions definides per l'usuari (UDFs)
- Particionament i agrupament
Mòdul 5: Gestió de dades a BigQuery
- Carregar dades a BigQuery
- Exportar dades de BigQuery
- Transformació i neteja de dades
- Gestió de conjunts de dades i taules
Mòdul 6: Optimització del rendiment de BigQuery
- Tècniques d'optimització de consultes
- Comprendre els plans d'execució de consultes
- Ús de vistes materialitzades
- Optimització de l'emmagatzematge
Mòdul 7: Seguretat i compliment de BigQuery
Mòdul 8: Integració i automatització de BigQuery
- Integració amb serveis de Google Cloud
- Ús de BigQuery amb Dataflow
- Automatització de fluxos de treball amb Cloud Functions
- Programació de consultes amb Cloud Scheduler
Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)
- Introducció a BigQuery ML
- Creació i entrenament de models
- Avaluació i predicció amb models
- Funcions avançades de BQML