SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Inteligencia de Negocios en PostgreSQL 
http://www.PostgreSQL.org/ 
Álvaro Herrera 
alvherre@2ndQuadrant.com 
2ndQuadrant Ltd. 
http://www.2ndQuadrant.com/ 
Postgres Day Campinas 2014 
http://pgdaycampinas.com.br/ 
10 de septiembre de 2014
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Inteligencia de Negocios en 
PostgreSQL 
The research leading to these results has received 
funding from the European Union’s 
Seventh Framework Programme (FP7/2007-2013) 
under grant agreement n° 318633
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
¿Qué es “inteligencia de negocios”? 
“Inteligencia de negocios”: traducción del término 
Business Intelligence (BI) 
”habilidades, tecnologías, aplicaciones y prácticas que se 
utilizan para ayudar a una organización a adquirir una mejor 
comprensión de su contexto comercial”
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
¿Qué es “inteligencia de negocios”? (2) 
Wikipedia: 
“Transformation of raw data into meaningful and useful 
information for business analysis purposes” 
(Transformación de datos crudos en información significativa y útil 
para propósitos del análisis de negocios)
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
¿Qué es “inteligencia de negocios”? (2) 
Wikipedia: 
“Transformation of raw data into meaningful and useful 
information for business analysis purposes” 
(Transformación de datos crudos en información significativa y útil 
para propósitos del análisis de negocios) 
En otras palabras: 
Utilización de datos sobre el pasado y el presente para tomar 
mejores decisiones en el futuro.
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Inteligencia de negocios: Objetivos 
Requisito 
• Tenemos los datos 
• (idealmente muchos datos)
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Inteligencia de negocios: Objetivos 
Requisito 
• Tenemos los datos 
• (idealmente muchos datos) 
Objetivos: 
• Queremos explorar estos datos ... 
• ... y descubrir el conocimiento escondido en ellos
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Inteligencia de negocios: Arquitectura de tres capas
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
¿En qué ayuda Postgres? 
En esta arquitectura de tres capas: 
1 Cuarentena y carga de datos (stage and load) 
2 Almacenes de datos (data warehouse, data marts) 
3 Ejecución de consultas (analysis)
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Cuarentena y Carga de datos
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Herramientas ETL 
• Extract – Transform – Load 
• Cargar datos externos en variedad de formatos 
• Lidiar con errores e inconsistencias 
• Manipular los datos antes de insertarlos 
• PGLoader: http://www.pgloader.io
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Aproximación ELT 
• Extract – Load – Transform 
• El proceso de transformación se hace dentro de la BD 
• La transformación puede usar herramientas de 
PostgreSQL
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Conectores de datos externos 
• Foreign Data Wrappers (FDW) 
• Conectar, desde Postgres, a servidores de datos remotos 
• (En realidad, a cualquier cosa que provea datos) 
• El mecanismo es extensible: puedes escribir el tuyo 
• http://wiki.postgresql.org/wiki/FDW
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Almacenes de Datos
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Soporte extensivo JSON 
• Tipos de datos JSON (9.2) y JSONB (9.4) 
• Almacenamiento semi-estructurado 
• Facilita el acceso a datos de proveniencia no relacional 
• Indexable (índices GIN, GiST)
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Vistas Materializadas 
• Materialized views 
• Útil para data-mart 
• tiene otros usos también 
• Permite generar “resúmenes” de datos que pueden ser 
consultados repetidamente 
• Mejora el rendimiento en consultas repetitivas sobre los 
mismos resúmenes 
• Simplifica refresco de vistas resúmenes según 
necesidades de la organización
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Tables “unlogged” 
• UNLOGGED TABLES 
• Tablas que no son respaldadas en WAL 
• Mejora en rendimiento de escrituras por ahorrar tráfico 
WAL 
• Desventaja es perder datos en caso de caída
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Tables “unlogged” 
• UNLOGGED TABLES 
• Tablas que no son respaldadas en WAL 
• Mejora en rendimiento de escrituras por ahorrar tráfico 
WAL 
• Desventaja es perder datos en caso de caída 
• En un DWH o data mart no importa 
• los datos pueden volver a crearse 
• es un riesgo aceptable porque las caídas son infrecuentes 
• o deberían serlo
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Tables “unlogged” 
• UNLOGGED TABLES 
• Tablas que no son respaldadas en WAL 
• Mejora en rendimiento de escrituras por ahorrar tráfico 
WAL 
• Desventaja es perder datos en caso de caída 
• En un DWH o data mart no importa 
• los datos pueden volver a crearse 
• es un riesgo aceptable porque las caídas son infrecuentes 
• o deberían serlo 
• CREATE UNLOGGED MATERIALIZED VIEW
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Hot Standby 
• Permite tener una copia de datos en un servidor separado 
• ... el cual puede ejecutar consultas de sólo lectura 
• Para ejecutar reportes 
• sin sobrecargar el servidor en operación OLTP 
• Puede tener réplicas “en cascada” 
• distribuir geográficamente 
• high availability 
• tomar respaldos pg_dump
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
En desarrollo: UDR 
• Uni-Directional Replication (replicación uni-direccional) 
• Replicación a nivel lógico, no físico 
• como Slony, Londiste 
• Permite hacer cambios en la réplica 
• a diferencia de hot standby 
• tablas temporales 
• índices adicionales 
• Proyecto en desarrollo de 2ndQuadrant 
• Basado en BDR: http://wiki.postgresql.org/wiki/BDR
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Ejecución de Consultas
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Funciones y Procedimientos en la base 
• Muchos procesos se pueden ejecutar en la base 
• Ahorra tráfico de datos 
• Programas definidos por el usuario ... 
• implementar lógica de negocio 
• ... en una variedad de lenguajes 
• Mantener el conocimiento en la base 
• Permite reutilizar en múltiples herramientas
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
MADlib 
• http://madlib.net 
• MADlib: Big Data Machine Learning in SQL for Data 
Scientists 
• Powerful analytics for Big Data 
• También PL/R 
• análisis estadístico, etc 
• visualizaciones de datos (gráficos, etc)
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
En desarrollo: Aggregate pushdown 
• Ejecuta la agregación más cerca del recorrido de la tabla 
• Permite ahorrar movimiento de datos a través de nodos de 
ejecución que no lo necesitan
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Bitmap index scan 
• Recorrer un índice, generar un bitmap 
• El bitmap permite recorrer la tabla en orden físico 
• El bitmap puede ser operado con otro bitmap 
• de otro o del mismo índice
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Bitmap index scan 
• Recorrer un índice, generar un bitmap 
• El bitmap permite recorrer la tabla en orden físico 
• El bitmap puede ser operado con otro bitmap 
• de otro o del mismo índice
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Funciones de ventana deslizante 
• Permiten escribir consultas complejas 
• Análisis de conjuntos de datos 
SELECT departamento, empleado_id, salario, 
avg(salario) OVER (PARTITION BY departamento) AS a, 
rank() OVER (PARTITION BY departamento 
ORDER BY salario DESC) AS r 
FROM salario_empleados 
ORDER BY r
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
En desarrollo: BRIN indexes 
• (Anteriormente llamados Minmax indexes) 
• Índices para acelerar recorridos secuenciales 
• Guardar valores min() y max() de la columna, para grupos 
de páginas 
• Excluir grupos de páginas del recorrido si el WHERE no 
coincide con valores min/max 
• Puede mejorar 10x – 100x tiempo de consulta 
• Proyecto de 2ndQuadrant para AXLE
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
En desarrollo: BRIN indexes 
• (Anteriormente llamados Minmax indexes) 
• Índices para acelerar recorridos secuenciales 
• Guardar valores min() y max() de la columna, para grupos 
de páginas 
• Excluir grupos de páginas del recorrido si el WHERE no 
coincide con valores min/max 
• Puede mejorar 10x – 100x tiempo de consulta 
• Proyecto de 2ndQuadrant para AXLE 
• Podría usarse para geometry también: guardaría el 
bounding box 
• unas 200 líneas de código extra 
• También para bloom filters
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
En desarrollo: Almacenamiento “columnar” 
• Forma distinta de almacenar datos a nivel físico 
• Permite recorrer una misma columna para muchos 
registros más rápido 
• Optimización útil en DWH 
• agregaciones de muchos datos en menos tiempo 
• Puede mejorar 4x – 20x tiempo de consultas 
• Proyecto de 2ndQuadrant para AXLE
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
En desarrollo: Freeze Map 
• VACUUM debe recorrer toda la base cada cierto tiempo 
• freeze de registros 
• Una vez es necesario, de ahí en adelante es pérdida de 
tiempo 
• Freeze map es infrastructura para evitar freezing inútil 
• Ahorra costo de lectura/escritura 
• Proyecto de 2ndQuadrant para AXLE
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Otros proyectos en desarrollo en 9.5 
• Procesamiento de consultas en GPU 
• GROUPING SETS
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Preguntas 
¿Preguntas?
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
Addendum: Revisión de parches 
• Por favor contribuir 
• pgsql-hackers@postgresql.org 
• http://www.postgresql.org/list/pgsql-hackers/ 
• http://commitfest.postgresql.org/
Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas 
El proyecto AXLE 
Advanced Analytics for eXtremely Large European Databases 
http://www.axleproject.eu/ 
The research leading to these results has received 
funding from the European Union’s 
Seventh Framework Programme (FP7/2007-2013) 
under grant agreement n° 318633

