ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

25
PARTE SECONDA ORDBMS e NoSQL nel trattamento dei dati geografici Cagliari 30 Settembre 2015

Transcript of ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Page 1: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

PARTE SECONDA

ORDBMS e NoSQL nel trattamento dei dati geografici

Cagliari 30 Settembre 2015

Page 2: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

RDBMS: Sistema di gestione di database conmodello di dati relazionale

ORDBMS: Sistema per la gestione di insiemi didati simile ad un DBMS relazionale ma con unmodello dei dati orientato agli oggetti, cioè oggetti,classi, ereditarietà, polimorfismo sono supportatidirettamente nello schema del database e nellinguaggio di interrogazione. (SQL:1999)

(O)RDBMS

Cagliari 30 Settembre 2015

Page 3: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Cagliari 30 Settembre 2015http://db-engines.com/en/ranking

Page 4: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Cagliari 30 Settembre 2015

Page 5: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

MYSQL Spatial: ● https://dev.mysql.com/doc/refman/5.0/en/using-spatial-data.html● https://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html

Oracle Spatial: ● http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_intro.htm#i881614

DB2 Spatial: ● http://www-03.ibm.com/software/products/en/db2spaext

Sql Server:● https://technet.microsoft.com/en-us/library/bb933876%28v=sql.105%29.aspx

Postgis: ● http://postgis.net/●http://postgis.net/docs/manual-2.1/

(O)RDBMS

Cagliari 30 Settembre 2015

Page 6: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Una breve sessione su phpPgAdmin.....

http://gisepi.crs4.it/phppgadmin/

Login: 'studente' Password: '123pass456'

Postgis

Cagliari 30 Settembre 2015

Page 7: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Gis computing

Cagliari 30 Settembre 2015

workflow, risorse (disco, memoria, core), gridcomputing, cloud computing

Page 8: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

… e non ti hanno ancora dettodove piazzeranno le trivelle

Pare che i dati dei profiliutente siano il nuovo petrolio...

Page 9: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

get more data ● Internet of things, reti di sensori, social,sequenze temporali, profilazione, businessintelligence → analisi e gestione di big data → modello del dato flessibile → numero accessi e performance

...quale è il ruolo del gis in questo contesto?

Page 10: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Dimensione dei dati ● I dati e la loro geolocazione

Page 11: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Flessibilità e modello dei dati

vincoli, chiavi esterne, indici, gestione datietc..

Nei (O)RDBMS la gestione del modello deidati è “rigida” (e.g verifiche di coerenza)anche se modificabile.

Flessibilità

Page 12: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Scalabilità

Page 13: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

La Scalabilità è il vero tallone d'achille dei(O)RDBMS. Le possibili soluzioni per BIG-data qualidatabase distribuiti o partizionamento non hannoportato soluzioni convincenti. Esempio: I punti di accesso distribuiti

territorialmente nelle infrastrutture dei social(numero utenti → numero accessi e dimensione dati )

→ molti utenti, molti accessi, big data le soluzioniNoSQL diventano una necessità in diversi campi

Scalabilità

Page 14: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

NoSQLor

Not only SQLor

Not Relationalor...

SparkSQLhttp://blogs.esri.com/esri/arcgis/2013/08/16/st_geometry-aggregate-functions-for-hive-in-spatial-framework-for-hadoop/

Page 15: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Struttura a nodi, comunicazione asincrona.● Un insiemi di nodi definisce un cluster● Meccanismo di interrogazione map - reduce ● Indici primario su chiave – valore ● Limite nel dato atomico ( singolo attributo,documento, cella etc..) 20 Mb Flessibilità del modello dei dati (cambiamenti “a

caldo” garantito senza interruzioni servizio) Scalabilità

NoSQL

Page 16: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

● Ancora giovane: pochi strumenti accessori GIS ● Utilizzo risorse: gestire una struttura con vari nodi equindi dotare di core, memoria e disco ciascun nodo

→ su basi di dati non big il costo / efficenza è afavore dei (O)RDBMS

● Indicizzazione secondaria sui dati spaziali damigliorare ● I NoSQL non risolvono tutto da soli: è neccessariorealizzare sovra-strutture ad hoc per la gestione dellequery

NoSQL

Page 17: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Tipo 1) modello del dato chiave-valore (Key-Values) il valore è un oggetto del tutto trasparenteper il sistema, cioè non è possibile fare query suivalori ma solo sulle chiavi.

Tipo 2) gestisce database orientati ai documenti(Document database) sono simili a tabelle hash conun unico campo di identificazione e valori chepossono essere di qualunque tipo. I documenti (XML,JSON, BSON, etc.) possono contenere strutturenidificate. Supportano indici secondari, replicazionee interrogazioni ad hoc.

Tipi di motori NoSQL

Page 18: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Tipo 3) gestisce database orientati alle colonne(Column-oriented) organizzano i dati per colonne, lerighe possono avere associate diverse colonne etutte accessibili attraverso una chiave di riga. lerighe non hanno necessariamente le stesse colonnee le colonne possono essere aggiunte alle righe inqualsiasi momento senza doverle aggiungere allealtre righe della stessa famiglia.

Tipi di motori NoSQL

Page 19: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Tipo 4) gestisce database a grafo (Graphdatabase) rappresentano un caso particolare didatabase orientati ai documenti in cui i documentirappresentano sia i nodi che le relazioni cheinterconnettono i nodi. Questi database sono utiliper risolvere i problemi di memorizzazione egestione di dati interconnessi.

Tipi di motori NoSQL

Page 20: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

CouchDB

https://github.com/couchbase/geocouch/

MongoDBhttp://www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc http://docs.mongodb.org/manual/applications/geospatial-indexes/http://mongogis.org/

NoSQL orientati ai documenti

Page 21: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Couchbase

http://docs.couchbase.com/admin/admin/Views/views-geospatial.html

Amazon DynameDB

https://github.com/awslabs/dynamodb-geo

NoSQL orientati ai documenti

Page 22: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Hbase (Hadoop)

http://www.slideshare.net/Hadoop_Summit/grailer-hochmuth-june27515pmroom212v3

http://www.slideshare.net/hhdd2005/hgrid-a-data-model-for-large-geospatial-data-sets-in-hbase?related=1

Gis hadoop: https://github.com/Esri/gis-tools-for-hadoop

Spatial hadoop: http://spatialhadoop.cs.umn.edu/

NoSQL orientati alle colonne

Page 23: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

AllegroGraph

http://franz.com/agraph/allegrograph/

http://franz.com/agraph/support/documentation/current/sparql-geo.html

Neo4j Spatial

https://github.com/neo4j-contrib/spatial

NoSQL graphDB

Page 24: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

...MongoDB - GeoJSON objects

… shell

- Legacy coordinate pairs

http://mongly.openmymind.net/geo/index

Page 25: ORDBMS e NoSQL nel trattamento dei dati geografici parte seconda. 30 Sett. 2015

Domande?