+ All Categories
Home > Software > PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Date post: 07-Jan-2017
Category:
Upload: miriade-spa
View: 28 times
Download: 0 times
Share this document with a friend
31
PostgreSQL - Hadoop: Why not? Matteo Durighetto Italian PostgreSQL Users Group www.itpug.org www.postgresql.org PGDay.IT 2016 Camera di Commercio di Prato Martedì 13 Dicembre 2016 Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org
Transcript
Page 1: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

PostgreSQL - Hadoop: Why not?

Matteo Durighetto

Italian PostgreSQL Users Group www.itpug.org

www.postgresql.org

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Page 2: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

● Speaker/Author:○ Matteo Durighetto○ DBA @ Miriade S.p.A.○ Tecnologie db: Oracle, PostgreSQL, MySQL, MSSQL ○ Tecnologie nosql: Redis, Hadoop, SolrCloud○ Tecnologie os/virtual/cloud: AWS, Vmware,XEN, Linux, *NIX,

Windows○ Membro e Presidente ITPUG ○ Cloudera Certified Administrator for Apache Hadoop

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

WHOAMI:

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 3: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

INDEX

● Casi d'uso dell'offloading / integration● Architettura● Metodologie di porting del dato da PostgreSQL

ad Hadoop● Fdw per rendere trasparente l'estensione della

base dati postgres con quella Hadoop● hue -> postgresql

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 4: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

In genere nei sistemi odierni abbiamo almeno due aree di dati :

● OLTP : area “leggera” per gestire dati real-time● DWH : area di analisi di correlazioni già conosciute

Con Il tipico passaggio OLTP ==> DWH

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Casi d’uso dell’offloading

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 5: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Col tempo si sono posti due tipi di problemi nei sistemi informativi:

● OLTP: crescita per mancanza di offloading di tutto il dato verso il DWH, e in genere comporta un abbassamento dei tempi di risposta.

● DWH: ci permette di analizzare dati di conosciamo già le correlazioni. Inoltre le analisi di solito sono limitate temporalmente.

In più a livello costi ci si è trovati a:

● Costi maggiori per immagazzinamento su SAN/NFS ( mitigati da differenti tier di dischi, ma comunque alti )

● Costi maggiori per scale up del server singolo.

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Casi d’uso dell’offloading

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 6: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Da queste premesse nasce l’idea di un’area ulteriore, destrutturata o in parte strutturata che abbia scale up e ci permetta di ridurre i costi:

Data Lake: area di offloading del dato ( OLTP / DWH ) e storicizzazione, interrogabile e basato su architettura scale out orizzontale. Ideale Schema on Read e non più Schema on Write.

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Casi d’uso dell’offloading

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 7: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

PostgreSQL tipicamente viene deployato su 3 tipologie di architetture:● Cloud/Virtuale [ con SAN ]● SAN● Dischi interni

L’ultima architettura per scalare, tipicamente si affida allo sharding applicativo o vi sono tentativi con PostgreSQL-XL o Citus ( ex- pg_shard ) di scaling orizzontale.

Tuttavia soluzioni come Citus e PostgreSQL-XL sono più adatte a far scalare OLTP o DWH, che per un Data Lake.

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Casi d’uso dell’offloading

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 8: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

PostgreSQL - Hadoop

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Architettura

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

immagine da : http://www.bigsql.org/hadoopfdw/

Page 9: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

What Is Apache Hadoop?The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Architettura

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 10: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Ecosistema Hadoop

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Architettura

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

immagine da : http://www.cloudera.com

Page 11: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Hadoop Yarn

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Architettura

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Immagine da : hadoop.apache.org

Page 12: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

HDFS

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Architettura

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Immagine da : hadoop.apache.org

Page 13: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Il porting può avvenire in vari modi :● Applicativo● ETL ( kettle )● Sqoop2

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Metodologie di porting

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 14: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Sqoop :

Installare driver sul nodo Hadoop con Sqoop:

wget http://jdbc.postgresql.org/download/postgresql-9.2-1002.jdbc4.jar

cp postgresql-9.2-1002.jdbc4.jar /var/lib/sqoop/

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Metodologie di porting

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 15: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Sqoop :

Importiamo sulla quickstart.cloudera (hadoop) la tabella orders dal database testfdw con l’utente test :

sqoop import --table orders -m 1 --connect jdbc:postgresql://10.193.1.3:5432/testfdw --username=test --password=test --compression-codec=snappy --as-parquetfile --warehouse-dir=/user/hive/warehouse --hive-import

Tra le opzioni c’è anche il --direct che accelera la modalità di estrazione, e il “-m” che indica il livello di parallelismo.

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Metodologie di porting

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 16: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Sqoop :

Sqoop supporta delle modalità incrementali :

--check-column ==> colonna incrementante ( tipo timestamp ) --last-value ==> ultimo valore importato

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Metodologie di porting

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 17: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Progetto fdw

Tra i vari progetti, il più interessante è quello di BiSQL :

https://bitbucket.org/openscg/hadoop_fdw

Si può installare o partendo dalla compilazione:

https://github.com/EnterpriseDB/hdfs_fdw/blob/master/INSTALL

o in maniera più semplice

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 18: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Progetto fdw

