CursosEmpresasBlogLiveConfPrecios

Crear tablas en AWS Redshift

Clase 14 de 25 • Curso de Fundamentos de ETL con Python y Pentaho

Contenido del curso

Introducción a ETL

  • 1
    ¿Qué es un ETL en ingeniería de datos?

    ¿Qué es un ETL en ingeniería de datos?

    06:52 min
  • 2
    Conceptos base de ETL

    Conceptos base de ETL

    07:20 min
  • 3
    Consideraciones de ETL

    Consideraciones de ETL

    04:20 min
  • 4
    Servicios y herramientas para ETL

    Servicios y herramientas para ETL

    05:25 min

Extracción de datos

  • 5
    Sources

    Sources

    03:29 min
  • 6
    Configuración de base de datos source y entorno para ETL en Python

    Configuración de base de datos source y entorno para ETL en Python

    06:13 min
  • 7
    Extracción de datos con Python y Pandas

    Extracción de datos con Python y Pandas

    09:11 min

Transformación de datos

  • 8
    Transformación

    Transformación

    02:50 min
  • 9
    Transformación de datos con Python y Pandas

    Transformación de datos con Python y Pandas

    11:40 min
  • 10
    Transformación de datos de países

    Transformación de datos de países

    07:53 min
  • 11
    Transformación de datos de transacciones

    Transformación de datos de transacciones

    12:07 min

Carga de datos

  • 12
    Carga

    Carga

    03:31 min
  • 13
    Configuración de clúster en AWS Redshift

    Configuración de clúster en AWS Redshift

    04:59 min
  • 14
    Crear tablas en AWS Redshift

    Crear tablas en AWS Redshift

    Viendo ahora
  • 15
    Carga de datos con Python

    Carga de datos con Python

    14:03 min
  • 16
    Estructurar sentence para carga de datos de S3 a Redshift

    Estructurar sentence para carga de datos de S3 a Redshift

    01:14 min
  • 17
    Carga de datos: subida de archivos a AWS Redshift

    Carga de datos: subida de archivos a AWS Redshift

    08:07 min

ETL con Pentaho

  • 18
    Instalación de Pentaho

    Instalación de Pentaho

    02:39 min
  • 19
    Extracción de datos con Pentaho

    Extracción de datos con Pentaho

    06:47 min
  • 20
    Transformación de datos con Pentaho

    Transformación de datos con Pentaho

    13:28 min
  • 21
    Transformación de datos con Pentaho: parte 2

    Transformación de datos con Pentaho: parte 2

    10:44 min
  • 22
    Transformación de datos con Pentaho: parte 3

    Transformación de datos con Pentaho: parte 3

    10:35 min
  • 23
    Carga de datos con Pentaho

    Carga de datos con Pentaho

    03:54 min

