Top Banner
Data Analysis for Startups
35

Data analysis for startups

Feb 23, 2017

Download

Data & Analytics

Restorando
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data analysis for startups

Data Analysis for Startups

Page 2: Data analysis for startups

¿Quién es este impostor?

jbarreneche@jbarreneche

Page 3: Data analysis for startups

Datos, datos y más datos…

Page 4: Data analysis for startups

Registro de operaciones

Page 5: Data analysis for startups

Sistemas para análisis de datos

Page 6: Data analysis for startups

Sistemas para análisis de datos

Page 7: Data analysis for startups

Sistemas para análisis de datos

20142013

20122011

20102009

Page 8: Data analysis for startups
Page 9: Data analysis for startups

Componentes principales

Aplicaciones de BIDatawarehouseSistema de

ETL

Page 10: Data analysis for startups

Sistema de ETLs

ETL

ETL

ETL

ETL

ETL

ETL

ETL

Page 11: Data analysis for startups

Framework de ETLPlanificación de la ejecución• Latencia de información

• Agenda de ejecución

• Grafo de dependencias

• Ejecución en paralelo/serie

Page 12: Data analysis for startups

Framework de ETLTolerancia a fallas• Idempotencia

• Reinicio desde un checkpoint

Page 13: Data analysis for startups

Framework de ETLAbstracciones de fuentes y destinos de información

ETL

ETL

ETL

ETL

Page 14: Data analysis for startups

Framework de ETLTesteo• Completitud

• Correcta transformación

• Integridad del procesamiento

Page 15: Data analysis for startups

Data Warehouse• Base de datos relacional

• MySQL• Postgresql

• MPP (Massive Parallel Processing)• Redshift, BigQuery, Vertica• Hadoop: Hive, Presto, Impala, Drill• Spark: SparkSQL

Page 16: Data analysis for startups

Diseño del schema

“Atomic data that has not been aggregated is the most expressive data”

Ralph Kimball (2013) The Data Warehouse Toolkit

Page 17: Data analysis for startups

Diseño del schema

Modelado dimensional

• Tablas de hechos

• Tablas de dimensiones

Page 18: Data analysis for startups

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

Page 19: Data analysis for startups

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

Page 20: Data analysis for startups
Page 21: Data analysis for startups

¿Qué nos queda?Aplicaciones

de BIDatawarehouseSistema de ETL

Page 22: Data analysis for startups

Aplicaciones de BIOpen source

• re:dash

• Oculus

Page 23: Data analysis for startups

Aplicaciones de BI• Chart.io (SaaS)

Page 24: Data analysis for startups

Análisis con SQL

id Name1 Montevideo2 Buenos Aires

date units amount region_id2014-10-

01 2 30 12014-10-

02 1 20 22014-10-

02 3 15 1

Sales Regions

Page 25: Data analysis for startups

Análisis con SQLConsultas básicas

SELECT SUM(sales.units) AS `Total Units`FROM sales

Total Units------------- 189593

SELECT sales.units, COUNT(sales.units) AS `Sales Count`FROM salesGROUP BY sales.units

Units | Sales Count-------+------------- 1 | 53323 2 | 2343 3 | 23

Page 26: Data analysis for startups

Análisis con SQLConsultas básicas

SELECT regions.name AS `Region Name`, SUM(sales.units) AS `Sales Total`FROM salesJOIN regions ON sales.region_id = regions.idGROUP BY regions.name

Region Name | Sales Total---------------+-------------Buenos Aires | 323Montevideo | 53323

Page 27: Data analysis for startups

Análisis con SQLConsultas de series de tiempo

select date(created_at) as day, count(1)from saleswhere 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)

Page 28: Data analysis for startups

Análisis con SQLConsultas de series de tiemposelect 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 datesleft join sales on date(sales.created_at) = dategroup by day order by day;

Page 29: Data analysis for startups

Análisis con SQL

Window functions

SELECT function() OVER ( [ PARTITION BY ... ] [ ROWS|RANGE BETWEEN ... ] )

Page 30: Data analysis for startups

Análisis con SQLSELECT regions.name, SUM(sales.units), SUM(sales.units) / (SUM(sales.units) over ())::float AS "% of sales"FROM salesINNER JOIN regions ON sales.region_id = regions.idGROUP BY 1

Region Name | Sales Total | % of sales---------------+-------------+-----------Buenos Aires | 323 | 0.006Montevideo | 53323 | 99.994

Window functions

Page 31: Data analysis for startups

Análisis con SQLCTE - Common Table Expresions

• CTEs son optimizadas por separado de la consulta

• Simplifican el armado de consultas en “etapas”

Page 32: Data analysis for startups
Page 33: Data analysis for startups

Más a hacer con SQL…

• Promedios acumulados

• Análisis de funnels

• Análisis de cohort

• Consultas sobre JSON data con HStore

Page 34: Data analysis for startups
Page 35: Data analysis for startups

¡¡Gracias!!