Más contenido relacionado

Destacado

CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...PGDay Campinas
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
 
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas
 
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas
 
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágilinstructbr
 
PGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRoutingPGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRoutingJairo de Almeida
 
Análise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLAnálise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLMatheus de Oliveira
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedzDextra
 
PostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyPostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyJuliano Atanazio
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...PGDay Campinas
 
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Matheus Espanhol
 
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe PereiraPgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe PereiraPGDay Campinas
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open sourceMatheus Espanhol
 
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di CiurcioDevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di CiurcioPGDay Campinas
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datosGusttavo Nipas
 

Destacado (19)

pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
 
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
 
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ Cloud
 
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágil
 
PGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRoutingPGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRouting
 
Análise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLAnálise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQL
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedz
 
PostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyPostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords Safely
 
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
 
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
 
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe PereiraPgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
PgBouncer: Pool, Segurança e Disaster Recovery | Felipe Pereira
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di CiurcioDevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
 
10 sistemas gestores de base de datos
10 sistemas gestores de base de datos10 sistemas gestores de base de datos
10 sistemas gestores de base de datos
 

Último

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 

Último (12)

Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Inteligencia de Negocios en PostgreSQL - Alvaro Herrera

  • 1. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Inteligencia de Negocios en PostgreSQL http://www.PostgreSQL.org/ Álvaro Herrera alvherre@2ndQuadrant.com 2ndQuadrant Ltd. http://www.2ndQuadrant.com/ Postgres Day Campinas 2014 http://pgdaycampinas.com.br/ 10 de septiembre de 2014
  • 2. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Inteligencia de Negocios en PostgreSQL The research leading to these results has received funding from the European Union’s Seventh Framework Programme (FP7/2007-2013) under grant agreement n° 318633
  • 3. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas ¿Qué es “inteligencia de negocios”? “Inteligencia de negocios”: traducción del término Business Intelligence (BI) ”habilidades, tecnologías, aplicaciones y prácticas que se utilizan para ayudar a una organización a adquirir una mejor comprensión de su contexto comercial”
  • 4. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas ¿Qué es “inteligencia de negocios”? (2) Wikipedia: “Transformation of raw data into meaningful and useful information for business analysis purposes” (Transformación de datos crudos en información significativa y útil para propósitos del análisis de negocios)
  • 5. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas ¿Qué es “inteligencia de negocios”? (2) Wikipedia: “Transformation of raw data into meaningful and useful information for business analysis purposes” (Transformación de datos crudos en información significativa y útil para propósitos del análisis de negocios) En otras palabras: Utilización de datos sobre el pasado y el presente para tomar mejores decisiones en el futuro.
  • 6. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Inteligencia de negocios: Objetivos Requisito • Tenemos los datos • (idealmente muchos datos)
  • 7. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Inteligencia de negocios: Objetivos Requisito • Tenemos los datos • (idealmente muchos datos) Objetivos: • Queremos explorar estos datos ... • ... y descubrir el conocimiento escondido en ellos
  • 8. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Inteligencia de negocios: Arquitectura de tres capas
  • 9. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas ¿En qué ayuda Postgres? En esta arquitectura de tres capas: 1 Cuarentena y carga de datos (stage and load) 2 Almacenes de datos (data warehouse, data marts) 3 Ejecución de consultas (analysis)
  • 10. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Cuarentena y Carga de datos
  • 11. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Herramientas ETL • Extract – Transform – Load • Cargar datos externos en variedad de formatos • Lidiar con errores e inconsistencias • Manipular los datos antes de insertarlos • PGLoader: http://www.pgloader.io
  • 12. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Aproximación ELT • Extract – Load – Transform • El proceso de transformación se hace dentro de la BD • La transformación puede usar herramientas de PostgreSQL
  • 13. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Conectores de datos externos • Foreign Data Wrappers (FDW) • Conectar, desde Postgres, a servidores de datos remotos • (En realidad, a cualquier cosa que provea datos) • El mecanismo es extensible: puedes escribir el tuyo • http://wiki.postgresql.org/wiki/FDW
  • 14. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Almacenes de Datos
  • 15. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Soporte extensivo JSON • Tipos de datos JSON (9.2) y JSONB (9.4) • Almacenamiento semi-estructurado • Facilita el acceso a datos de proveniencia no relacional • Indexable (índices GIN, GiST)
  • 16. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Vistas Materializadas • Materialized views • Útil para data-mart • tiene otros usos también • Permite generar “resúmenes” de datos que pueden ser consultados repetidamente • Mejora el rendimiento en consultas repetitivas sobre los mismos resúmenes • Simplifica refresco de vistas resúmenes según necesidades de la organización
  • 17. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Tables “unlogged” • UNLOGGED TABLES • Tablas que no son respaldadas en WAL • Mejora en rendimiento de escrituras por ahorrar tráfico WAL • Desventaja es perder datos en caso de caída
  • 18. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Tables “unlogged” • UNLOGGED TABLES • Tablas que no son respaldadas en WAL • Mejora en rendimiento de escrituras por ahorrar tráfico WAL • Desventaja es perder datos en caso de caída • En un DWH o data mart no importa • los datos pueden volver a crearse • es un riesgo aceptable porque las caídas son infrecuentes • o deberían serlo
  • 19. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Tables “unlogged” • UNLOGGED TABLES • Tablas que no son respaldadas en WAL • Mejora en rendimiento de escrituras por ahorrar tráfico WAL • Desventaja es perder datos en caso de caída • En un DWH o data mart no importa • los datos pueden volver a crearse • es un riesgo aceptable porque las caídas son infrecuentes • o deberían serlo • CREATE UNLOGGED MATERIALIZED VIEW
  • 20. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Hot Standby • Permite tener una copia de datos en un servidor separado • ... el cual puede ejecutar consultas de sólo lectura • Para ejecutar reportes • sin sobrecargar el servidor en operación OLTP • Puede tener réplicas “en cascada” • distribuir geográficamente • high availability • tomar respaldos pg_dump
  • 21. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas En desarrollo: UDR • Uni-Directional Replication (replicación uni-direccional) • Replicación a nivel lógico, no físico • como Slony, Londiste • Permite hacer cambios en la réplica • a diferencia de hot standby • tablas temporales • índices adicionales • Proyecto en desarrollo de 2ndQuadrant • Basado en BDR: http://wiki.postgresql.org/wiki/BDR
  • 22. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Ejecución de Consultas
  • 23. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Funciones y Procedimientos en la base • Muchos procesos se pueden ejecutar en la base • Ahorra tráfico de datos • Programas definidos por el usuario ... • implementar lógica de negocio • ... en una variedad de lenguajes • Mantener el conocimiento en la base • Permite reutilizar en múltiples herramientas
  • 24. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas MADlib • http://madlib.net • MADlib: Big Data Machine Learning in SQL for Data Scientists • Powerful analytics for Big Data • También PL/R • análisis estadístico, etc • visualizaciones de datos (gráficos, etc)
  • 25. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas En desarrollo: Aggregate pushdown • Ejecuta la agregación más cerca del recorrido de la tabla • Permite ahorrar movimiento de datos a través de nodos de ejecución que no lo necesitan
  • 26. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Bitmap index scan • Recorrer un índice, generar un bitmap • El bitmap permite recorrer la tabla en orden físico • El bitmap puede ser operado con otro bitmap • de otro o del mismo índice
  • 27. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Bitmap index scan • Recorrer un índice, generar un bitmap • El bitmap permite recorrer la tabla en orden físico • El bitmap puede ser operado con otro bitmap • de otro o del mismo índice
  • 28. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Funciones de ventana deslizante • Permiten escribir consultas complejas • Análisis de conjuntos de datos SELECT departamento, empleado_id, salario, avg(salario) OVER (PARTITION BY departamento) AS a, rank() OVER (PARTITION BY departamento ORDER BY salario DESC) AS r FROM salario_empleados ORDER BY r
  • 29. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas En desarrollo: BRIN indexes • (Anteriormente llamados Minmax indexes) • Índices para acelerar recorridos secuenciales • Guardar valores min() y max() de la columna, para grupos de páginas • Excluir grupos de páginas del recorrido si el WHERE no coincide con valores min/max • Puede mejorar 10x – 100x tiempo de consulta • Proyecto de 2ndQuadrant para AXLE
  • 30. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas En desarrollo: BRIN indexes • (Anteriormente llamados Minmax indexes) • Índices para acelerar recorridos secuenciales • Guardar valores min() y max() de la columna, para grupos de páginas • Excluir grupos de páginas del recorrido si el WHERE no coincide con valores min/max • Puede mejorar 10x – 100x tiempo de consulta • Proyecto de 2ndQuadrant para AXLE • Podría usarse para geometry también: guardaría el bounding box • unas 200 líneas de código extra • También para bloom filters
  • 31. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas En desarrollo: Almacenamiento “columnar” • Forma distinta de almacenar datos a nivel físico • Permite recorrer una misma columna para muchos registros más rápido • Optimización útil en DWH • agregaciones de muchos datos en menos tiempo • Puede mejorar 4x – 20x tiempo de consultas • Proyecto de 2ndQuadrant para AXLE
  • 32. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas En desarrollo: Freeze Map • VACUUM debe recorrer toda la base cada cierto tiempo • freeze de registros • Una vez es necesario, de ahí en adelante es pérdida de tiempo • Freeze map es infrastructura para evitar freezing inútil • Ahorra costo de lectura/escritura • Proyecto de 2ndQuadrant para AXLE
  • 33. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Otros proyectos en desarrollo en 9.5 • Procesamiento de consultas en GPU • GROUPING SETS
  • 34. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Preguntas ¿Preguntas?
  • 35. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas Addendum: Revisión de parches • Por favor contribuir • pgsql-hackers@postgresql.org • http://www.postgresql.org/list/pgsql-hackers/ • http://commitfest.postgresql.org/
  • 36. Cuarentena y Carga de datos Almacenes de datos Ejecución de consultas El proyecto AXLE Advanced Analytics for eXtremely Large European Databases http://www.axleproject.eu/ The research leading to these results has received funding from the European Union’s Seventh Framework Programme (FP7/2007-2013) under grant agreement n° 318633