Snowflake (Programa detallado)

Objetivo:

  • Entender la arquitectura de Snowflake para entender por qué es la plataforma de gestión y almacenamiento de datos en la nube más popular.
  • Cargar datos en Snowflake desde diferentes tipos de fuente tanto estructuradas como no estructuradas.
  • Realizar y configurar la carga de datos en modo masivo (bulk) o bien en tiempo real con Snowpipe.
  • Conseguir cargar desde plataformas en la nube como AWS, Azure o GCP.
  • Proteger nuestros datos en Snowflake y compartirlos de manera segura garantizando un ciclo de vida de los datos confiable.
  • Automatizar los procesos de ingesta, transformación y carga con la definición de tareas y streams en Snowflake.
  • Conectar Snowflake con plataformas analíticas que consuman los datos como Power BI.
  • Administrar los roles y permisos apropiados para garantizar la seguridad de nuestros datos.

Requisitos:

No hay requisitos previos. Se enseñarán desde cero los conocimientos del lenguaje SQL necesarios para el uso en Snowflake, si bien es cierto que disponer de conocimientos de SQL previos facilitarán la comprensión.

Programa del curso

1.- Introducción y arquitectura de Snowflake

Objetivo

Comprender la arquitectura de Snowflake y cómo crear la plataforma y acceso.

Contenido

  1. Introducción y arquitectura de Snowflake
    1. ¿Qué es un data warehouse?
    2. Arquitectura de Snowflake y sus ventajas
    3. Ediciones de Snowflake y precios
    4. Registro en Snowflake y primeros pasos
    5. Crear un nuevo warehouse mediante interfaz o usando SQL
    6. ¿Cómo explorar bases de datos y tablas en Snowflake?
    7. Monitorizar el uso de Snowflake
    8. Resumen

2.- Carga de datos en Snowflake

Objetivo

Ingestar datos en Snowflake, cargarlos y transformarlos a las tablas objetivo.

Contenido

  1. Carga de datos en Snowflake
    1. Adquisición e ingesta de datos en Snowflake (stages)
    2. Carga de datos desde la interfaz fichero local
    3. Cómo crear un stage
    4. Carga de datos utilizando el comando COPY
    5. Transformación de datos en Snowflake
    6. Manejo de errores - Opción COPY: "ON_ERROR"
    7. Reutilizar formato ficheros con objeto file_format
    8. Modo de validación y tratamiento de errores
    9. Resumen

3.- Carga de datos no estructurados

Objetivo

Ingestar datos no estructurados en Snowflake y parsearlos adecuadamente.

Contenido

  1. Carga de datos no estructurados
    1. ¿Qué son los datos NO estructurados?
    2. Creación del stage y el fichero bruto con datos no estructurados (JSON)
    3. Parseo y análisis del fichero no estructurado JSON
    4. Manejo de datos nested y arrays
    5. Jerarquías y flatten del fichero no estructurado JSON
    6. Inserción de datos no estructurados JSON en la tabla objetivo (estructurados)
    7. Resumen

4.- Carga de datos desde cloud (AWS, Azure, GCP)

Objetivo

Cargar datos desde la nube en Snowflake y usar stages externos.

Contenido

  1. Carga de datos desde cloud (AWS, Azure, GCP)
    1. ¿Cómo cargamos datos desde la nube?
    2. Creación del bucket y carga de ficheros en la nube
    3. Crear rol y política en la plataforma en la nube
    4. Crear objeto de integración en Snowflake
    5. Cargar datos a la tabla objetivo de Snowflake
    6. Optimización de la carga de datos desde la nube en Snowflake
    7. Resumen

5.- Snowpipe (ingesta en tiempo real)

Objetivo

Crear pipes e ingestar datos en tiempo real en Snowflake.

Contenido

  1. Snowpipe (ingesta en tiempo real)
    1. ¿Qué es Snowpipe y los pasos para la creación de pipes?
    2. Creación de stage para Snowpipe
    3. Creación del pipe
    4. Configurar el pipe y las notificaciones
    5. Gestión de pipes
    6. Migración y Carga desde una BBDD SQL
    7. Uso de Snowpipe con Kafka
    8. Resumen

6.- Ciclo de vida, protección y compartición de datos en Snowflake

Objetivo

Proteger los datos frente accidentes, compartir datos y conectar Snowflake con otras plataformas.

Contenido

  1. Ciclo de vida, protección y compartición de datos en Snowflake
    1. Time Travel y Fail Safe
    2. Tipos de tabla en Snowflake
    3. Compartición de datos con otra cuenta de Snowflake
    4. ¿Cómo conectar Snowflake y Power BI?
    5. ¿Cómo conectar Snowflake y Python?
    6. Protección - Recomendaciones para evitar brechas de seguridad
    7. Resumen

7.- Creación de tareas y streams en Snowflake

Objetivo

Crear tareas y streams en Snowflake para automatizar nuestros flujos de datos.

Contenido

  1. Creación de tareas y streams en Snowflake
    1. ¿Qué son las tareas en Snowflake?
    2. Creación de tareas
    3. Uso de CRON para crear tareas con periodicidad flexible
    4. Creación de Árboles de Tareas y verificar Histórico de Programación
    5. ¿Qué son los Streams en Snowflake?
    6. Creación de Stream y operación INSERT
    7. Uso de Stream para operación UPDATE
    8. Uso de Stream para operación DELETE
    9. Procesamiento de todos los cambios de datos en Streams
    10. Combinar Tareas y Streams en Snowflake
    11. Resumen

8.- Administración de roles y permisos en Snowflake

Objetivo

Administrar y gestionar usuarios y permisos en Snowflake.

Contenido

  1. Administración de roles y permisos en Snowflake
    1. Conceptos clave para el control de acceso en Snowflake
    2. Rol ACCOUNT ADMIN
    3. Rol SECURITY ADMIN
    4. Rol SYS ADMIN
    5. Rol USER ADMIN
    6. Rol PUBLIC y roles personalizados
    7. Roles, máscaras y cifrado de datos
    8. Resumen