SlideShare una empresa de Scribd logo
1 de 35
Data Analysis for
Startups
¿Quién es este impostor?
jbarreneche
@jbarreneche
Datos, datos y más datos…
Registro de operaciones
Sistemas para análisis de
datos
Sistemas para análisis de
datos
Sistemas para análisis de
datos
2014
2013
2012
2011
2010
2009
Componentes principales
Aplicaciones de
BI
Datawarehouse
Sistema de
ETL
Sistema de ETLs
ETL
ETL
ETL
ETL
ETL
ETL
ETL
Framework de ETL
Planificación de la ejecución
• Latencia de información
• Agenda de ejecución
• Grafo de dependencias
• Ejecución en paralelo/serie
Framework de ETL
Tolerancia a fallas
• Idempotencia
• Reinicio desde un checkpoint
Framework de ETL
Abstracciones de fuentes y destinos de
información
ETL
ETL
ETL
ETL
Framework de ETL
Testeo
• Completitud
• Correcta transformación
• Integridad del procesamiento
Data Warehouse
• Base de datos relacional
• MySQL
• Postgresql
• MPP (Massive Parallel Processing)
• Redshift, BigQuery, Vertica
• Hadoop: Hive, Presto, Impala, Drill
• Spark: SparkSQL
Diseño del schema
“Atomic data that has not been aggregated is the most
expressive data”
Ralph Kimball (2013) The Data Warehouse Toolkit
Diseño del schema
Modelado dimensional
• Tablas de hechos
• Tablas de dimensiones
Tablas de hechos
• Relación 1 a 1 de eventos real con entrada en la
tabla
• Columnas numéricas
• Relaciones con las tablas de dimensiones
• No registrar las no ocurrencias
Tablas de dimensiones
• Contienen el contexto asociado al evento medido
• Describen el “Qué, Quién, Cómo, Cuándo…”
• Normalmente poseen una clave única
• Fuente principal de los filtros, grupos y etiquetas en
las consultas
¿Qué nos queda?
Aplicaciones
de BI
Datawarehouse
Sistema de
ETL
Aplicaciones de BI
Open source
• re:dash
• Oculus
Aplicaciones de BI
• Chart.io (SaaS)
Análisis con SQL
id Name
1 Montevideo
2 Buenos Aires
date units amount region_id
2014-10-01 2 30 1
2014-10-02 1 20 2
2014-10-02 3 15 1
Sales Regions
Análisis con SQL
Consultas básicas
SELECT
SUM(sales.units) AS `Total Units`
FROM
sales
Total Units
-------------
189593
SELECT
sales.units, COUNT(sales.units) AS `Sales Count`
FROM
sales
GROUP BY
sales.units
Units | Sales Count
-------+-------------
1 | 53323
2 | 2343
3 | 23
Análisis con SQL
Consultas básicas
SELECT
regions.name AS `Region Name`, SUM(sales.units) AS
`Sales Total`
FROM sales
JOIN regions ON sales.region_id = regions.id
GROUP BY
regions.name
Region Name | Sales Total
---------------+-------------
Buenos Aires | 323
Montevideo | 53323
Análisis con SQL
Consultas de series de tiempo
select date(created_at) as day, count(1)
from sales
where created_at > now() - interval '30 day'
group by day order by day;
day | count
------------+-------
2014-03-12 | 5
2014-03-13 | 1
2014-03-19 | 6
2014-03-20 | 4
2014-03-21 | 1
2014-03-24 | 1
2014-04-08 | 2
2014-04-09 | 3
(8 rows)
Análisis con SQL
Consultas de series de tiempo
select date(d) as day,
count(sales.id)
from generate_series(
current_date - interval '30 day',
current_date, '1 day'
) d
left join sales on
date(sales.created_at) = d
group by day order by day;
day | count
------------+-------
2014-03-12 | 5
2014-03-13 | 1
2014-03-14 | 0
2014-03-15 | 0
2014-03-16 | 0
2014-03-17 | 0
2014-03-18 | 0
2014-03-19 | 6
2014-03-20 | 4
2014-03-21 | 1
2014-03-22 | 0
2014-03-23 | 0
2014-03-24 | 1
...
(31 rows)
select dates.date as day,
count(sales.id)
from dates
left join sales on
date(sales.created_at) = date
group by day order by day;
Análisis con SQL
Window functions
SELECT function() OVER (
[ PARTITION BY ... ]
[ ROWS|RANGE BETWEEN ... ]
)
Análisis con SQL
SELECT
regions.name,
SUM(sales.units),
SUM(sales.units) / (SUM(sales.units) over ())::float AS "% of sales"
FROM sales
INNER JOIN regions ON sales.region_id = regions.id
GROUP BY 1
Region Name | Sales Total | % of sales
---------------+-------------+-----------
Buenos Aires | 323 | 0.006
Montevideo | 53323 | 99.994
Window functions
Análisis con SQL
CTE - Common Table Expresions
• CTEs son optimizadas por separado de la consulta
• Simplifican el armado de consultas en “etapas”
Más a hacer con SQL…
• Promedios acumulados
• Análisis de funnels
• Análisis de cohort
• Consultas sobre JSON data con HStore
¡¡Gracias!!

