SlideShare una empresa de Scribd logo
Cómo construir una
plataforma poderosa de
datos en un ambiente con
recursos restringidos
Ángel Alvarado
Créditos:
Sarah Thomason - UC Berkeley: análisis de “US census data”
Fernando Bustos - iOS Dev: pruebas del código compartido en esta plática
New York Times COVID19 data:
https://www.nytimes.com/interactive/2020/us/coronavirus-us-cases.html.
Unidos compartiendo y aprendiendo
#SGVirtual
Senior Engineer
Ángel Alvarado
Unidos compartiendo y aprendiendo
#SGVirtual
Data Engineer
Volunteer & mentor
Unidos compartiendo y aprendiendo
#SGVirtual
● Nonprofit 10,000
miembros en USA
● 8 capítulos
● 50k migrates sin
documentos
● Buscando abrir un
capítulo en México:
dulce@techqueria.org
¿Objetivo de esta platica?
Qué aprendas cómo
implementar una plataforma
de datos de bajo costo con
herramientas de software libre.
Agenda
● ¿Por qué una plataforma de este tipo?
● Herramientas-Arquitectura
● ¿Cómo se ve?
● Flujo de trabajo ejemplo 1
● Flujo de trabajo ejemplo 2
● Consideraciones en Producción
¿Por qué crear una
plataforma de este tipo?
● No tecnología propietaria y ni elevado costo.
● Privacidad de datos
● No hay $ para invertir en personal dedicado
a ingeniería de datos
● Entry-level para desarrolladores web y móvil.
● Diferentes departamentos en tu empresa
quieren analizar datos de manera sencilla.
● Equipos muy pequeños
¿Qué herramientas usa esta
plataforma?
¿Cómo interactúan?
¿Cómo se ve en
funcionamiento?
¿Cómo se ve en
funcionamiento?
Herramientas: ¿Por qué Docker?
● Ligero y facil de instalar
● Permite empaquetar en
contenedores tus
● Facilita deployments
Herramientas: ¿Por qué Rails y
Mysql?
● Framework web común
● Gran comunidad
● Rails scheduler/jobs
● Database schema
● Migrations
● Mysql
● Base de datos relacional
● Escalable hasta cierto
punto
Herramientas: ¿Por qué
Streamsets?
● Facilita Streaming & ETL de los
datos
● Pensado en BigData & DataOps
● Despliega los pipelines en clusters
,
Herramientas: ¿Por qué
Streamsets?
● Multiple conectores
out-of-the-box
○ Apache Kafka, Hadoop, Spark
○ Flume, Mapr, Snowflake,
tensorflow
○ Salesforce
● Open-Source
○ Conectores personalizados -
Java ó Scala ó Python
Herramientas: ¿Por qué Superset y
Redis?
● Alivia la carga de la
base de datos (Cache)
● Creada por
● Facilita la
representación de los
datos en D3.js
● Open source
¿Y el Big Data?
● Streamsets
○ Apache spark
○ Scala, Java
○ Apache Kafka
○ Druid-HDFS
○ ElasticSearch
○ Google Cloud
○ ...
● Scheduler
○ Rails+Streamsets ó Airflow+Streamsets
● Supersets
○ Druid, Drill, Impala, BigQuery
○ ElasticSearch y muchos más
¿Cuál es el flujo de desarrollo en esta
plataforma?
Caso de uso:
Preparar plataforma de datos para permitir a
investigadores y científicos analizar datos de
Covid19 en US generados por el New York
Times
Paso 0: Haz un fork de la plataforma y
levantala localmente
Paso 1: Prepara tu “data lake”
Paso 1: Prepara tu “data lake”
Estructura de los datos
https://github.com/AngelAlvarado/data-platform-with-open-source/pull/1/files
Paso 1: Prepara tu “data lake”
Estructura de los datos
Paso 2: Genera tus 'data pipelines': ETL ó Streaming
● Datos Covid19
● Los datos son
https://github.com/AngelAlvarado/data-platform-with-open-source/pull/1/files
Paso 2: 'data pipelines': data wrangling
● Datos Covid19
● Los datos son
https://github.com/AngelAlvarado/data-platform-with-open-source/pull/1/files
Paso 2: 'data pipelines': Geocodes
● Datos Covid19
Paso 2: 'data pipelines': streaming/batching
● Datos Covid19
● Los datos son
Paso 3: Genera una visualización de datos
Paso 3: Genera una visualización de datos
Paso 3: Genera un dashboard
Paso 4: ¿Y el job scheduler?
● Los datos en NYT
son actualizados
cada mañana
Paso 4: job scheduler
● Datos Covid19 del New York Time
+ Datos del censo de los estados
unidos
Flujo de trabajo:
● Datos Covid19 del New York Time
+ Datos del censo de los estados
unidos
Paso 1: Prepara tu “data lake”
Paso 1: Prepara tu “data lake”
Paso 2: Genera tus 'data pipelines': ETL ó Streaming
Paso 2: Genera tus 'data pipelines': ETL ó Streaming
Paso 3: Genera una visualización de datos
Genera una visualización de
datos más compleja con
SQL lab.
Consideraciones para enviar a producción/staging
● Infraestructura
○ Digital Ocean, AWS/GC
○ Streamsets cloud
○ Docker compose o desacoplar aún más
● Integración continua
○ Tests
● Alertas
● Logging
● Visualizaciones y/o dashboards
○ usuarios finales
● Científicos de datos/investigadores: jupyter notebook -> analisis
Crea tu propia plataforma
Github:
https://github.com/AngelAlvarado/data-platform-
with-open-source
Créditos:
Sarah Thomason - UC Berkeley: análisis de “US census data”
Fernando Bustos - iOS Dev: pruebas del código compartido en esta plática
New York Times COVID19 data:
https://www.nytimes.com/interactive/2020/us/coronavirus-us-cases.html.
Unidos compartiendo y aprendiendo
#SGVirtual

