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

Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Festibity
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 

Último (14)

BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025Hazte partner: Club Festibity 2024 - 2025
Hazte partner: Club Festibity 2024 - 2025
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 

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