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

  1. Accedeix a la consola de Google Cloud i navega a la secció de Cloud Scheduler.
  2. Crea una nova tasca fent clic a "Create job".
  3. 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

  1. 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.

  2. Mètode: Selecciona "POST".

  3. 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
    }
    
  4. 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

  1. Descripció: Programa una consulta que s'executi setmanalment per eliminar registres antics d'una taula.
  2. Consulta SQL:
    DELETE FROM `project.dataset.table`
    WHERE timestamp < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY);
    
  3. Freqüència: Setmanalment, cada diumenge a les 3:00 AM (0 3 * * 0).

Solució

  1. Nom de la tasca: weekly-cleanup
  2. Regió: us-central1
  3. Freqüència: 0 3 * * 0
  4. URL: https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/queries
  5. Mètode: POST
  6. 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

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