Más contenido relacionado

Similar a Cómo construir una plataforma poderosa de datos en un ambiente con recursos restringidos

Evolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comEvolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.com
Gabriel Eisbruch
 
Introduccion a Data Science
Introduccion a Data ScienceIntroduccion a Data Science
Introduccion a Data Science
SpanishPASSVC
 
Visualización de big data con power view
Visualización de big data con power viewVisualización de big data con power view
Visualización de big data con power view
SpanishPASSVC
 
13 14 keynote dando sentido al internet de las cosas, infobright
13 14 keynote dando sentido al internet de las cosas, infobright13 14 keynote dando sentido al internet de las cosas, infobright
13 14 keynote dando sentido al internet de las cosas, infobrightSoftware Guru
 
Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data
Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big DataIntroducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data
Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data
John Bulla
 
Visualización de datos con Tableau Public - Comité de Investigación
Visualización de datos con Tableau Public - Comité de InvestigaciónVisualización de datos con Tableau Public - Comité de Investigación
Visualización de datos con Tableau Public - Comité de Investigación
IAB México
 
Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...
Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...
Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...
Denodo
 
Cómo conseguir un Gobierno Abierto
Cómo conseguir un Gobierno AbiertoCómo conseguir un Gobierno Abierto
Cómo conseguir un Gobierno Abierto
OpenKratio
 
Cloud Computing y MapReduce
Cloud Computing y MapReduceCloud Computing y MapReduce
Cloud Computing y MapReduce
Jose Emilio Labra Gayo
 
Visualización en javascript
Visualización en javascriptVisualización en javascript
Visualización en javascript
Ana Belén García Parra
 
Clase 4 tecno i- periodismo 2015
Clase 4  tecno i- periodismo 2015Clase 4  tecno i- periodismo 2015
Clase 4 tecno i- periodismo 2015
Viviana Mercedes Ponce
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Guillermo Álvaro Rey
 
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...SpanishPASSVC
 
Wikipedia Burgos devfest 2017
Wikipedia Burgos devfest 2017Wikipedia Burgos devfest 2017
Wikipedia Burgos devfest 2017
Jaime Crespo
 
Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero. Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero.
GustavoMartin46
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked data
Iván Ruiz-Rube
 
Carga y procesamiento de datos en HDInsight
Carga y procesamiento de datos en HDInsightCarga y procesamiento de datos en HDInsight
Carga y procesamiento de datos en HDInsight
Eladio Rincón Herrera
 
Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
SolidQ
 
Herramientas open source BI
Herramientas open source BIHerramientas open source BI
Herramientas open source BI
Software Guru
 
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
Taller de datos - Data Toolbox #OSR6  #14wkRebiunTaller de datos - Data Toolbox #OSR6  #14wkRebiun
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
Luis Martinez-Uribe
 

Similar a Cómo construir una plataforma poderosa de datos en un ambiente con recursos restringidos (20)

Evolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comEvolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.com
 
Introduccion a Data Science
Introduccion a Data ScienceIntroduccion a Data Science
Introduccion a Data Science
 
Visualización de big data con power view
Visualización de big data con power viewVisualización de big data con power view
Visualización de big data con power view
 
13 14 keynote dando sentido al internet de las cosas, infobright
13 14 keynote dando sentido al internet de las cosas, infobright13 14 keynote dando sentido al internet de las cosas, infobright
13 14 keynote dando sentido al internet de las cosas, infobright
 
Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data
Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big DataIntroducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data
Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data
 
Visualización de datos con Tableau Public - Comité de Investigación
Visualización de datos con Tableau Public - Comité de InvestigaciónVisualización de datos con Tableau Public - Comité de Investigación
Visualización de datos con Tableau Public - Comité de Investigación
 
Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...
Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...
Webinar Vault IT: Analítica avanzada y Machine Learning con virtualización de...
 
Cómo conseguir un Gobierno Abierto
Cómo conseguir un Gobierno AbiertoCómo conseguir un Gobierno Abierto
Cómo conseguir un Gobierno Abierto
 
Cloud Computing y MapReduce
Cloud Computing y MapReduceCloud Computing y MapReduce
Cloud Computing y MapReduce
 
Visualización en javascript
Visualización en javascriptVisualización en javascript
Visualización en javascript
 
Clase 4 tecno i- periodismo 2015
Clase 4  tecno i- periodismo 2015Clase 4  tecno i- periodismo 2015
Clase 4 tecno i- periodismo 2015
 
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientasDesarrollo práctico de aplicaciones Linked Data: metodología y herramientas
Desarrollo práctico de aplicaciones Linked Data: metodología y herramientas
 
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
 
Wikipedia Burgos devfest 2017
Wikipedia Burgos devfest 2017Wikipedia Burgos devfest 2017
Wikipedia Burgos devfest 2017
 
Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero. Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero.
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked data
 
Carga y procesamiento de datos en HDInsight
Carga y procesamiento de datos en HDInsightCarga y procesamiento de datos en HDInsight
Carga y procesamiento de datos en HDInsight
 
Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
 
Herramientas open source BI
Herramientas open source BIHerramientas open source BI
Herramientas open source BI
 
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
Taller de datos - Data Toolbox #OSR6  #14wkRebiunTaller de datos - Data Toolbox #OSR6  #14wkRebiun
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
Software Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
Software Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
Software Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 

Último (20)

ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 