Nei prossimi passi si comporrà un sistema :● Postgresql Server ( debian base )● Quick Start Cloudera 5.5 (

http://www.cloudera.com/downloads/quickstart_vms/5-8.html )

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 19: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Installazione Postgresql + fdw semplificata ( con distro bigsql ) :

python -c "$(curl -fsSL http://s3.amazonaws.com/pgcentral/install.py)"

cd bigsql

./pgc install pg96

./pgc install hadoop_fdw2-pg96

./pgc install java8

./pgc start pg96

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 20: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Recuperare le java class di hadoop dal server hadoop quickstart.cloudera :

/usr/lib/hadoop/hadoop-common-2.6.0-cdh5.5.0.jar/usr/lib/hive/lib/hive-jdbc-1.1.0-cdh5.5.0-standalone.jar

Come root sul postgres definire una directory dove piazzare le classi hadoop:

mkdir -p /opt/hadoop/hive-client-lib

scp [email protected]:/usr/lib/hadoop/hadoop-common-2.6.0-cdh5.5.0.jar /opt/hadoop/hive-client-lib/

scp [email protected]:/usr/lib/hive/lib/hive-jdbc-1.1.0-cdh5.5.0-standalone.jar /opt/hadoop/hive-client-lib/

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 21: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Verifica se ci colleghiamo ad hive con il codice di prova ripotarto in :

https://bitbucket.org/openscg/hadoop_fdw

Linkare le librerie sul server postgres libjvm.so sotto la pg lib :

cd $HOME/bigsql/pg96/lib

ln -s $HOME/bigsql/java8/jre/lib/amd64/server/libjvm.so libjvm.so

cd $HOME/bigsql/pg96/lib/postgresql

ln -s $HOME/bigsql/java8/jre/lib/amd64/server/libjvm.so libjvm.so

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 22: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Modificare il .bashrc dell’utete postgres aggiungendo (:

##hadoop fdw jar class pathexport HADOOP_FDW_CLASSPATH=~/bigsql/pg96/lib/postgresql/Hadoop_FDW.jar:$(echo /opt/hadoop/hive-client-lib/*.jar | tr ' ' :)###library pathexport LD_LIBRARY_PATH=~/bigsql/pg96/lib/postgresql:~/bigsql/pg96/lib:$LD_LIBRARY_PATH

Riapriamo una sessione e facciamo ripartire il postgres

cd ~/bigsql./pgc stop pg96./pgc start pg96

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 23: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Creare fdw :

cd $HOME/pg96/##carico enviroment : . pg96.env

psql -U postgrespsql (9.6.1)Type "help" for help.

postgres=# create database testfdw ;postgres=# \c testfdwYou are now connected to database "testfdw" as user "postgres".testfdw=# create extension hadoop_fdw;CREATE EXTENSION

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 24: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Test estensione (verso tabella orders creata con sqoop):

CREATE SERVER hive_server FOREIGN DATA WRAPPER hadoop_fdw OPTIONS (HOST 'quickstart.cloudera', PORT '10000');

CREATE USER MAPPING FOR PUBLIC SERVER hive_server;

CREATE FOREIGN TABLE hdp_orders ( order_id INT, order_date BIGINT, order_customer_id INT, order_status TEXT) SERVER hive_server OPTIONS ( TABLE 'orders');

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 25: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Test estensione :

select count(*) from hdp_orders ; count------- 68883(1 row)

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 26: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Spazio a confronto :

PostgreSQL :

Hadoop Parquet :

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 27: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Spazio a confronto :

Fr=fattore resilienza

Pg : 4,2Mb x FRpg = 4.2Mb*1.3 ~ 5,5Mb

Hdp : 0,476xFRhdp = 0,476*3 ~ 1,5MB

Quindi con compressione minima ( snappy ) applicata al formato Parquet, abbiamo circa un fattore di saving tra le 3 e 4 volte.

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Fdw postgres

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 28: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Si può inoltre abilitare l’interfaccia HUE ( http://quickstart.cloudera:8888 ) a puntare nativamente anche al motore rdbms :

yum install postgresql-devel gcc python-devel

sudo -u hue /usr/lib/hue/build/env/bin/pip install setuptools

sudo -u hue /usr/lib/hue/build/env/bin/pip install psycopg2

modificare hue.ini ( dal cloduera manager o a mano ) :

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Hue - PostgreSQL

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 29: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

[librdbms] [[databases]] [[[postgresql]]] # Name to show in the UI. nice_name="testfdw" name=testfdw engine=postgresql host=<postgresql_ip> port=5432 user=test password=test

Poi restart hue

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Hue - PostgreSQL

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 30: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

Chi sono?

Hue : avrete nel tab del query editor anche il db postgres!

Copyright 2012 Miriade S.p.a.Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

Hue - PostgreSQL

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016

Page 31: PostgreSQL - Hadoop: Why not? - PGDay.IT 2016

AttribuzioneNon commercialeCondividi allo stesso modo3.0 Italia

https://creativecommons.org/licenses/by-nc-sa/3.0/it/Copyright 2016 Miriade S.p.A. - http://www.miriade.it

Copyright 2012 Miriade S.p.a.

Grazie per l'attenzione

Copyright 2012 Miriade S.p.a. Matteo Durighetto - [email protected] - ITPUG.org

License

PGDay.IT 2016Camera di Commercio di Prato

Martedì 13 Dicembre 2016


Recommended