Más contenido relacionado

Similar a Data analysis for startups

Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000Salvador Ramos
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosJoseph Lopez
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSpanishPASSVC
 
BusinessIntelligence Introduction
BusinessIntelligence IntroductionBusinessIntelligence Introduction
BusinessIntelligence Introductionandres hurtado
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analyticsSolidQ
 
Big Data Mining with Mahout
Big Data Mining with MahoutBig Data Mining with Mahout
Big Data Mining with MahoutSolidQ
 
074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tdaGeneXus
 
Implementación de inteligencia de Negocios paso a paso (Business Intelligence)
Implementación de inteligencia de Negocios paso a paso (Business Intelligence)Implementación de inteligencia de Negocios paso a paso (Business Intelligence)
Implementación de inteligencia de Negocios paso a paso (Business Intelligence)DANIEL VENTURA
 
Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016Raul Martin Sarachaga Diaz
 
Datawarehouse
DatawarehouseDatawarehouse
Datawarehousedagmalu
 
Introduccion a las Bodegas de Datos
Introduccion a las Bodegas de DatosIntroduccion a las Bodegas de Datos
Introduccion a las Bodegas de DatosJoseph Lopez
 
Sistemas de Soporte a las Decisiones.pptx
Sistemas de Soporte a las Decisiones.pptxSistemas de Soporte a las Decisiones.pptx
Sistemas de Soporte a las Decisiones.pptxJosAlumno
 
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data VaultConstruyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data VaultSoftware Guru
 
Analisis multidemensional.pdf
Analisis multidemensional.pdfAnalisis multidemensional.pdf
Analisis multidemensional.pdfmgl27
 

Similar a Data analysis for startups (20)

Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
 
SQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de DatosSQL Server 2014 y La Plataforma de Datos
SQL Server 2014 y La Plataforma de Datos
 
Sql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datosSql server 2014 y la plataforma de datos
Sql server 2014 y la plataforma de datos
 
BusinessIntelligence Introduction
BusinessIntelligence IntroductionBusinessIntelligence Introduction
BusinessIntelligence Introduction
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analytics
 
Big Data Mining with Mahout
Big Data Mining with MahoutBig Data Mining with Mahout
Big Data Mining with Mahout
 
074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda074 bi agil + saa s + cloud = tda
074 bi agil + saa s + cloud = tda
 
Implementación de inteligencia de Negocios paso a paso (Business Intelligence)
Implementación de inteligencia de Negocios paso a paso (Business Intelligence)Implementación de inteligencia de Negocios paso a paso (Business Intelligence)
Implementación de inteligencia de Negocios paso a paso (Business Intelligence)
 
Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016Implementando un Data Mart con SQL Server 2016
Implementando un Data Mart con SQL Server 2016
 
Estimacion agil proyectos Software Scrum
Estimacion agil proyectos Software ScrumEstimacion agil proyectos Software Scrum
Estimacion agil proyectos Software Scrum
 
