Esta presentación es el resultado de la ponencia presentada el día 28 de abril de 2023 en la Salmorejo Tech https://salmorejo.tech/2023/.
Con esta ponencia se buscaba explicar a una audiencia con conocimientos básicos de tecnología, las distintas herramientas que se pueden emplear para construir una plataforma de datos.
La ponencia comienza con una configuración sencilla, que prácticamente cualquier persona del mundo de la informática puede entender. Termina con una configuración compleja, donde sin entrar en muchos detalles, sí permite a la audiencia hacerse una idea de qué herramientas se requieren para implementar la solución.
bases-cye-2024(2) una sola descarga en base de feria de
Cómo construir tu propia data platform. From zero to hero.
1. How to build your own
data platform
(from zero to hero)
Viernes, 28 de Abril, 2023. Salmorejo Tech.
2. Agenda
Acerca de Adevinta
¿Qué es una plataforma de datos?
Mundo operacional vs mundo
analítico
¿Quienes son nuestros usuari@s?
Solución simple
Solución intermedia
Solución avanzada
Q&A
01
04
05
06
07
08
09
10
El equipo de la plataforma de datos
02
¿Quién soy yo?
03
3. Adevinta is a global online
classifieds specialist, operating
digital marketplaces in 11 countries
We provide technology-based services to connect buyers
with sellers and to facilitate transactions, from job offers
to real estate, cars, consumer goods and more.
Adevinta’s portfolio spans 25 digital products and
websites, covering one billion people and with around
three billion monthly visits.
4. Our Global
Tech Hubs
Barcelona Paris
Amsterdam Berlin
Our local brands are supported by Global Product &
Tech teams based in our Tech Hubs in Paris,
Barcelona, Berlin and Amsterdam.
We use cutting edge technology to build highly
scalable and customisable products, platforms and
services, which all of our marketplaces can use.
Our Tech Hubs are also home to our Global Teams,
who bring our marketplaces together and make sure
we’re all working towards our shared purpose.
9. Quienes conforman el equipo de data platform en
Adevinta Spain
● Christian Herrera - Data Engineer
● Enric Martinez - Data Engineer Enabler Lead
● Gustavo Martin - Data Engineer
● Ismael Arab - SRE
● Jaime Gonzalez - SRE
● Javier Carravilla - Data Engineer
● Joel Llacer - SRE
● Marc Planagumà - Data Platform & Governance Director
● Marta Diaz - Product Owner Data Platform
● Naveen Kumar - Data Engineer
● Roger Escuder - SRE
● Sergio Couto - Data Engineer
● Victor Colomé - Data Engineer
10. ¿Quién soy yo?
● Gustavo Martin Morcuende.
● Más de 10 años de experiencia como desarrollador de backend y frontend.
● También trabajé como arquitecto fullstack en diferentes empresas.
● Actualmente trabajo como Data Platform Engineer en Adevinta Spain. Cuando la
situación lo requiere me convierto en Data Platform Tech Lead.
● https://gumartinm.name/
● https://fosstodon.org/@gumartinm
12. ¿Qué es una plataforma de datos?
● Una plataforma de datos permite la adquisición, almacenamiento, preparación, reparto y gobierno de datos.
También añade una capa de seguridad para los usuari@s y aplicaciones.
https://www.mongodb.com/what-is-a-data-platform
● Una plataforma de datos es una solución completa para la ingestión, procesado, análisis y presentación de
datos generados por sistemas, procesos e infraestructuras de las organizaciones digitales modernas.
https://www.splunk.com/en_us/data-insider/what-is-a-data-platform.html
13. ¿Quiénes son nuestros usuari@s?
● Data Engineers
● Data Analysts
● Data Scientists
● Machine Learning Engineers
● Cualquier otra persona interesada en trabajar con datos
14. ¿Qué hace un Data Engineer?
Se enfoca en el diseño, construcción,
mantenimiento y gestión de infraestructuras de
datos.
● Implementación y gestión de sistemas de
almacenamiento de datos (bases de
datos, almacenamientos en la nube, etc,
etc)
● Asegurar que los datos estén limpios,
organizados y estructurados de manera
adecuada para que puedan ser utilizados
de manera efectiva.
¿Quiénes son nuestros usuari@s?
15. ¿Qué hace un Data Scientist?
Utiliza técnicas estadísticas y de análisis de datos
para extraer información útil con el objetivo de
mejorar la toma de decisiones y la eficacia de una
empresa.
Recopila, procesa y analiza datos para ayudar a las
empresas a tomar decisiones informadas. Su trabajo
es proporcionar información relevante y accionable
para impulsar el crecimiento y el éxito empresarial.
¿Qué hace un Data Analyst?
Desarrolla y optimiza modelos de aprendizaje automático
para resolver problemas empresariales complejos. Su
trabajo es construir sistemas que puedan aprender y
mejorar a medida que se exponen a más datos.
¿Qué hace un Machine Learning Engineer?
¿Quiénes son nuestros usuarios?
17. Solución simple Base de datos
● postgresql, mysql, oracle, etc, etc
● esquemas
● tablas
● permisos
Aplicaciones
● Leen tablas de la base de datos, realizan una
transformación y escriben los resultados en otras
tablas.
● ETL, extract, transform, load
Dashboards
● Diagramas donde se muestran datos de interés
Machine learning
● MLFlow
● Kubeflow
18. Solución simple
● Base de datos, por ejemplo
PostgreSQL
● Crear esquemas y tablas, modelo
entidad-relación
CREATE TABLE ESTUDIANTES(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL
);
● Asignar permisos
GRANT SELECT ON ESTUDIANTES TO
analistas_de_datos;
● Gobernanza: definición de estándares,
nombres, etc.
● Aplicaciones, por ejemplo
Apache Airflow
● Dashboards: Qlik, Tableau,
etc
● Machine Learning, por
ejemplo Kubeflow
22. Solución intermedia
Consumo
● aplicaciones para la extracción de datos del
mundo operacional
Data Warehouse
● AWS Redshift, BigQuery
● esquemas
● tablas
● permisos
Aplicaciones
● Leen tablas del data warehouse, realizan una
transformación y escriben los resultados en
otras tablas.
● ETL, extract, transform, load
Dashboards
● Diagramas donde se muestran datos de interés
Machine learning
● MLFlow
● Kubeflow
23. Solución intermedia
¿Qué es un Data Warehouse?
● Es una base de datos centralizada que integra muchas fuentes de datos.
● Permite aislar los sistemas operacionales de los analíticos.
● Queries lanzadas desde el sistema analítico no afectan al operacional.
● Permite reorganizar la información de forma que sea más fácilmente analizable.
● Proporciona un único modelo de datos.
● Permite mantener un histórico de información que el operacional, por no necesitarla,
puede borrar.
● Permite integrar múltiples fuentes de datos en un único lugar.
24. Solución intermedia
¿Qué es un Data Warehouse?
● Modelado específico, esquema en estrella.
● Compuesto de tablas de hechos y de dimensiones.
Tabla de hechos: sucesión de hechos, alto número de registros.
Tabla de dimensiones: descripción de los hechos, pocos registros y muchos atributos.
● Permite la optimización de las queries en modo lectura.
● Permite queries más simples, sin necesidad de múltiples JOINs como podría suceder en un modelo
normalizado de entidad-relación.
● Permisos vía GRANTs en tablas.
25. Solución intermedia
● Base de datos, por ejemplo
AWS Redshift
● Crear esquemas y tablas (hechos y
dimensiones)
CREATE TABLE HECHOS_ESTUDIANTES(
EDAD INT NOT NULL,
TIEMPO INT NOT NULL,
);
● Asignar permisos
GRANT SELECT ON HECHOS_ESTUDIANTES TO
analistas_de_datos;
● Gobernanza: definición de estándares,
nombres, etc.
● Aplicaciones, por ejemplo
Apache Airflow
● Dashboards: Qlik, Tableau,
etc
● Machine Learning, por
ejemplo Kubeflow
29. Solución avanzada
Consumo
● aplicaciones para la extracción de datos del
mundo operacional
Data Warehouse
● AWS Redshift, BigQuery
● esquemas
● tablas
● permisos
Aplicaciones
● Leen tablas del data warehouse, realizan una
transformación y escriben los resultados en
otras tablas.
● ETL, extract, transform, load
Dashboards
● Diagramas donde se muestran datos de interés
Data Lake o Lakehouse
● AWS S3
Machine learning
● MLFlow
● Kubeflow
30. Solución avanzada
¿Qué es un Data Lake o Lakehouse?
● Es un sistema de almacenamiento de datos masivo y barato.
● Se utiliza para almacenar grandes cantidades de información en su formato nativo, sin
necesidad de que los datos estén estructurados de una manera particular (JSON, XML,
logs, etc)
● Los datos pueden provenir de diferentes fuentes, bases de datos, sensores, registros de
máquinas, APIs, etc.
● Permite aislar los sistemas operacionales de los analíticos.
● Se utilizan sistemas distribuidos como AWS S3 de Amazon o HDFS (sistema de archivos
de Hadoop)
31. Solución avanzada
¿Qué es un Data Lake o Lakehouse implementado en AWS S3?
● En Adevinta, implementado en AWS S3 (en Amazon Cloud)
● Puede verse como un sistema de archivos con carpetas
● ¡Pero no es un sistema de archivos!
● Los archivos se llaman objetos.
● Podemos usarlo mediante el Hadoop File System, Apache Spark, etc, etc.
● Permisos vía IAM Roles.
32. Solución avanzada
● Base de datos, por ejemplo
AWS Redshift
● Crear esquemas y tablas (hechos y
dimensiones)
CREATE TABLE HECHOS_ESTUDIANTES(
EDAD INT NOT NULL,
TIEMPO INT NOT NULL,
);
● Asignar permisos
GRANT SELECT ON HECHOS_ESTUDIANTES TO
analistas_de_datos;
● Gobernanza: definición de estándares,
nombres, etc.
● Aplicaciones, por ejemplo
Apache Airflow, Apache Spark
● Dashboards: Qlik, Tableau,
etc
● Machine Learning, por
ejemplo Kubeflow
● Data Lake, AWS S3