Introducció
En aquest tema, aprendrem com programar consultes a BigQuery utilitzant Cloud Scheduler. Cloud Scheduler és un servei de Google Cloud que permet programar tasques cron, com ara l'execució de consultes SQL a BigQuery, de manera automàtica i recurrent. Això és especialment útil per a tasques com la generació de informes diaris, la neteja de dades o l'actualització de taules.
Objectius
- Comprendre què és Cloud Scheduler i com funciona.
- Aprendre a configurar Cloud Scheduler per executar consultes a BigQuery.
- Veure exemples pràctics de programació de consultes.
- Realitzar exercicis pràctics per reforçar els conceptes apresos.
Què és Cloud Scheduler?
Cloud Scheduler és un servei completament gestionat que permet programar tasques cron de manera fiable i escalable. Amb Cloud Scheduler, pots:
- Programar tasques per executar-se en intervals regulars (per exemple, diàriament, setmanalment).
- Executar tasques en moments específics.
- Integrar-se amb altres serveis de Google Cloud, com ara Cloud Functions, App Engine i BigQuery.
Configuració de Cloud Scheduler per a BigQuery
Pas 1: Crear un projecte a Google Cloud
Si encara no tens un projecte a Google Cloud, hauràs de crear-ne un. Pots fer-ho des de la consola de Google Cloud.
Pas 2: Activar les API necessàries
Assegura't que les següents API estiguin activades al teu projecte:
- Cloud Scheduler API
- BigQuery API
Pas 3: Crear una tasca de Cloud Scheduler
- Accedeix a la consola de Google Cloud i navega a la secció de Cloud Scheduler.
- Crea una nova tasca fent clic a "Create job".
- Configura els detalls de la tasca:
- Nom de la tasca: Dona un nom descriptiu a la teva tasca.
- Regió: Selecciona la regió on vols que s'executi la tasca.
- Freqüència: Defineix la freqüència amb la qual vols que s'executi la tasca utilitzant la sintaxi cron.
- Targeta: Selecciona "HTTP" com a tipus de targeta.
Pas 4: Configurar la targeta HTTP
-
URL: Utilitza l'URL de l'API de BigQuery per executar consultes. Per exemple:
https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/queries
Substitueix
PROJECT_ID
pel teu ID de projecte. -
Mètode: Selecciona "POST".
-
Càrrega útil: Afegeix el cos de la sol·licitud amb la consulta SQL que vols executar. Per exemple:
{ "query": "SELECT * FROM `project.dataset.table` WHERE condition", "useLegacySql": false }
-
Autenticació: Configura l'autenticació utilitzant un compte de servei amb els permisos necessaris per executar consultes a BigQuery.
Exemple pràctic
Suposem que volem programar una consulta que s'executi diàriament a les 2:00 AM per actualitzar una taula amb dades agregades. La consulta SQL és la següent:
INSERT INTO `project.dataset.daily_summary` SELECT CURRENT_DATE() AS date, COUNT(*) AS total_records FROM `project.dataset.source_table` WHERE DATE(timestamp) = CURRENT_DATE() - 1;
La configuració de la tasca de Cloud Scheduler seria:
- Nom de la tasca:
daily-summary-update
- Regió:
us-central1
- Freqüència:
0 2 * * *
(a les 2:00 AM cada dia) - URL:
https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/queries
- Mètode:
POST
- Càrrega útil:
{ "query": "INSERT INTO `project.dataset.daily_summary` SELECT CURRENT_DATE() AS date, COUNT(*) AS total_records FROM `project.dataset.source_table` WHERE DATE(timestamp) = CURRENT_DATE() - 1;", "useLegacySql": false }
Exercici pràctic
Exercici 1: Programar una consulta de neteja de dades
- Descripció: Programa una consulta que s'executi setmanalment per eliminar registres antics d'una taula.
- Consulta SQL:
DELETE FROM `project.dataset.table` WHERE timestamp < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY);
- Freqüència: Setmanalment, cada diumenge a les 3:00 AM (
0 3 * * 0
).
Solució
- Nom de la tasca:
weekly-cleanup
- Regió:
us-central1
- Freqüència:
0 3 * * 0
- URL:
https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/queries
- Mètode:
POST
- Càrrega útil:
{ "query": "DELETE FROM `project.dataset.table` WHERE timestamp < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY);", "useLegacySql": false }
Resum
En aquest tema, hem après com utilitzar Cloud Scheduler per programar l'execució de consultes a BigQuery. Hem vist com configurar una tasca de Cloud Scheduler, com definir la freqüència d'execució i com especificar la consulta SQL a executar. També hem realitzat un exercici pràctic per reforçar els conceptes apresos. Amb aquestes habilitats, pots automatitzar moltes de les teves tasques de gestió de dades a BigQuery, millorant l'eficiència i la productivitat del teu treball.
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