Estimacion agil proyectos Software Scrum
Estimacion agil proyectos Software ScrumEstimacion agil proyectos Software Scrum
Estimacion agil proyectos Software Scrum
 
Datawarehouse
DatawarehouseDatawarehouse
Datawarehouse
 
Introduccion a las Bodegas de Datos
Introduccion a las Bodegas de DatosIntroduccion a las Bodegas de Datos
Introduccion a las Bodegas de Datos
 
Data warehouse in R
Data warehouse in RData warehouse in R
Data warehouse in R
 
Sistemas de Soporte a las Decisiones.pptx
Sistemas de Soporte a las Decisiones.pptxSistemas de Soporte a las Decisiones.pptx
Sistemas de Soporte a las Decisiones.pptx
 
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data VaultConstruyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
 
Analisis multidemensional.pdf
Analisis multidemensional.pdfAnalisis multidemensional.pdf
Analisis multidemensional.pdf
 

Último

AREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoAREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoSantiagoRodriguezLoz
 
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILPREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
LÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdf
LÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdfLÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdf
LÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdfFranyeskaMagallanes
 
SESIONES ABRIL para sexto grado de nivel primario.doc
SESIONES ABRIL para sexto grado de nivel primario.docSESIONES ABRIL para sexto grado de nivel primario.doc
SESIONES ABRIL para sexto grado de nivel primario.docrobinsonsjuan
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024eluniversocom
 
1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf
1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf
1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdfGabrielaPeraza8
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfMarxx4
 
TALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptx
TALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptxTALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptx
TALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptxDiegoRuizRios
 
2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx
2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx
2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptxceliajessicapinedava
 
Politicas publicas un balance necesario Bolivia
Politicas publicas un balance necesario BoliviaPoliticas publicas un balance necesario Bolivia
Politicas publicas un balance necesario BoliviaAlfredo Zaconeta
 
TABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdf
TABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdfTABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdf
TABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdfMartinRodriguezchave1
 
Secuencia Uso del calendario. Segundo ciclo.docx
Secuencia Uso del calendario. Segundo ciclo.docxSecuencia Uso del calendario. Segundo ciclo.docx
Secuencia Uso del calendario. Segundo ciclo.docxcandevillarruel
 
Civilizacióne Precolonbinas Resumen pdf.
Civilizacióne Precolonbinas Resumen pdf.Civilizacióne Precolonbinas Resumen pdf.
Civilizacióne Precolonbinas Resumen pdf.gpoiquicuellar
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotessald071205mmcnrna9
 
Países por velocidad de sus misiles hipersónicos (2024).pdf
Países por velocidad de sus misiles hipersónicos  (2024).pdfPaíses por velocidad de sus misiles hipersónicos  (2024).pdf
Países por velocidad de sus misiles hipersónicos (2024).pdfJC Díaz Herrera
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOReluniversocom
 
🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf
🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf
🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdfNellyCastillo54
 
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO    ..pdfMAPA DE RIESGOS DE UN ZOOLOGICO    ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdfCamilaArzate2
 
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfPREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfeluniversocom
 

Último (20)

AREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoAREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
 
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILPREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
 
LÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdf
LÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdfLÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdf
LÍNEA DE TIEMPO- ANTROPOLOGIA jsjudhdv.pdf
 
SESIONES ABRIL para sexto grado de nivel primario.doc
SESIONES ABRIL para sexto grado de nivel primario.docSESIONES ABRIL para sexto grado de nivel primario.doc
SESIONES ABRIL para sexto grado de nivel primario.doc
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
 
1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf
1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf
1INTERMEDIO-HI-T16-ONCENIO DE LEGUÍA.pdf
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
 
TALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptx
TALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptxTALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptx
TALLER DE PLAN DE SOPORTE SOCIOEMOCIONAL.pptx
 
2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx
2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx
2.8 CRONOGRAMA TALLER DE INVESTIGACION 1 .pptx
 
Politicas publicas un balance necesario Bolivia
Politicas publicas un balance necesario BoliviaPoliticas publicas un balance necesario Bolivia
Politicas publicas un balance necesario Bolivia
 
TABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdf
TABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdfTABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdf
TABLERO-DE-CONTROL-SOFOMES-ENR_08012024.pdf
 
Secuencia Uso del calendario. Segundo ciclo.docx
Secuencia Uso del calendario. Segundo ciclo.docxSecuencia Uso del calendario. Segundo ciclo.docx
Secuencia Uso del calendario. Segundo ciclo.docx
 
Civilizacióne Precolonbinas Resumen pdf.
Civilizacióne Precolonbinas Resumen pdf.Civilizacióne Precolonbinas Resumen pdf.
Civilizacióne Precolonbinas Resumen pdf.
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotes
 
Países por velocidad de sus misiles hipersónicos (2024).pdf
Países por velocidad de sus misiles hipersónicos  (2024).pdfPaíses por velocidad de sus misiles hipersónicos  (2024).pdf
Países por velocidad de sus misiles hipersónicos (2024).pdf
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
 
🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf
🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf
🦄💫4° VINCULACIÓN CONTENIDOS CON LOS LTG.pdf
 
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO    ..pdfMAPA DE RIESGOS DE UN ZOOLOGICO    ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdf
 
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfPREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
 

Data analysis for startups

  • 2. ¿Quién es este impostor? jbarreneche @jbarreneche
  • 3. Datos, datos y más datos…
  • 7. Sistemas para análisis de datos 2014 2013 2012 2011 2010 2009
  • 8.
  • 11. Framework de ETL Planificación de la ejecución • Latencia de información • Agenda de ejecución • Grafo de dependencias • Ejecución en paralelo/serie
  • 12. Framework de ETL Tolerancia a fallas • Idempotencia • Reinicio desde un checkpoint
  • 13. Framework de ETL Abstracciones de fuentes y destinos de información ETL ETL ETL ETL
  • 14. Framework de ETL Testeo • Completitud • Correcta transformación • Integridad del procesamiento
  • 15. Data Warehouse • Base de datos relacional • MySQL • Postgresql • MPP (Massive Parallel Processing) • Redshift, BigQuery, Vertica • Hadoop: Hive, Presto, Impala, Drill • Spark: SparkSQL
  • 16. Diseño del schema “Atomic data that has not been aggregated is the most expressive data” Ralph Kimball (2013) The Data Warehouse Toolkit
  • 17. Diseño del schema Modelado dimensional • Tablas de hechos • Tablas de dimensiones
  • 18. Tablas de hechos • Relación 1 a 1 de eventos real con entrada en la tabla • Columnas numéricas • Relaciones con las tablas de dimensiones • No registrar las no ocurrencias
  • 19. Tablas de dimensiones • Contienen el contexto asociado al evento medido • Describen el “Qué, Quién, Cómo, Cuándo…” • Normalmente poseen una clave única • Fuente principal de los filtros, grupos y etiquetas en las consultas
  • 20.
  • 21. ¿Qué nos queda? Aplicaciones de BI Datawarehouse Sistema de ETL
  • 22. Aplicaciones de BI Open source • re:dash • Oculus
  • 23. Aplicaciones de BI • Chart.io (SaaS)
  • 24. Análisis con SQL id Name 1 Montevideo 2 Buenos Aires date units amount region_id 2014-10-01 2 30 1 2014-10-02 1 20 2 2014-10-02 3 15 1 Sales Regions
  • 25. Análisis con SQL Consultas básicas SELECT SUM(sales.units) AS `Total Units` FROM sales Total Units ------------- 189593 SELECT sales.units, COUNT(sales.units) AS `Sales Count` FROM sales GROUP BY sales.units Units | Sales Count -------+------------- 1 | 53323 2 | 2343 3 | 23
  • 26. Análisis con SQL Consultas básicas SELECT regions.name AS `Region Name`, SUM(sales.units) AS `Sales Total` FROM sales JOIN regions ON sales.region_id = regions.id GROUP BY regions.name Region Name | Sales Total ---------------+------------- Buenos Aires | 323 Montevideo | 53323
  • 27. Análisis con SQL Consultas de series de tiempo select date(created_at) as day, count(1) from sales where created_at > now() - interval '30 day' group by day order by day; day | count ------------+------- 2014-03-12 | 5 2014-03-13 | 1 2014-03-19 | 6 2014-03-20 | 4 2014-03-21 | 1 2014-03-24 | 1 2014-04-08 | 2 2014-04-09 | 3 (8 rows)
  • 28. Análisis con SQL Consultas de series de tiempo select date(d) as day, count(sales.id) from generate_series( current_date - interval '30 day', current_date, '1 day' ) d left join sales on date(sales.created_at) = d group by day order by day; day | count ------------+------- 2014-03-12 | 5 2014-03-13 | 1 2014-03-14 | 0 2014-03-15 | 0 2014-03-16 | 0 2014-03-17 | 0 2014-03-18 | 0 2014-03-19 | 6 2014-03-20 | 4 2014-03-21 | 1 2014-03-22 | 0 2014-03-23 | 0 2014-03-24 | 1 ... (31 rows) select dates.date as day, count(sales.id) from dates left join sales on date(sales.created_at) = date group by day order by day;
  • 29. Análisis con SQL Window functions SELECT function() OVER ( [ PARTITION BY ... ] [ ROWS|RANGE BETWEEN ... ] )
  • 30. Análisis con SQL SELECT regions.name, SUM(sales.units), SUM(sales.units) / (SUM(sales.units) over ())::float AS "% of sales" FROM sales INNER JOIN regions ON sales.region_id = regions.id GROUP BY 1 Region Name | Sales Total | % of sales ---------------+-------------+----------- Buenos Aires | 323 | 0.006 Montevideo | 53323 | 99.994 Window functions
  • 31. Análisis con SQL CTE - Common Table Expresions • CTEs son optimizadas por separado de la consulta • Simplifican el armado de consultas en “etapas”
  • 32.
  • 33. Más a hacer con SQL… • Promedios acumulados • Análisis de funnels • Análisis de cohort • Consultas sobre JSON data con HStore
  • 34.

