En este módulo, aprenderás cómo transformar y limpiar datos en BigQuery. La transformación y limpieza de datos son pasos cruciales en el proceso de preparación de datos para análisis y modelado. Asegurarse de que los datos sean precisos, consistentes y estén en el formato correcto es esencial para obtener resultados confiables.

Objetivos de Aprendizaje

  • Comprender la importancia de la transformación y limpieza de datos.
  • Aprender a utilizar funciones SQL para transformar y limpiar datos en BigQuery.
  • Realizar operaciones comunes de limpieza de datos, como eliminación de duplicados y manejo de valores nulos.
  • Aplicar técnicas de transformación de datos, como la normalización y agregación.

  1. Importancia de la Transformación y Limpieza de Datos

La transformación y limpieza de datos son procesos esenciales en cualquier proyecto de análisis de datos. Estos procesos aseguran que los datos sean:

  • Precisos: Los datos deben ser correctos y libres de errores.
  • Consistentes: Los datos deben estar en un formato uniforme y coherente.
  • Completo: Los datos deben estar completos y no tener valores faltantes significativos.
  • Relevantes: Los datos deben ser relevantes para el análisis que se va a realizar.

  1. Funciones SQL para Transformación y Limpieza de Datos

2.1 Eliminación de Duplicados

Para eliminar duplicados en BigQuery, puedes usar la cláusula DISTINCT o la función ROW_NUMBER() en combinación con una subconsulta.

Ejemplo:

SELECT DISTINCT column1, column2
FROM dataset.table;

Usando ROW_NUMBER():

WITH ranked_data AS (
  SELECT
    column1,
    column2,
    ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2) AS row_num
  FROM dataset.table
)
SELECT column1, column2
FROM ranked_data
WHERE row_num = 1;

2.2 Manejo de Valores Nulos

Para manejar valores nulos, puedes usar la función IFNULL() o COALESCE().

Ejemplo:

SELECT
  column1,
  IFNULL(column2, 'default_value') AS column2
FROM dataset.table;

Usando COALESCE():

SELECT
  column1,
  COALESCE(column2, 'default_value') AS column2
FROM dataset.table;

2.3 Normalización de Datos

La normalización de datos implica transformar los datos para que estén en un rango común. Esto es útil para comparaciones y análisis.

Ejemplo:

SELECT
  column1,
  (column2 - MIN(column2) OVER()) / (MAX(column2) OVER() - MIN(column2) OVER()) AS normalized_column2
FROM dataset.table;

2.4 Agregación de Datos

La agregación de datos implica resumir los datos en grupos. Puedes usar funciones de agregación como SUM(), AVG(), COUNT(), etc.

Ejemplo:

SELECT
  column1,
  SUM(column2) AS total_column2,
  AVG(column2) AS avg_column2
FROM dataset.table
GROUP BY column1;

  1. Ejercicios Prácticos

Ejercicio 1: Eliminación de Duplicados

Dado un conjunto de datos con duplicados, escribe una consulta para eliminar los duplicados y mostrar solo las filas únicas.

Datos de Ejemplo:

CREATE TABLE dataset.example_table AS
SELECT 1 AS id, 'A' AS value UNION ALL
SELECT 2, 'B' UNION ALL
SELECT 1, 'A' UNION ALL
SELECT 3, 'C';

Consulta:

SELECT DISTINCT id, value
FROM dataset.example_table;

Ejercicio 2: Manejo de Valores Nulos

Dado un conjunto de datos con valores nulos, escribe una consulta para reemplazar los valores nulos con un valor predeterminado.

Datos de Ejemplo:

CREATE TABLE dataset.example_table AS
SELECT 1 AS id, 'A' AS value UNION ALL
SELECT 2, NULL UNION ALL
SELECT 3, 'C';

Consulta:

SELECT
  id,
  IFNULL(value, 'Unknown') AS value
FROM dataset.example_table;

Ejercicio 3: Normalización de Datos

Dado un conjunto de datos, escribe una consulta para normalizar una columna numérica.

Datos de Ejemplo:

CREATE TABLE dataset.example_table AS
SELECT 1 AS id, 10 AS value UNION ALL
SELECT 2, 20 UNION ALL
SELECT 3, 30;

Consulta:

SELECT
  id,
  (value - MIN(value) OVER()) / (MAX(value) OVER() - MIN(value) OVER()) AS normalized_value
FROM dataset.example_table;

Ejercicio 4: Agregación de Datos

Dado un conjunto de datos, escribe una consulta para agregar los datos por una columna específica.

Datos de Ejemplo:

CREATE TABLE dataset.example_table AS
SELECT 'A' AS category, 10 AS value UNION ALL
SELECT 'A', 20 UNION ALL
SELECT 'B', 30;

Consulta:

SELECT
  category,
  SUM(value) AS total_value,
  AVG(value) AS avg_value
FROM dataset.example_table
GROUP BY category;

Conclusión

En esta sección, hemos cubierto las técnicas básicas de transformación y limpieza de datos en BigQuery. Estas habilidades son fundamentales para preparar datos de alta calidad para análisis y modelado. Asegúrate de practicar estas técnicas con diferentes conjuntos de datos para fortalecer tu comprensión y habilidades. En el próximo módulo, exploraremos la gestión de conjuntos de datos y tablas en BigQuery.

Curso de BigQuery

Módulo 1: Introducción a BigQuery

Módulo 2: SQL Básico en BigQuery

Módulo 3: SQL Intermedio en BigQuery

Módulo 4: SQL Avanzado en BigQuery

Módulo 5: Gestión de Datos en BigQuery

Módulo 6: Optimización del Rendimiento de BigQuery

Módulo 7: Seguridad y Cumplimiento en BigQuery

Módulo 8: Integración y Automatización de BigQuery

Módulo 9: Machine Learning en BigQuery (BQML)

Módulo 10: Casos de Uso de BigQuery en el Mundo Real

© Copyright 2024. Todos los derechos reservados