Conclusión

  • 24
    Siguientes pasos

    Siguientes pasos

    03:21 min
  • 25
    Comparte tu proyecto de ETL y obtén tu certificado

    Comparte tu proyecto de ETL y obtén tu certificado

Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      ¡Hola nuevamente!

      Ya que tienes tu clúster de Redshift y tu bucket de S3 en AWS, es momento de crear las tablas donde depositaremos los datos que transformamos en el ETL.

      Por ahora lo que haremos será crear la estructura de las tablas para que en la siguiente clase podamos llevar los datos transformados a archivos CSV que subiremos a S3 y que automáticamente serán cargados como registros en nuestro Redshift.

      1. Crea las tablas

      Abre una nueva Query Console. Da clic derecho sobre la base de datos dev, luego presiona el botón New y por último el botón Query Console.

      workspace – console 3_3_2023 9_44_29 AM.png
      Esto abrirá el editor de queries para Redshift.
      query_console.png
      Descarga este script de SQL donde encontrarás los comandos CREATE para las seis tablas de nuestro target.

      El script contiene lo siguiente:

      create_1.png
      create_2.png

      💡Cada comando ha sido creado con base en las necesidades de datos que se insertarán en ellas. Aprenderás a diseñar este tipo de tablas con más detalle en cursos de Datawarehousing y modelamiento OLAP que tomarás más adelante en la ruta de Data Engineer.

      Copia y pega el contenido del script de SQL en el Query Console.

      query_script.png
      Ejecuta el query. Al terminar su ejecución haz refresh a la base de datos, ve al schema public y verás las tablas agregadas.
      tables_created.png

      ⚠️Es normal que veas otras tablas que no creaste. Son las que se crean por defecto para la prueba gratis de Redshift. No hace falta que las borres.

      2. Configura las variables de entorno en tu OS

      Antes de continuar es muy importante que guardes como variables de tu entorno de trabajo los datos de acceso a tu cuenta de AWS y clúster de Redshift.

      ⚠️Esto se hace por seguridad para que los datos de acceso no queden expuestos en el código y que puedan ser obtenidos por personas que no deberían tenerlas.

      Para ello ve a la consola de AWS y selecciona en la parte superior derecha tu nombre de usuario. Esto despliega un menú. Da clic en el botón Credenciales de seguridad.

      AWS Management Console — Mozilla Firefox 3_3_2023 10_15_44 AM.png
      Baja hasta la sección Claves de acceso y da clic en el botón Crear clave de acceso.
      clave_acceso_aws.png
      Marca el check y da clic sobre el botón naranja Crear clave de acceso.
      clave_iam.png
      Esto generará una clave de acceso y una clave de acceso secreta con la que te podrás conectar a tu cuenta de AWS desde la notebook de Python. Cópialas y guárdalas en un lugar seguro. También puedes descargar el archivo CSV.

      Una vez guardadas las claves da clic en el botón naranja Listo.

      CLAVES.png
      Ya que tienes estas claves de acceso IAM y las credenciales del clúster de Redshift, crea las siguientes variables de entorno dentro de tu entorno de desarrollo en tu sistema operativo, ya sea que uses WSL, Linux o macOS:
      • aws_access_key_id: es la clave de acceso IAM de AWS.
      • aws_secret_access_key: es la clave de acceso secreta IAM de AWS.
      • host: la dirección del clúster de Redshift. Es la url del punto de enlace que copiaste eliminando la parte final ":5439/dev". Tendrá una forma como server.redshift.amazonaws.com
      • database: dev
      • user: demoplatzi
      • password: la que le hayas puesto a tu clúster de AWS Redshift cuando lo creaste.

      Si no recuerdas cómo crear variables de entorno, te sugiero vuelvas a ver esta clase del Curso de Introducción a la Terminal y Línea de Comandos.

      ¡Listo, ya tienes las variables de entorno creadas! Las usarás en la próxima clase para conectarte de Python a tu bucket de S3 y tu clúster de AWS.

      ⚠️Recuerda que la notebook que estés usando debe estar corriendo desde el entorno del sistema operativo donde configuraste las variables de entorno, de lo contrario no funcionará tu código porque no encontrará esas variables que se accederán con os.environ.get('nombre_variable_entorno).


      ¡Sigue avanzando con el curso! En la próxima clase comenzarás a cargar datos en tu clúster de Redshift. ⚙️🚀

      Comentarios

        Juan Sebastián Vargas Castañeda

        Juan Sebastián Vargas Castañeda

        student•
        hace 3 años

        ⚠️Cuando creen las variables de entorno, en los siguientes pasos se usarán los nombres de variable de AWS en mayúsculas, el resto si quedan igual:

        export AWS_ACCESS_KEY_ID=[] export AWS_SECRET_ACCESS_KEY=[] export host=[] export database=[] ... ...
        Elio José Gabancho Catunta

        Elio José Gabancho Catunta

        student•
        hace 3 años

        Recomiendo utilizar variables de entorno con nombres personalizados, ya que por ejemplo la variable de entorno USER es el nombre de usuario de tu sistema operativo en el caso de linux. Yo lo Personalicé así:

        export AWS_ACCESS_KEY_ID=******** export AWS_SECRET_ACCESS_KEY=****** export AWS_HOST="tu host" export AWS_DATABASE=dev export AWS_USER=demoplatzi export AWS_PASSWORD=******
        kolab Linkear

        kolab Linkear

        student•
        hace 2 años

        ⚠️Pequeño paréntesis, como mi intención es disponibilizar los datos mediante una API con FastAPI lo que hare será crear las tablas en PostgreSQL, es practicamente el mismo proceso

        Guillermo Leonardo Montaño Medina

        Guillermo Leonardo Montaño Medina

        student•
        hace 2 años

        Si por alguna extraña razon del destino estás usando como SO Linux con distro Kali, ahí te va la siguiente información que hubiera gustado leer. Kali Linux usa como shell zsh, mientras que la mayoría de distros se basan en la shell bash. Dependiendo de como configuraste tu shell, va a guardar o no las variables de entorno. Si no se llegan a guardar por alguna extraña razón. Tienes que hacer lo siguiente```js vim ~/.zshrc

        ```js source ~/.zshrc ```Y vuelve a abrir data spell, ya podrás hacer usp de las variables de entorno