Notas del editor

  1. Activo importante: Información 2 usos: Registro de operaciones Análisis para la toma de decisiones
  2. Enfocados en procesar de manera rápida y eficiente No mantienen historia
  3. enfocados en: observar como está operando evaluar rendimiento
  4. Ejemplos…
  5. Necesitan: historico preciso contexto completo
  6. Mi experiencia… Proyecto faraónico pero, con un poco de guía y algunos tips
  7. Arquitectura simple pero que cubre las necesidades más comunes Fuentes => ETLs -> DW <- Apps de BI
  8. Muchas ETLS Necesidades y problemas similares => FW ETL Existentes o Construir una a medida
  9. Qué esperamos del FW? Planificación: (+ que cuándo corren) Latencia Agenda Grafo de dependencias Ejecución paralelo o serie
  10. Shit happen Necesitamos seguridad de que podemos reprocesar Idempotencia Reinicio desde checkpoint
  11. Multiples funetes y destinos… Algunas de nuestras fuentes son…
  12. bullets Our case
  13. RDBMS: bajo costo solución conocida gran soporte de apps BI Escalarlas por arriba de TB $$ OJO no usar DB de App MPP, amplia variedad Complejidad de Devops Escalamiento horizontal Ideal p/ TB FW de ETL Ntro caso
  14. Clave del éxito del DW Entendible por usuarios Explicar la frase
  15. Múltiples opciones Mod dimensional aplica en la gran mayoría de casos
  16. * Relación 1 a 1 de eventos real con entrada en la tabla * Columnas numéricas (raramente existen hechos que sean realmente texto, los hechos suelen ser se vendió n unidades del item X al precio $) * Relaciones con las tablas de dimensiones * No se registran las no ocurrencias (es decir, no llenar filas con ceros)
  17. * Contienen el contexto asociado al evento medido * Describen el Qué, Quién, y Cómo * Normalmente poseen una clave única (a través de la cual son referenciados desde las tablas de hechos) * Fuente principal de los filtros, grupos y etiquetas en las consultas
  18. Obtenemos estrella
  19. Como para completar el recorrido, quería mencionar algunas opciones de herramientas de BI.
  20. Opción SaaS Facil armado de Query