Cómo construir una plataforma poderosa de datos en un ambiente con recursos restringidos

  • 1. Cómo construir una plataforma poderosa de datos en un ambiente con recursos restringidos Ángel Alvarado Créditos: Sarah Thomason - UC Berkeley: análisis de “US census data” Fernando Bustos - iOS Dev: pruebas del código compartido en esta plática New York Times COVID19 data: https://www.nytimes.com/interactive/2020/us/coronavirus-us-cases.html. Unidos compartiendo y aprendiendo #SGVirtual
  • 2. Senior Engineer Ángel Alvarado Unidos compartiendo y aprendiendo #SGVirtual Data Engineer Volunteer & mentor
  • 3. Unidos compartiendo y aprendiendo #SGVirtual ● Nonprofit 10,000 miembros en USA ● 8 capítulos ● 50k migrates sin documentos ● Buscando abrir un capítulo en México: dulce@techqueria.org
  • 4. ¿Objetivo de esta platica? Qué aprendas cómo implementar una plataforma de datos de bajo costo con herramientas de software libre.
  • 5. Agenda ● ¿Por qué una plataforma de este tipo? ● Herramientas-Arquitectura ● ¿Cómo se ve? ● Flujo de trabajo ejemplo 1 ● Flujo de trabajo ejemplo 2 ● Consideraciones en Producción
  • 6. ¿Por qué crear una plataforma de este tipo? ● No tecnología propietaria y ni elevado costo. ● Privacidad de datos ● No hay $ para invertir en personal dedicado a ingeniería de datos ● Entry-level para desarrolladores web y móvil. ● Diferentes departamentos en tu empresa quieren analizar datos de manera sencilla. ● Equipos muy pequeños
  • 7. ¿Qué herramientas usa esta plataforma?
  • 9. ¿Cómo se ve en funcionamiento?
  • 10. ¿Cómo se ve en funcionamiento?
  • 11. Herramientas: ¿Por qué Docker? ● Ligero y facil de instalar ● Permite empaquetar en contenedores tus ● Facilita deployments
  • 12. Herramientas: ¿Por qué Rails y Mysql? ● Framework web común ● Gran comunidad ● Rails scheduler/jobs ● Database schema ● Migrations ● Mysql ● Base de datos relacional ● Escalable hasta cierto punto
  • 13. Herramientas: ¿Por qué Streamsets? ● Facilita Streaming & ETL de los datos ● Pensado en BigData & DataOps ● Despliega los pipelines en clusters
  • 14. , Herramientas: ¿Por qué Streamsets? ● Multiple conectores out-of-the-box ○ Apache Kafka, Hadoop, Spark ○ Flume, Mapr, Snowflake, tensorflow ○ Salesforce ● Open-Source ○ Conectores personalizados - Java ó Scala ó Python
  • 15. Herramientas: ¿Por qué Superset y Redis? ● Alivia la carga de la base de datos (Cache) ● Creada por ● Facilita la representación de los datos en D3.js ● Open source
  • 16. ¿Y el Big Data? ● Streamsets ○ Apache spark ○ Scala, Java ○ Apache Kafka ○ Druid-HDFS ○ ElasticSearch ○ Google Cloud ○ ... ● Scheduler ○ Rails+Streamsets ó Airflow+Streamsets ● Supersets ○ Druid, Drill, Impala, BigQuery ○ ElasticSearch y muchos más
  • 17. ¿Cuál es el flujo de desarrollo en esta plataforma? Caso de uso: Preparar plataforma de datos para permitir a investigadores y científicos analizar datos de Covid19 en US generados por el New York Times
  • 18. Paso 0: Haz un fork de la plataforma y levantala localmente
  • 19. Paso 1: Prepara tu “data lake”
  • 20. Paso 1: Prepara tu “data lake” Estructura de los datos https://github.com/AngelAlvarado/data-platform-with-open-source/pull/1/files
  • 21. Paso 1: Prepara tu “data lake” Estructura de los datos
  • 22. Paso 2: Genera tus 'data pipelines': ETL ó Streaming ● Datos Covid19 ● Los datos son https://github.com/AngelAlvarado/data-platform-with-open-source/pull/1/files
  • 23. Paso 2: 'data pipelines': data wrangling ● Datos Covid19 ● Los datos son https://github.com/AngelAlvarado/data-platform-with-open-source/pull/1/files
  • 24. Paso 2: 'data pipelines': Geocodes ● Datos Covid19
  • 25. Paso 2: 'data pipelines': streaming/batching ● Datos Covid19 ● Los datos son
  • 26. Paso 3: Genera una visualización de datos
  • 27. Paso 3: Genera una visualización de datos
  • 28. Paso 3: Genera un dashboard
  • 29. Paso 4: ¿Y el job scheduler? ● Los datos en NYT son actualizados cada mañana
  • 30. Paso 4: job scheduler
  • 31. ● Datos Covid19 del New York Time + Datos del censo de los estados unidos Flujo de trabajo:
  • 32. ● Datos Covid19 del New York Time + Datos del censo de los estados unidos Paso 1: Prepara tu “data lake”
  • 33. Paso 1: Prepara tu “data lake”
  • 34. Paso 2: Genera tus 'data pipelines': ETL ó Streaming
  • 35. Paso 2: Genera tus 'data pipelines': ETL ó Streaming
  • 36. Paso 3: Genera una visualización de datos
  • 37. Genera una visualización de datos más compleja con SQL lab.
  • 38. Consideraciones para enviar a producción/staging ● Infraestructura ○ Digital Ocean, AWS/GC ○ Streamsets cloud ○ Docker compose o desacoplar aún más ● Integración continua ○ Tests ● Alertas ● Logging ● Visualizaciones y/o dashboards ○ usuarios finales ● Científicos de datos/investigadores: jupyter notebook -> analisis
  • 39. Crea tu propia plataforma Github: https://github.com/AngelAlvarado/data-platform- with-open-source Créditos: Sarah Thomason - UC Berkeley: análisis de “US census data” Fernando Bustos - iOS Dev: pruebas del código compartido en esta plática New York Times COVID19 data: https://www.nytimes.com/interactive/2020/us/coronavirus-us-cases.html. Unidos compartiendo y aprendiendo #SGVirtual