PARTE SECONDA
ORDBMS e NoSQL nel trattamento dei dati geografici
Cagliari 30 Settembre 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
Cagliari 30 Settembre 2015http://db-engines.com/en/ranking
Cagliari 30 Settembre 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
Una breve sessione su phpPgAdmin.....
http://gisepi.crs4.it/phppgadmin/
Login: 'studente' Password: '123pass456'
Postgis
Cagliari 30 Settembre 2015
Gis computing
Cagliari 30 Settembre 2015
workflow, risorse (disco, memoria, core), gridcomputing, cloud computing
… e non ti hanno ancora dettodove piazzeranno le trivelle
Pare che i dati dei profiliutente siano il nuovo petrolio...
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?
Dimensione dei dati ● I dati e la loro geolocazione
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à
Scalabilità
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à
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/
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
● 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
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
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
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
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
Couchbase
http://docs.couchbase.com/admin/admin/Views/views-geospatial.html
Amazon DynameDB
https://github.com/awslabs/dynamodb-geo
NoSQL orientati ai documenti
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
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
...MongoDB - GeoJSON objects
… shell
- Legacy coordinate pairs
http://mongly.openmymind.net/geo/index
Domande?