Full text
5
Con idos
INTRODUCIÓN 9
GLOSARIO 11
PARTICIPANTES 13
CONTEXTO DO PROBLEMA 14
FERRAMENTAS 19
XESTIÓN DO PROXECTO 20
ENUNCIADO DO ALCANCE DO PROXECTO 20
ESTRUTURA DE DESCOMPOSICIÓN DO TRABALLO 22
METODOLOXÍA A UTILIZAR 26
SEGUIMENTO E CONTROL DO PROXECTO 27
PLANIFICACIÓN TEMPORAL 28
ESTIMACIÓN DE CUSTOS 33
XESTIÓN DE RISCOS 35
ANÁLISE DE REQUISITOS 39
CASOS DE USO 39
REQUISITOS FUNCIONAIS 47
REQUISITOS NON FUNCIONAIS 47
VALIDACIÓN E VERIFICACIÓN DE REQUISITOS 47
DESEÑO GLOBAL 48
ARQUITECTURA DO SISTEMA 48
INTERACCIÓNS DO SISTEMA 49
TECNOLOXÍAS ESCOLLIDAS 50
ITERACIÓN 1 53
FORMATO DE DEFINICIÓN DAS FONTES DE DATOS 53
ANÁLISE DO MÓDULO ETL 54
DESEÑO DO MÓDULO ETL 57
PROBAS UNITARIAS SOBRE O MÓDULO ETL 61
ANÁLISE DO MÓDULO DE PROCESAMENTO 64
DESEÑO DO MÓDULO DE PROCESAMENTO 65
PROBAS UNITARIAS SOBRE O MÓDULO DE PROCESAMENTO 68
ITERACIÓN 2 70
ANÁLISE DAS MELLORAS 70
DESEÑO DAS MELLORAS 71
COMPARATIVA ENTRE FORMATOS DE ALMACENAMENTO 74
PROBAS DE RENDEMENTO SOBRE A EXECUCIÓN COMPLETA 76
ITERACIÓN 3 81
6
ANÁLISE DO MÓDULO DE VISUALIZACIÓN 81
DESEÑO DO MÓDULO DE EXPORTACIÓN 81
PROBAS UNITARIAS DO MÓDULO DE EXPORTACIÓN 83
ITERACIÓN 4 86
ANÁLISE DO MÓDULO ETL 86
DESEÑO DO MÓDULO ETL 86
PROBAS UNITARIAS DO MÓDULO ETL 89
ANÁLISE DO MÓDULO DE PROCESAMENTO 91
DESEÑO DO MÓDULO DE PROCESAMENTO 94
COMPARATIVA DE RENDEMENTO ENTRE DIFERENTES ALTERNATIVAS 95
ITERACIÓN 5 102
ANÁLISE 102
DESEÑO 105
COMPARATIVA DE RENDEMENTO 109
CONCLUSIÓNS 112
BIBLIOGRAFÍA 114
ANEXO I - MANUAL DE USUARIO 116
ANEXO II - MANUAL TÉCNICO 119
7
Índice de igu as
FIGURA 1.- FONTES DE DATOS PARA UN RISCO DE INCENDIO. .................................................................................... 9
FIGURA 2.- EXEMPLOS DOS DIFERENTES TIPOS DE DIMENSIÓNS. .............................................................................. 17
FIGURA 3.- EXEMPLOS DE CUBOS DE DATOS. ........................................................................................................ 17
FIGURA 4.- ESTRUTURA DE DESCOMPOSICIÓN DE TAREFAS. .................................................................................... 22
FIGURA 5.- DIAGRAMA DE GANTT (PARTE 1). ...................................................................................................... 29
FIGURA 6.- DIAGRAMA DE GANTT (PARTE 2). ...................................................................................................... 30
FIGURA 7.- DIAGRAMA DE GANTT (PARTE 3). ...................................................................................................... 31
FIGURA 8.- DIAGRAMA DE CASOS DE USO. ........................................................................................................... 39
FIGURA 9.- ARQUITECTURA DE COMPOÑENTES DO SISTEMA. .................................................................................. 48
FIGURA 10.- INTERACCIÓN ENTRE OS COMPOÑENTES DO SISTEMA. .......................................................................... 49
FIGURA 11.- DIAGRAMA DE CLASES DO MÓDULO ETL. .......................................................................................... 58
FIGURA 12.- DIAGRAMA DE SECUENCIA PARA O MÓDULO ETL. ............................................................................... 60
FIGURA 13.- CAPTURA DA SPARK WEB UI CON INFORMACIÓN REFERENTE Á ESCRITURA DUN SEQUENCEFILE. ................ 63
FIGURA 14.- DIAGRAMA DE CLASES PARA O MÓDULO OLAP. ................................................................................. 66
FIGURA 15.- DIAGRAMA DE SECUENCIA PARA O MÓDULO OLAP. ........................................................................... 67
FIGURA 16.- DIAGRAMA COAS NOVAS CLASES DO MÓDULO ETL. ............................................................................ 71
FIGURA 17.- DIAGRAMA COAS CLASES DE TIPOS XEOMÉTRICOS PRIMITIVOS. ............................................................. 72
FIGURA 18.- DIAGRAMA DE SECUENCIA PARA A IMPORTACIÓN DE DATOS PROCEDENTES DUNHA BASE DE DATOS
RELACIONAL. ......................................................................................................................................... 73
FIGURA 19.- DIAGRAMA DE SECUENCIA PARA A UNIÓN ENTRE DOUS CONXUNTOS DE DATOS OBTIDOS DE HDFS. ............ 74
FIGURA 20.- GRAFO DE EXECUCIÓN PARA A UNIÓN ENTRE OS DATOS DE OBSERVACIÓNS E DE PENDENTE. ....................... 78
FIGURA 21.- FALTA DE PARALELISMO NUNHA UNIÓN ESPACIAL. .............................................................................. 79
FIGURA 22.- DIAGRAMA DE CLASES DO MÓDULO DE EXPORTACIÓN. ........................................................................ 82
FIGURA 23.- SECUENCIA DE EXPORTACIÓN DO RISCO A UN FICHEIRO ASCII. ............................................................... 83
FIGURA 24.- RISCO DE INCENDIO (01-08-2014). ................................................................................................ 85
FIGURA 25.- XERARQUÍA DE CLASES NO CATÁLOGO............................................................................................... 87
FIGURA 26.- DIAGRAMA DE CLASES PARA O MÓDULO ETL. .................................................................................... 88
FIGURA 27.- SECUENCIA DE OPERACIÓNS PARA A LECTURA DAS DIMENSIÓNS DUN FICHEIRO DE TIPO GEOTIFF. ............... 89
FIGURA 28.- SECUENCIA DE LECTURA DOS DATOS DE ESTACIÓNS E XERACIÓN DOS ÍNDICES EN MEMORIA. ....................... 94
FIGURA 29.- REPRESENTACIÓN DO PARTICIONAMENTO ESPACIAL DIVIDINDO O TERRITORIO GALEGO MEDIANTE UNHA
CUADRÍCULA. ...................................................................................................................................... 103
FIGURA 30.- DIAGRAMA DE CLASES PARA A IMPLEMENTACIÓN CON PARTICIONAMENTO ESPACIAL. ............................. 106
FIGURA 31.- DIAGRAMA DE SECUENCIA COMPLETO PARA A REALIZACIÓN DA IDW EN PARALELO. ............................... 107
FIGURA 32.- TEMPERATURA INTERPOLADA (03-08-2014). ................................................................................. 109
FIGURA 33.- EXEMPLO DE FICHEIRO DE DEFINICIÓN DE FONTES DE DATOS. .............................................................. 116
FIGURA 34.- EXECUCIÓN DO MÓDULO ETL MEDIANTE TERMINAL. ......................................................................... 117
FIGURA 35.- MONITORIZACIÓN MEDIANTE A SPARK WEB UI. .............................................................................. 118
FIGURA 36.- INTERFACE DE USUARIO EN QGIS................................................................................................... 118
FIGURA 37.- EXEMPLO DE ARQUIVO POM.XML................................................................................................... 119
FIGURA 38.- COMPILACIÓN DO PROGRAMA MEDIANTE O PLUGIN "SHADE" DE MAVEN. ........................................... 120
8
Índice de g á icos
GRÁFICO 1.- TAMAÑOS DO ARQUIVO DE DATOS DE ELEVACIÓN. .............................................................................. 74
GRÁFICO 2.- DESCENSOS DOS TEMPOS DE LECTURA PARA CADA FORMATO................................................................ 75
GRÁFICO 3.- TEMPO DE EXECUCIÓN PARA 10KM DE RESOLUCIÓN. ........................................................................... 76
GRÁFICO 4.- TEMPO DE EXECUCIÓN PARA 5KM DE RESOLUCIÓN. ............................................................................. 77
GRÁFICO 5.- COMPARATIVA DO TAMAÑO DOS ARQUIVOS DE OBSERVACIÓN. ............................................................ 96
GRÁFICO 6.- TEMPO DE EXECUCIÓN PARA A VERSIÓN CAS XEOMETRÍAS. ................................................................... 97
GRÁFICO 7.- TEMPO DE EXECUCIÓN PARA A VERSIÓN CO IDENTIFICADOR AUTOINCREMENTAL. ..................................... 98
GRÁFICO 8.- TEMPO DE EXECUCIÓN PARA A VERSIÓN QUE SÓ ALMACENA OS VALORES DAS OBSERVACIÓNS. ................... 98
GRÁFICO 9.- TEMPO DE EXECUCIÓN PARA AS VERSIÓNS QUE UTILIZAN DATOS SEN COMPRIMIR. ................................... 99
GRÁFICO 10.- TEMPO DE EXECUCIÓN PARA AS VERSIÓNS QUE UTILIZAN DATOS COMPRIMIDOS. ................................... 99
GRÁFICO 11.- TEMPO DE EXECUCIÓN SEGUNDO NÚMERO DE EXECUTORES (DATOS SEN COMPRESIÓN). ....................... 100
GRÁFICO 12.- TEMPO DE EXECUCIÓN SEGUNDO NÚMERO DE EXECUTORES (DATOS CON COMPRESIÓN)........................ 100
GRÁFICO 13.- TEMPO DE EXECUCIÓN (RESOLUCIÓN DE 200 METROS, 100 DATAS) PARA A VERSIÓN CON PARTICIONAMENTO
ESPACIAL EN FUNCIÓN DO NÚMERO DE EXECUTORES. ................................................................................. 110
GRÁFICO 14.- COMPARATIVA DE TEMPO DE EXECUCIÓN ENTRE VERSIÓNS (CON E SEN PARTICIONAMENTO ESPACIAL). ... 111
Índice de áboas
TÁBOA 1.- ESTIMACIÓN DE CUSTOS. ................................................................................................................... 33
TÁBOA 2.- NIVEL NUMÉRICO DE EXPOSICIÓN A UN RISCO. ...................................................................................... 35
TÁBOA 3.- LISTA DE RISCOS. .............................................................................................................................. 36
TÁBOA 4.- ANÁLISE CUALITATIVA DE RISCOS. ....................................................................................................... 37
TÁBOA 5.- ESTRATEXIAS DE RESPOSTA AOS RISCOS. .............................................................................................. 38
TÁBOA 6.- COMPARATIVA DE FRAMEWORKS. ...................................................................................................... 50
TÁBOA 7.- COMPARATIVA DE FORMATOS DE ARQUIVOS. ....................................................................................... 51
Índice de ó mulas
FÓRMULA 1.- CÁLCULO DA PENDENTE. ............................................................................................................... 65
FÓRMULA 2.- INTERPOLACIÓN DOS VALORES DE OBSERVACIÓN. .............................................................................. 65
FÓRMULA 3.- XERACIÓN DO NÚMERO DE FILA DE CADA OBSERVACIÓN. .................................................................... 92
FÓRMULA 4.- XERACIÓN DO NÚMERO DE ESTACIÓN PARA CADA OBSERVACIÓN. ........................................................ 92
FÓRMULA 5.- XERACIÓN DO NÚMERO DE DATA PARA CADA OBSERVACIÓN. .............................................................. 92
FÓRMULA 6.- XERACIÓN DA REFERENCIA Á ESTACIÓN QUE LLE CORRESPONDE A CADA................................................. 93
FÓRMULA 7.- XERACIÓN DO POINT2D QUE LLE CORRESPONDE A CADA VALOR DE ELEVACIÓN. ..................................... 93
FÓRMULA 8.- CÁLCULO DAS COORDENADAS DE CHUNK PARA O PARTICIONADO ESPACIAL. ......................................... 104
FÓRMULA 9.- CÁLCULO DO ANCHO DE CADA CHUNK. .......................................................................................... 104
FÓRMULA 10.- CÁLCULO DO ALTO DE CADA CHUNK. ........................................................................................... 105
FÓRMULA 11.- NÚMERO DE EXECUTORES NECESARIOS PARA PARALELIZAR OS CHUNKS. ............................................ 110
9
INTRODUCIÓN
A e olución das solucións Big Da a nos úl imos anos én de se exponencial, mo i ando
un no o en oque espec o do a amen o de g andes can idades de in o mación que
non poden se p ocesadas ou analizadas con e amen as adicionais. Di as solucións
cons i úen o undamen o dos mode nos sis emas de apoio á oma de decisións (DSS) en
di e sos dominios de aplicación, como po exemplo a análise do me cado le ada a cabo
po unha ae oliña [25] ou a moni o ización e xes ión do sis ema de saúde dun e i o io
[8].
En e eses dominios podemos des aca a análise de da os medioambien ais, xe ados
p incipalmen e po senso es ou po so wa e de modelado de da os, como poden se as
medicións ísicas ealizadas po es acións me eo olóxicas ou as ca ac e ís icas
medioambien ais dun de e minado espazo xeog á ico. Nes e eido podemos iden i ica
dous g andes ipos de da os: dunha banda exis en mos axes de p opiedades especí icas
sob e espazos mul idimensionais, e dou a banda exis en en idades que ep esen an
p opiedades especí icas de obxec os que poden e oluciona ó longo do empo.
As ecnoloxías dispoñibles na ac ualidade pa a a análise des es dous g andes ipos de
da os son os xes o es de bases de da os elacionais (RDBMS) e un subg upo de solucións
Big Da a (po exemplo, bases de da os NoSQL e ecosis emas ipo Hadoop) pa a o caso
das en idades, e solucións ad-hoc sob e a qui os de a ays xun o con scien i ic a ay
da a manage s (po exemplo, SciDB [18, 22] ou Rasdaman [5, 21]) pa a o caso das
mos axes. Sen emba go, non exis e no me cado ningunha ecnoloxía que posibili e a
xes ión in eg ada e uni o me de ambos ipos de da os.
A xus i icación de di a necesidade mani és ase en casos de uso que equi an a
in eg ación de on es de da os di e sas [27, 26]: un exemplo se ía a a aliación do isco
de incendios dunha de e minada zona xeog á ica en base a un conxun o de da os en e
os que poden conside a se mos axes empo ais ob idas de obse acións
me eo olóxicas, mos axes espaciais da ele ación do e eo e en idades con da os sob e
especies p esen es e modelos de combus ible.
Figu a 1.- Fon es de da os pa a un isco de incendio.
16
da os que se aian a p ocesa pos e io men e. Nes e senso, esbózanse dúas cues ións
p incipais:
1) De ini , deseña e implemen a as es u u as de da os que sexan necesa ias pa a
almacena os da os do p oblema no sis ema de a qui os dis ibuído
impo ándoos desde as di e sas on es de da os das que dispoñamos, endo en
con a a dualidade en e en idades e mos axes. Habe á que desen ol e an o
es u u as de almacenamen o en disco como es u u as de almacenamen o en
memo ia, pa a ga an i unha e iciencia adecuada na xes ión das can idades de
da os des e calib e, omando man das écnicas que sexan necesa ias. Is o
con o ma á un da a wa ehouse dis ibuído sob e o que se ealiza á o
p ocesamen o.
2) De ini , deseña e implemen a os ope ado es que sexan necesa ios an o pa a
a impo ación dos da os coma pa a o seu p ocesamen o. O p oceso de
impo ación ou ETL consis i á en ex ae , ans o ma e ca ga os da os desde as
on es iniciais a a o sis ema de a qui os dis ibuído, namen es as ope acións de
p ocesamen o, que depende án do caso de uso ó que se des ine o sis ema,
bene icia anse do pa alelismo compu acional que nos p opo ciona o amewo k
que escollamos.
En base á p oblemá ica desc i a, un exemplo de caso de uso, xa mencionado na
in odución, que equi e unha solución como a p opos a é o cálculo do isco de incendio
pa a un de e minado e i o io. A análise de ac o es que in lúen na apa ición de
incendios o es ais bene íciase da dispoñibilidade de di e sos conxun os de da os, en e
os que cabe menciona da os me eo olóxicos xe ados po edes de es acións públicas e
p i adas, da os de ele ación xe ados po senso es Lida ou da os de cobe u a exe al
do e eo. Cabe acla a que a in ención des a p opos a de caso de uso é simplemen e a
ilus ación do p ocesamen o in eg ado de da os medioambien ais de ipo a ay e de ipo
elacional, sen p e ende se unha con ibución ó dominio ele an e de aplicación.
Pa a ace se unha idea da can idade de da os xe ados, Me eoGalicia dispón dunha ede
dunhas 80 es acións me eo olóxicas que xe an da os cunha ecuencia empo al de 10
minu os, men es que a esolución espacial máxima dos da os de ele ación
p opo cionados polo Ins i u o Xeog á ico Nacional é de 5 me os, co que se necesi an
uns 2.500 millóns de alo es de ele ación pa a cub i o e i o io de Galicia.
As es u u as de da os que compoñen o modelo de almacenamen o de da os espazo-
empo ais a implemen a son as mesmas que se p opoñen en aballos p e ios dos
au o es S. Villa oya e J.R. Viquei a [27, 28]:
Dimensións.- T á ase dun subconxun o ini o de elemen os dun ipo de da o
(non xeomé ico). Casos especiais de dimensións son as mos axes 1D
( empo ais e espaciais) e 2D (espaciais). As mos axes con eñen unha secuencia
o denada de elemen os dun ipo de da o ( empo al ou espacial), desde un
elemen o inicial a un elemen o inal. No caso das mos axes 2D é necesa io
u iliza un o denamen o espacial de inido pola cu a de echeo do espazo. Un
exemplo de mos axe 1D empo al se ía aquel que se xe a sob e o ipo de da os
TimeIns an (86400) a pa i das da as inicial e inal dunha se ie de da os
ag egados de empe a u a xe ados cunha ecuencia dia ia po unha es ación
17
me eo olóxica. De xei o simila , un exemplo de mos axe 2D espacial se ía
aquela que se pode de ini sob e o ipo de da os Poin 2D pa a da os de ele ación
do e eo desde un pun o inicial do mapa a a un pun o inal.
Figu a 2.- Exemplos dos di e en es ipos de dimensións.
Cubos de da os.- T á ase de es u u as n-dimensionais que pe mi en a
ep esen ación de conxun os de uncións, cuxos dominios es án de inidos po
p odu os ca esianos de dimensións e cuxos angos es án de inidos po
subconxun os de da os do sis ema. Po exemplo, o esul ado da in e polación
espacial de da os de empe a u a, humidade e en o xe ados polas es acións
ep esén ase median e un cubo de da os con es uncións: empe a u a,
humidade e en o, de ipo numé ico de p ecisión ixa, de inido sob e mos axes
empo ais (da a da obse ación) e espaciais (pun o do e i o io ep esen ado).
Figu a 3.- Exemplos de cubos de da os.
18
Cons an es, de inidas po un alo do ipo a ómico T.
Desde o pun o de is a das bases de da os elacionais, as dimensións e os cubos de da os
pe mi en o modelado de en idades e elacións en e elas. Po exemplo, a dimensión
idEs ación con én o iden i icado de cada es ación me eo olóxica e as p opiedades
es an es das es acións modélanse median e o co esponden e cubo de da os, que
nes e caso con e á as uncións nome e localización. Respec o ás mos axes de da os
empo ais e espaciais (1D e 2D), podemos oma como exemplo os da os de ele ación
dun a qui o GeoTi , onde a localización (coa súa co esponden e esolución) se
conside a á unha dimensión e os p opios alo es de ele ación do e eo se án a unción
que o ma á pa e dun cubo de da os.
Ademais dos ipos de da os con encionais que p opo ciona a linguaxe de p og amación
a u iliza , se á necesa io de ini ipos de da os especí icos do ipo de sis ema que imos
a cons uí . En p imei o luga , é impo an e o coñecemen o da p ecisión e da escala dos
da os numé icos pa a le a a cabo un almacenamen o e icien e dos da os de ipo eal,
polo que cómp e pedi ó usua io que indique di a in o mación e logo u iliza unha
ep esen ación de p ecisión ixa pa a os da os des e ipo. Po ou a pa e, pa a
ep esen a da os que modelen xeome ías en espazos euclidianos de dúas dimensións
cómp e de ini un conxun o de da os p imi i os, que no caso de uso do isco de
incendios son os seguin es:
Poin 2D(P, R): {(𝑥∗𝑅,𝑦∗𝑅)|𝑥,𝑦∈𝐼𝑛𝑡𝑒𝑔𝑒𝑟∧−10𝑃<𝑥,𝑦<10𝑃}∪{⊥}
LineS ing(P, R): Secuencia de Poin 2D(P, R).
Polygon(P, R): Cons i uído po un bo de, ep esen ado median e unha
LineS ing, e un conxun o de bu acos ep esen ado median e un ec o de
LineS ing.
Mul iPolygon(P, R): Coleccións de xeome ías de ipo Polygon.
Adicionalmen e, pa a os da os de ipo empo al pódense engadi as seguin es
ep esen acións:
TimeIns an (R): {𝑡∗𝑅 | 𝑡 ∈𝐼𝑛𝑡𝑒𝑔𝑒𝑟∧−10𝑀𝑃<𝑡<10𝑀𝑃}∪{⊥}
Da e: TimeIns an (86400)
19
FERRAMENTAS
Ha dwa e
O ha dwa e dispoñible a u iliza pa a o p oxec o é o seguin e:
a) Pa a as p obas en local, un o denado de sob emesa coas seguin es
ca ac e ís icas:
o AMD A hlon 64 X2 Dual Co e P ocesso 4800+ @ 2.5 GHz.
o 4 GB de memo ia RAM epa idos en 2 módulos DDR2 @ 800MHz.
o Disco du o SATA de 240 GB.
o Sis ema ope a i o Ubun u Desk op 14.04 LTS.
b) O clús e de compu ación dis ibuída que imos a u iliza es á mon ado no CiTIUS
e es á o mado po 5 nodos compu acionales HP P olian DL 370 G6. Cada un
con a con:
o 2 p ocesado es In el Xeon E5506 @ 2.13GHz.
o 12 GB de memo ia RAM ECC epa idos en 6 módulos DDR3 @ 800MHz.
o 2 discos du os de 2 TB mon ados en dos RAID0.
o 4 po os Gigabi E he ne .
o Ins alación do sis ema Cen OS 6.5 mínima.
So wa e
Todo o so wa e que se ai a u iliza é so wa e sen cus o de licenza.
20
XESTIÓN DO PROXECTO
Nes e apa ado desc íbense odos os aspec os elacionados coa xes ión do p oxec o que
son necesa ios pa a a súa co ec a execución.
Enunciado do alcance do p oxec o
Desc ición do alcance do p odu o
O so wa e a desen ol e pe mi i á a impo ación de da os an o de mos axes como de
en idades, sob e on es di e sas, ecoñecendo en conc e o o ipo de a qui o GeoTi , e
pe mi i á amén o p ocesamen o en pa alelo de di os da os impo ados, en conc e o
pe mi i á calcula o isco de incendio a pa i dos da os de pa ida de inidos. O usua io
dispo á dunha in e ace, que pode se un a qui o, sob e a cal pode á de ini as
ca ac e ís icas das on es de da os. Po úl imo, debe ase implemen a un módulo que
posibili e a expo ación dos alo es de isco ó o ma o es ánda ASCII pa a a súa
isualización.
C i e ios de acep ación do p odu o
O usua io dispón de lexibilidade pa a de ini as súas on es de da os.
O so wa e pe mi e impo a g andes can idades de da os (da o de de GB) sob e
un sis ema de almacenamen o dis ibuído.
O so wa e pe mi e p ocesa en pa alelo (nun clús e ) as ope acións de inidas.
O so wa e pe mi e ealiza p obas de endemen o sob e ope acións conc e as.
O so wa e pe mi e expo a os alo es de isco a un ichei o ASCII
co ec amen e es anda izado pa a a súa isualización.
En egables do p oxec o
So wa e en o ma o execu able, na linguaxe de p og amación que co esponda,
e coas dependencias de execución inco po adas de xei o que se poida execu a
di ec amen e sob e o amewo k de compu ación dis ibuída elixido.
Documen o da memo ia do p oxec o, na cal se especi ica án odas as
ca ac e ís icas que de inen o so wa e desen ol ido así como as ases de análise,
deseño, implemen ación e p obas le adas a cabo, e a documen ación asociada
á xes ión do p oxec o.
Exclusións do p oxec o
En xe al conside amos como exclusións do p oxec o odo aquilo que non es ea incluído
na especi icación de equisi os. En conc e o, quedan ó a do seu alcance:
A implemen ación de ope acións non elacionadas co caso de uso elixido ( isco
de incendio).
21
A inclusión de sopo e pa a ou os es ánda es de a qui os de da os xeog á icos
(po exemplo, Shape ile).
A implemen ación dunha in e ace de ep esen ación e explo ación de di os
o ma os.
Res icións do p oxec o
O p oxec o supo á 401,25 ho as de aballo au ónomo e 11,25 ho as de i o ías
que se dis ibui án nun máximo de 12 semanas.
O olume de da os do que se dispón pa a ace as p obas non supe a a o de de
decenas de GB.
A linguaxe de p og amación a u iliza debe á se compa ible co amewo k de
compu ación dis ibuída elixido.
As es icións espec o do uso de memo ia i án ma cadas polo en o no do que
se dispón pa a ealiza as p obas.
Supos os do p oxec o
Asumimos que dispoñemos do p esupos o necesa io pa a le a a cabo o
p oxec o.
Asumimos que di o p esupos o non se ai a modi ica .
Asumimos que dispoñemos dun en o no de compu ación dis ibuída adecuado
pa a le a a cabo as p obas.
22
Es u u a de descomposición do aballo
O seguin e diag ama o ece unha descomposición xe á quica dos p incipais paque es de
aballo a ealiza no p oxec o. Pos e io men e, no apa ado de plani icación, ag égase
un maio ni el de de alle a di os g upos de a e as.
Figu a 4.- Es u u a de descomposición de a e as.
PROXECTO
1. XESTIÓN DO
PROXECTO
2. EXPLORACIÓN DO
ESTADO DA ARTE
3. ANÁLISE DE
REQUISITOS
4. DESEÑO GLOBAL
5. PROTOTIPADO
INICIAL
6. DESENVOLVEMENTO
ITERATIVO
6.1. ANÁLISE, DESEÑO E
IMPLEMENTACIÓN
6.2. PROBAS
7. DOCUMENTACIÓN
DO PROXECTO
23
Desc ición do paque e de aballo
Núme o de paque e
1
Nome do paque e
Xes ión do p oxec o
Desc ición
Es e paque e ag upa as a e as de de inición do alcance e
da me odoloxía a u iliza , ealización da plani icación
empo al e da es imación de cus os, e de inición dun
p oceso de xes ión de iscos e ou o de con ol da
con igu ación do p oxec o. Tamén se inclúen aquí as
eunións.
Du ación es imada
45h
Responsable
Diego
P odu os
Enunciado do alcance do p oxec o, Plani icación
empo al, P esupos o inicial, P oceso de xes ión de iscos,
P oceso de xes ión da con igu ación
Desc ición do paque e de aballo
Núme o de paque e
2
Nome do paque e
Explo ación do es ado da a e
Desc ición
Es e paque e ag upa es a e as p incipais dedicadas a
documen a se sob e as p incipais solucións exis en es no
noso campo de aballo: solucións espaciais clásicas, Big
Da a e Spa ial Big Da a.
Du ación es imada
40h
Responsable
Diego
P odu os
-
Desc ición do paque e de aballo
Núme o de paque e
3
Nome do paque e
Análise de equisi os
Desc ición
Es e paque e con én como a e as a especi icación dos
equisi os an o uncionais como non uncionais e a
especi icación dos casos de uso.
Du ación es imada
11h
Responsable
Diego
P odu os
Especi icación de equisi os, Especi icación de casos de
uso
24
Desc ición do paque e de aballo
Núme o de paque e
4
Nome do paque e
Deseño global
Desc ición
As a e as des e paque e consis i án en ace un deseño a
ni el global do sis ema a desen ol e an o desde un
pun o de is a es á ico como desde un pun o de is a
dinámico.
Du ación es imada
8h
Responsable
Diego
P odu os
Diag amas de compoñen es, Diag amas de secuencia
Desc ición do paque e de aballo
Núme o de paque e
5
Nome do paque e
P o o ipado inicial
Desc ición
Inicialmen e cómp e desen ol e un p o o ipo uncional
do so wa e de inindo pa a elo as es u u as de da os e os
algo i mos cos que amos a aballa pos e io men e.
Tamén cómp e especi ica un o ma o de de inición de
on es pa a o usua io.
Du ación es imada
60h
Responsable
Diego
P odu os
Fichei o de de inición de on es, P o o ipo inicial
Desc ición do paque e de aballo
Núme o de paque e
6
Nome do paque e
Desen ol emen o i e a i o
Desc ición
O desen ol emen o consis i á nunha se ie de i e acións
o ien adas a p oduci so wa e uncional sob e o cal se
pode án ace p obas con inuas. Pa a elo, cada i e ación
equi i á dun b e e p oceso p e io de análise e deseño.
Du ación es imada
172h
Responsable
Diego
P odu os
Ve sión uncional do so wa e
25
Desc ición do paque e de aballo
Núme o de paque e
7
Nome do paque e
Documen ación do p oxec o
Desc ición
Es e g upo de a e as es á o ien ado á ealización da
memo ia do aballo e da p epa ación da p esen ación, e
de se o caso, a documen ación de uso do p og ama.
Du ación es imada
84h
Responsable
Diego
P odu os
Memo ia do p oxec o, Documen os de p esen ación,
Documen os de uso
32
O p oxec o comeza cunha eunión inicial pa a a p esen ación dos pa icipan es e da
emá ica así como do seu con ex o. A p imei a ase de aballo co espóndese coa
explo ación do es ado da a e, que du a ap oximadamen e uns seis días. Logo
p odúcese ou a eunión co obxec i o de de ini o alcance do p oxec o. A aíz des a
eunión elabó anse o enunciado do alcance do p oxec o e a es u u a de
descomposición de a e as, e de ínese un sis ema de con ol de con igu ación. A
seguin e eunión en como obxec i o iden i ica os equisi os do sis ema, e a pa i do
bo ado de equisi os ob ido nela elabó ase a lis a de equisi os uncionais e non
uncionais así como os casos de uso. Logo conc é anse a plani icación empo al, o
p esupos o e o plan de iscos do p oxec o. A seguin e eunión se e pa a iden i ica os
p incipais compoñen es do sis ema, que posibili a án a ealización dun deseño global
do mesmo an o desde un pun o de is a dinámico como desde un pun o de is a
es á ico. A con inuación, comeza a ase de desen ol emen o (a máis longa do p oxec o),
que no ma co do ciclo de ida elixido se p oduce i e a i amen e, comezando co
desen ol emen o dun p o o ipo inicial o almen e uncional e in oducindo mello as
nas seguin es i e acións. A i e ación 3 esé ase pa a a ealización do módulo de
expo ación e isualización, namen es as es an es se dedican á implemen ación de
mello as especí icas. Cada i e ación en as súas ases de análise, deseño,
implemen ación e p obas. Po úl imo, esé anse algo máis dunha decena de días pa a
a ealización da memo ia e a súa e isión. Pe iodicamen e, despois de cada eunión,
dedícase un empo mode ado a ace a e as de seguimen o e con ol do p oxec o.
Con ol da plani icación
Den o do paque e de aballo de xes ión do p oxec o, a a e a de seguimen o e con ol
do p oxec o debe incluí amén as comp obacións pe iódicas necesa ias pa a e i ica o
cump imen o da plani icación inicial especi icada. O in o me do a ance sob e a
plani icación do aballo se á un dos emas a a a en cada eunión pe iódica co xe e de
p oxec o ou, nes e caso, i o . Os cambios na plani icación debe án es a some idos á
súa ap obación, e ealiza anse seguindo o p oceso xe al de con ol de cambios de inido.
33
Es imación de cus os
A es imación de cus os non é máis ca unha ap oximación dos cus os dos ecu sos
necesa ios pa a comple a as ac i idades que compoñen o p oxec o. Pa a pode de ini
un p esupos o inicial podemos pa i da suma dos cus os es imados, en base a p ezos
de me cado, das ac i idades indi iduais ou paque es de aballo. Es e p esupos o ai a
cons i uí a liña base de cus o do p oxec o e o pos e io con ol de cus os consis i á en
ealiza un seguimen o sob e as posibles a iacións que poidan xu di sob e esa
es imación inicial.
Na seguin e áboa de allamos a es imación inicial de cus os do p oxec o:
Táboa 1.- Es imación de cus os.
Concep o
Recu so
Ho as
Cus o
Xes ión do p oxec o
XP
10
393.50
AN
10
293.00
ADP
45
863.10
Explo ación do es ado da a e
ADP
40
767.20
Análise de equisi os
ADP
11
210.98
Deseño global
ADP
8
153.44
P o o ipado inicial
ADP
60
1150.80
Desen ol emen o i e a i o
ADP
172
3298.96
Documen ación do p oxec o
XP
14
550.90
AN
14
410.20
ADP
84
1611.12
Ma e iais
PC
420
2.39
Alugue do clús e
Clús e
240
36.00
Cus os indi ec os
-
-
2045.74
Fondo de ese a
-
-
500.00
TOTAL
12287,33 €
O p ezo dos ecu sos humanos (baseado nunha es imación de p ezos de me cado a
pa i de o e as de aballo en In oJobs [15]) é o seguin e:
XP (Xe e de P oxec o): 39.35 €/ho a.
AN (Analis a p incipal): 29.30 €/ho a.
ADP (Analis a-Deseñado -P og amado ): 19.18 €/ho a.
O p ezo dos ecu sos ma e iais emí ese ó PC de sob emesa u ilizado e consis e no
cálculo da amo ización pa a o núme o ap oximado de ho as de uso en base ó p ezo
dun equipo de simila es ca ac e ís icas en Amazon [2]:
Valo de me cado do equipo: 559 €
Valo esidual do equipo: 60 €
Vida ú il do equipo: 87600 ho as (10 anos)
Co a de amo ización (po ho a): (559−60) / 87600=0.0057 €
34
O cus o do uso do clús e én de e minado polo cálculo da amo ización que
co esponde ó núme o de ho as de uso exis adas. Como se menciona no capí ulo de
e amen as, di o clús e es á compos o de cinco nodos HP P olian DL 370 G6 dos cales
se oma de e e encia, de no o, o p ezo ac ual de Amazon:
Valo de me cado do clús e : 2866.5 € * 5 unidades = 14332.5 €
Valo esidual do clús e : 200 € * 5 unidades = 1000 €
Vida ú il do clús e : 87600 ho as (10 anos)
Co a de amo ización (po ho a): (14332.5 – 1000) / 87600 = 0.15 €
Os cus os indi ec os calcúlanse u ilizando unha po cen axe do 21% sob e o cus o do
p oxec o (excluíndo o ondo de ese a):
Cus os indi ec os: 9741.59×0.21=2045.74 €
Con ol de cus os
Con én especi ica aqueles aspec os que pe mi i án le a a cabo un co ec o
seguimen o do cump imen o do p esupos o inicial así como o mecanismo median e o
cal pode á modi ica se, de se necesa io:
En p imei o luga cómp e de ini un ni el de p ecisión pa a o cus o, que se á de
dous decimais nes e p oxec o, e as unidades de medida pa a os di e en es ipos
de ecu sos, que son as seguin es:
o Núme o de unidades e p ezo po unidade pa a ecu sos ma e iais.
o Ho as/home pa a indica a can idade de aballo dunha pe soa e
eu os/ho a pa a indica o seu cus o económico.
o Núme o de meses e p ezo po mes pa a calcula o cus o dos se izos que
se con a en.
A exac i ude do p esupos o mello a usualmen e a medida que a anza a
ealización do p oxec o debido á exis encia dunha maio can idade de
in o mación. Admi imos unha ma xe de e o do p esupos o inicial de en e o -
10% e o +10%. A des iación pe mi ida ab angue es a ma xe, debendo aplica
accións co ec i as no caso de ebasalo. Po ou a pa e, pa a ace on e a
posibles imp e is os inclúese en di o p esupos o un ondo de ese a de a a
cincocen os eu os.
En odo caso, a modi icación do p esupos o inicial equi i á a ap obación dos
xe es de p oxec o median e a p esen ación do co esponden e in o me
xus i ica i o.
35
Xes ión de iscos
Plani icación da xes ión de iscos
Como p imei o paso pa a le a a cabo unha plani icación de iscos pa imos da
de inición das p incipais ca ac e ís icas que an a de ini a cada un dos iscos
baseándonos nas especi icacións usualmen e indicadas nas p incipais guías de iscos
u ilizadas no sec o [23]:
Impac o.- Rep esen a o e ec o que a oco encia do isco e ía no
desen ol emen o do p oxec o, en e mos de cus o, es o zo ou du ación o al do
mesmo.
P obabilidade.- Rep esen a a expec a i a da oco encia eal do isco.
Ni el de exposición.- P odu o do impac o pola p obabilidade. Tómase como
e e encia pa a a xes ión dos iscos.
Cómp e de ini alo es numé icos pa a cada unha des as ca ac e ís icas de xei o que se
poida cuan i ica e clasi ica a impo ancia de cada isco pa a o p oxec o:
Táboa 2.- Ni el numé ico de exposición a un isco.
P obabilidade
Al a
Media
Baixa
0.65
0.35
0.15
Impac o
Al o
0.65
0.42
0.22
0.1
Medio
0.35
0.22
0.12
0.05
Baixo
0.15
0.1
0.05
0.02
Os ni eis de impac o que apa ecen na áboa eñen o seguin e signi icado:
Al o.- Cando os e ec os da oco encia do isco supe en umb ais do 75% sob e o
o al en e mos de cus o, empo ou alcance.
Medio.- Cando os e ec os da oco encia do isco se si úan en umb ais de en e o
15% e o 65% sob e o o al en e mos de cus o, empo ou alcance.
Baixo.- Cando os e ec os da oco encia do isco non supe en umb ais do 15%
sob e o o al en e mos de cus o, empo ou alcance.
Os ni eis de p obabilidade que apa ecen na áboa eñen o seguin e signi icado:
Al a.- Cando a oco encia do isco se espe a du an e a ealización do p oxec o.
Media.- Cando a oco encia do isco non se pode p edici du an e a ealización
do p oxec o.
Baixa.- Cando a oco encia do isco non se espe a du an e a ealización do
p oxec o.
Respec o ós códigos de colo es da exposición esul an e, eñen o seguin e signi icado:
Ve mello.- Ni el de exposición al o.
La anxa.- Ni el de exposición medio.
Ve de.- Ni el de exposición baixo.
36
Iden i icación de iscos
O p oceso de iden i icación de iscos asociados ao p oxec o consis iu nunha
combinación das seguin es me odoloxías:
Re isión da documen ación, in en ando de ec a os iscos a pa i dos
p oblemas exis en es nos documen os do p oxec o.
To men a de ideas, ealizada nunha das eunións do g upo de aballo.
Lis a de con ol, seleccionando os iscos ele an es pa a es e p oxec o conc e o
dunha lis a xené ica[6].
Sendo así, a saída do p oceso consis iu na seguin e lis a de iscos iden i icados:
Táboa 3.- Lis a de iscos.
Código
Desc ición
Indicado
RSC01
Plani icación demasiado op imis a ou pouco
ealis a.
G ao de cump imen o
da plani icación.
RSC02
O inicio do p oxec o e ásase debido a
obxec i os di usos.
Da a de inalización
da ase inicial do
p oxec o.
RSC03
As e amen as pa a ealiza p obas non es án
dispoñibles no momen o necesa io.
Es ado de
dispoñibilidade do
clús e .
RSC04
Os i o es insis en en no os equisi os.
Pe icións de cambio
nas eunións
pe iódicas.
RSC05
O empo de desen ol emen o alá gase máis do
espe ado.
Da a de inalización
das ases de
desen ol emen o.
RSC06
Os equisi os non es aban ben de inidos.
P obas de e i icación
do so wa e en cada
i e ación.
RSC07
O aballo cun en o no so wa e dis ibuído
causa p oblemas non p e is os.
Da a de inalización
das p obas de
endemen o.
RSC08
O p odu o depende de es ánda es
insu icien emen e de inidos.
Resul ado do p oceso
de documen ación
sob e o es ado da
a e e as lib e ías
exis en es.
RSC09
A al a de mo i ación e de mo al educe a
p odu i idade.
G ao de cump imen o
da plani icación.
RSC10
Non se pode implemen a a uncionalidade
desexada ca linguaxe ou biblio ecas u ilizadas.
P obas de e i icación
do so wa e en cada
i e ación.
RSC11
A bu oc acia do p oxec o p oduce un p oceso
máis len o do espe ado.
G ao de cump imen o
da plani icación.
37
RSC12
O es o zo é maio do es imado.
Ho as de aballo
adicionais sob e as
e lexadas na
plani icación.
Análise cuali a i a de iscos
Es e ipo de análise cén ase en asigna unha p obabilidade e un impac o a cada isco
pa a pode de e mina un alo de exposición, u ilizando a áboa de alo es numé icos
de inida no apa ado an e io :
Táboa 4.- Análise cuali a i a de iscos.
Código
P obabilidade
Impac o
Exposición
RSC01
Al a
Medio
0.22
RSC02
Media
Medio
0.12
RSC03
Al a
Al o
0.42
RSC04
Baixa
Medio
0.05
RSC05
Al a
Medio
0.22
RSC06
Media
Al o
0.22
RSC07
Al a
Al o
0.42
RSC08
Baixa
Medio
0.05
RSC09
Baixa
Medio
0.05
RSC10
Media
Medio
0.12
RSC11
Baixa
Baixo
0.02
RSC12
Baixa
Baixo
0.02
Pódese ap ecia median e os alo es de exposición que exis en cinco iscos cun ni el de
exposición al o, dous iscos cun ni el de exposición medio e cinco iscos cun ni el de
exposición baixo.
Plani icación da espos a aos iscos
Vis os os ni eis de exposición no apa ado an e io , cómp e acla a en p imei o luga
que os iscos cun ni el de exposición baixo se acep an sen oma ningunha acción
adicional. Respec o ós demais iscos, imos a de ini unha es a exia de espos a de en e
as que p opoñemos na seguin e lis a:
E i a .- A acción a oma en como obxec i o in en a que o isco non chegue a
sucede .
T ans e i .- De í ase a esponsabilidade do isco nou a en idade,
p obablemen e ex e na.
Mi iga .- De ínese unha acción que eduza o dano p o ocado po un isco no
caso de que oco a.
Con inxencia.- T á ase de desen ol e un plan que se le a á a cabo no momen o
no que se de ec e que o isco apa ece.
Acep a .- Asumi o isco, cando o es o de al e na i as non son iables.
38
Na seguin e áboa de ínese a es a exia elixida pa a cada isco:
Táboa 5.- Es a exias de espos a aos iscos.
Código
Es a exia
RSC01
Mi iga (10% de olgu a en a e as c í icas)
RSC02
E i a (cla i icación dos obxec i os na eunión inicial)
RSC03
Con inxencia ( ealización de p obas en local con máquinas
i uais)
RSC04
Acep a
RSC05
Mi iga (10% de olgu a en a e as c í icas)
RSC06
E i a (cla i icación dos equisi os na eunión de
especi icación dos equisi os)
RSC07
Mi iga (u ilización de e sións es ables e adopción de
con igu acións base)
RSC08
Acep a
RSC09
Acep a
RSC10
Mi iga (u ilización dunha linguaxe de p opósi o xe al e de
lib e ías su icien emen e p obadas)
RSC11
Acep a
RSC12
Acep a
Seguimen o e con ol de iscos
A a e a de seguimen o e con ol dos iscos es á de inida na plani icación empo al
den o dun paque e de a e as denominado “Seguimen o e con ol do p oxec o”, que
se ai a execu a pe iodicamen e as cada i e ación. Di o seguimen o ealiza ase
median e os indicado es de isco de inidos na áboa 3 e, no seu caso, as accións a oma
basea anse nas indicadas na áboa 5. O con ol dos iscos e lexa ase de se necesa io
median e o co esponden e documen o de incidencias.
39
Análise de equisi os
Casos de uso
Os p incipais casos de uso do sis ema a desen ol e son os seguin es:
O usua io de ine a con igu ación das on es de da os a u iliza . Os dous ipos
p incipais de on es a conside a son as elacionais e as ec o iais.
O usua io execu a o p oceso de ex acción, ans o mación e ca ga dos da os
(ETL), sob e un sis ema de almacenamen o dis ibuído.
O usua io execu a a secuencia de ope acións de p ocesamen o sob e os da os.
En di as ope acións habe á que conside a especi icamen e as combinacións po
cla e compa ida ou po algunha condición espacial, así como as ag egacións de
en ás espaciais e/ou empo ais.
O usua io explo a e isualiza os da os de en ada e saída. As ca ac e ís icas dos
da os admi i án ep esen acións g á icas e/ou ex uais.
Figu a 8.- Diag ama de casos de uso.
A con inuación lís anse de xei o máis o mal o conxun o de casos de uso que compoñen
o sis ema, seguindo pa a elo as ins ucións indicadas na guía de Somme ille [23]:
40
CU01
Función
De inición das on es de da os.
Impo ancia
Al a
Dependencias
-
Desc ición
T á ase de de ini median e o o ma o que se especi ique as on es
(a qui os, bases de da os, ...) a pa i das cales se an a impo a os
da os cos que aballa o sis ema.
En adas
Localización do medio de de inición de da os.
Fon e
A qui os e bases de da os.
Saídas
Fo ma o de de inición de on es comple ado.
Des ino
Con ol p incipal do p og ama.
Accións
1. Ob e a localización e o o ma o de de inición de on es de
da os.
2. Comple a a de inición coa in o mación sob e as on es de
da os a u iliza polo sis ema.
Excepcións
-
P econdicións
Exis en on es de da os a especi ica .
Pos condicións
A in o mación de on es de da os es á dispoñible na localización
indicada.
CU02
Función
Impo ación de da os con encionais de on es elacionais.
Impo ancia
Al a
Dependencias
CU01
Desc ición
T á ase de inco po a ó sis ema da os como po exemplo os nomes
das es acións me eo olóxicas que se almacenan nunha áboa
dunha base de da os.
En adas
Pa áme os de conexión coa base de da os.
Fon e
Fo ma o de de inición das on es de da os.
Saídas
Es u u a de da os cos alo es impo ados.
Des ino
Con ol p incipal do p og ama.
Accións
1. Comp oba se exis en on es de da os elacionais de inidas.
2. Se exis en, ealiza a impo ación dos da os de ipo
con encional indicados nas on es.
Excepcións
3. Se non exis en, mos a unha mensaxe in o ma i a.
P econdicións
Exis en on es de da os elacionais de inidas.
Pos condicións
O con ol do p og ama dispón dos da os en memo ia.
41
CU03
Función
Impo ación de da os de en idades xeog á icas de bases de da os
espaciais, así como a súa e olución empo al.
Impo ancia
Al a
Dependencias
CU01
Desc ición
T á ase de inco po a ó sis ema da os como po exemplo a
xeome ía que indica a localización dunha es ación ou a se ie
empo al de obse acións me eo olóxicas desa es ación
almacenados en áboas de bases de da os espaciais.
En adas
Pa áme os de conexión coa base de da os.
Fon e
Fo ma o de de inición das on es de da os.
Saídas
Es u u a de da os cos alo es impo ados.
Des ino
Con ol p incipal do p og ama.
Accións
1. Comp oba se exis en on es de da os elacionais con
ex ensións espaciais de inidas.
2. Se exis en, ealiza a impo ación dos da os de ipo
xeog á ico ou empo al indicados nas on es.
Excepcións
3. Se non exis en, mos a unha mensaxe in o ma i a.
P econdicións
Exis en on es de da os elacionais de inidas con ex ensións
espaciais.
Pos condicións
O con ol do p og ama dispón dos da os en memo ia.
CU04
Función
Impo ación de cobe u as xeog á icas e a súa e olución empo al
almacenados en a qui os de ipo as e ou de ec o es
mul idimensionais.
Impo ancia
Al a
Dependencias
CU01
Desc ición
T á ase de inco po a ó sis ema da os como po exemplo os
alo es de ele ación do e eo que se almacenan nun a qui o cun
o ma o es anda izado ipo Ne CDF ou GeoTi .
En adas
In o mación de localización e ipo de a qui o.
Fon e
Fo ma o de de inición das on es de da os.
Saídas
Es u u a de da os cos alo es impo ados.
Des ino
Con ol p incipal do p og ama.
Accións
1. Comp oba se exis en on es de da os asociadas a ichei os
de inidas.
2. Se exis en, ealiza a impo ación, en unción do ipo de
a qui o, dos da os indicados nas on es.
Excepcións
3. Se non exis en, mos a unha mensaxe in o ma i a.
P econdicións
Exis en on es de da os asociadas a ichei os de inidas.
Pos condicións
O con ol do p og ama dispón dos da os en memo ia.
48
Deseño global
A con inuación p esén ase unha isión in eg ada e a g andes azos dos p incipais
compoñen es do sis ema. Es a ep esen ación en como obxec i o p opo ciona unha
idea xe al da a qui ec u a a desen ol e e como in e accionan en e si os módulos
so wa e que a compoñen.
A qui ec u a do sis ema
Figu a 9.- A qui ec u a de compoñen es do sis ema.
O sis ema componse de es módulos p incipais:
1. Módulo ETL pa a a impo ación de da os, que accede ós di e en es ipos de
on es a a és das co esponden es in e aces.
2. Módulo de p ocesamen o, que le os da os a p ocesa desde o sis ema de
almacenamen o dis ibuído pa a pos e io men e ol e a esc ibi o esul ado en
di o sis ema.
3. Módulo de isualización, que accede ós da os do esul ado do p ocesamen o
esc i os no almacenamen o dis ibuído pa a mos alos po pan alla.
49
As in aes u u as coas que in e accionan di os módulos son o sis ema de
almacenamen o dis ibuído, que pe mi i á unha xes ión in eg ada de da os p oceden es
de on es di e sas, e as p opias on es de da os, que poden se an o elacionais
(con endo da os de ipo en idade) como a qui os de a ays espazo- empo ais
(con endo cobe u as xeog á icas) .
In e accións do sis ema
Figu a 10.- In e acción en e os compoñen es do sis ema.
Como se obse a na igu a an e io , o usua io inicia a in e acción co sis ema
con igu ando as on es de da os pa a pos e io men e execu a o módulo de ex acción,
ans o mación e ca ga que ealiza á a impo ación dos da os indicados ca a o sis ema
de almacenamen o dis ibuído. Eses da os se án u ilizados polo módulo de
p ocesamen o pa a ob e o esul ado desexado que en úl ima ins ancia pode á se
isualizado median e o módulo de isualización. Pa a a coo dinación en e o módulo ETL
e o de p ocesamen o u iliza emos un ca álogo de da os que amén se ga da á no
sis ema de almacenamen o dis ibuído.
50
Tecnoloxías escollidas
En base ós equi imen os especi icados pa a o sis ema, esbózanse dúas cues ións
p incipais no e e en e ás ecnoloxías a u iliza pa a a súa implemen ación que es án
in insecamen e elacionadas:
1. Dunha banda, pa a ealiza o p ocesamen o e, de se o caso, a ex acción,
ans o mación e ca ga dos da os en pa alelo, o sis ema debe execu a se sob e
unha pla a o ma de compu ación dis ibuída. Segundo o explicado no con ex o
do p oblema, as p incipais ecnoloxías u ilizadas na ac ualidade pa a le a a cabo
p oxec os des e ipo son amewo ks do ipo Hadoop ou Spa k. O equipo do
p oxec o decidiu le a a cabo unha análise das p incipais o alezas e debilidades
de di as ecnoloxías e oma a decisión de cal u iliza :
Táboa 6.- Compa a i a de amewo ks.
F amewo k
Fo alezas
Debilidades
Hadoop
Maio ni el de
desen ol emen o
Almacenamen o dis ibuído
inco po ado (HDFS)
Tole ancia a allos
Compa ibilidade con YARN e
Mesos
Open Sou ce
Ha dwa e de baixo cus o
Ecosis ema máis amplo
U ilización do esquema de
p ocesamen o MapReduce
Esc i u a en disco as cada
ope ación in e media
Des inado a se execu ado en
clús e es
Spa k
Maio elocidade de
p ocesamen o debido á
edución de esc i u as en
disco
Compa ibilidade con HDFS e
o ma os de a qui o de
Hadoop
Tole ancia a allos
Maio lexibilidade na
de inición de ope acións
sob e os da os
Módulo Spa k SQL
Compa ibilidade con YARN e
Mesos
Open Sou ce
Ha dwa e de baixo cus o
Cu a de ap endizaxe máis
ápida
Es ado expe imen al dalgunhas
ca ac e ís icas
Al o consumo de memo ia
Des inado a se execu ado en
clús e es
51
Despois de le a a cabo pequenos expe imen os de endemen o, iñamos
comp obado que o endemen o de Spa k na ase de p ocesamen o de da os e a
supe io ó endemen o de Hadoop (nalgúns casos a a dez eces máis ápido),
debido ó di e en e modo que cada amewo k en de le a a cabo di o
p ocesamen o. En conc e o, o modelo p ocesamen o le ado a cabo po Spa k, ó
es a máis o ien ado ca a o encadeamen o de ope acións sob e conxun os de
da os dis ibuídos en memo ia (RDDs) pa ecía adecua se máis á se ie de
ans o macións ípicas sob e os ipos de da os xeog á icos que se an a u iliza
no noso sis ema. Es a in uición euse e o zada po dous engadidos:
A compa ibilidade de Spa k con HDFS pe mi i ía dispoñe dun sis ema de
almacenamen o dis ibuído sob e o cal almacena os da os obxec o de
p ocesamen o e o esul ado do mesmo.
O ecen e desen ol emen o da ex ensión pa a Spa k coñecida como
Spa k SQL pe mi i ía o p ocesamen o de da os de ipo es u u ado, aínda
es ando dis ibuídos, u ilizando como linguaxe SQL. Es e módulo
esul a ía especialmen e ú il á ho a de ealiza as ope acións de
combinación e de ag egación mencionadas nos equi imen os.
Polo an o a decisión do equipo oi a de adop a Spa k como amewo k de
execución do sis ema en conxun o.
2. Debido ó conside ado no pun o an e io , a cues ión sob e o sis ema de
almacenamen o dis ibuído a u iliza o ien ouse ca a o uso de HDFS po e
ga an ida a compa ibilidade con Spa k (aínda que exis en al e na i as como
Apache HBase [13] ou Apache Cassand a [7]). HDFS é o sis ema de ichei os
dis ibuído e baseado en Ja a que o ma pa e de Hadoop, p o endo
almacenamen o escalable e ole an e a allos. Hai que e en con a que a maio
pa e de clús e es nos que se u ilizan es es amewo ks adop an como
con igu ación p ede e minada o uso de HDFS baixo un xes o ipo YARN ou
Mesos. Asumindo es a ía de desp egue do sis ema xu diu o abanico de
posibilidades e e en es ó ipo de a qui o pa a almacena os nosos da os
impo ados en HDFS. Nes e pun o oi onde se puxo de mani es o a
compa ibilidade de Spa k cos o ma os de a qui o c eados no ecosis ema de
Hadoop. En conc e o, alo á onse os seguin es o ma os comúns [16]:
Táboa 7.- Compa a i a de o ma os de a qui os.
Fo ma o
Es u u ado
Desc ición
Tex o
Non
A qui os de ex o plano. Almacénase un exis o po
liña.
JSON
Semi
A qui os de ex o semi-es u u ados.
CSV
Si
A qui os de ex o de uso común con sepa ado es.
SequenceFile
Si
Fo ma o especí ico de Hadoop que segue un esquema
cla e- alo e u iliza comp esión.
A qui os de
obxec os
Si
Almacenamen o se ializado de obxec os, dependen e
do código das clases.
52
A o
Si
Fo ma o de almacenamen o se ializado e con esquema
que sopo a ipos de da os complexos.
Pa que
Si
Fo ma o de almacenamen o po columnas que
almacena campos anidados de o ma e icien e.
En conc e o, o o ma o SequenceFile oi o u ilizado en aballos an e io es
debido á u ilidade dalgunhas das súas ca ac e ís icas:
o É o o ma o u ilizado po de ec o po pa e de Hadoop pa a o paso da
ase de Map á ase de Reduce.
o O acceso ós da os de o ma non secuencial é máis e icien e g azas ó
o ma o cla e- alo .
o Pódese comp imi e pódese pa iciona pa a dis ibuílo como máis
con eña.
o O almacenamen o é máis e icien e ó a a se de ichei os bina ios.
Decidimos implemen a o p imei o p o o ipo do sis ema en o ma o
SequenceFile pa a ap o ei a nos desa expe iencia p e ia e educi o isco, nas
ases iniciais, de adop a un o ma o co que non iñamos aballado
an e io men e.
Unha e cei a cues ión de i ada das dúas an e io es oi a de que linguaxe de
p og amación u iliza . Spa k é compa ible coas linguaxes Scala, Ja a e Py hon. Cada
unha delas cons i úe un en oque de p og amación di e en e. Pensando na o mación
ecibida ó longo da i ulación, amén cun en oque de edución de iscos do p oxec o en
men e, decidimos adop a Ja a como linguaxe de desen ol emen o pola nosa
expe iencia con di a linguaxe, asumindo as súas an axes e limi acións.
53
I e ación 1
A p imei a i e ación do p oxec o consis iu en ealiza un p o o ipo uncional do sis ema
pa a comp oba o seu co ec o uncionamen o sob e o amewo k de compu ación
dis ibuída elixido e iden i ica cues ións de deseño conc e as que se pode ían mello a
en seguin es i e acións. Imos a di idi o desen ol emen o en dous módulos p incipais:
un módulo pa a o ETL e ou o pa a o p ocesamen o. Como paso p e io, cómp e de ini
cal ai a se o o ma o median e o cal o usua io de ina as on es de da os.
Dado que o desen ol emen o do so wa e se ai a di ixi ca a a implemen ación do
cálculo do isco de incendio, que implica an o un da os de pa ida conc e os como unha
secuencia de ope acións conc e as, emos decidido, pa a es a p imei a i e ación, ga da
no sis ema de almacenamen o dis ibuído os iden i icado es necesa ios en cada
conxun o de da os pa a pode ealiza as combinacións en e eles. Es a es a exia en
como des an axe o cus o adicional an o en e mos de espazo en disco como en e mos
de empo de esc i u a e lec u a que supón o almacenamen o de di os iden i icado es,
pe o educe e simpli ica o pipeline de ope acións necesa ias pa a calcula o isco.
Fo ma o de de inición das on es de da os
O ango de posibilidades pa a a de inición de da os de en ada a un p og ama é amplo.
Nes e caso, equi imos un o ma o que es ea es anda izado e que pe mi a lexibilidade
á ho a de engadi no os ipos de on es, ó mesmo empo que sexa sinxelo de u iliza
pa a o usua io e non p esen e p oblemas de compa ibilidade á ho a de ex ae a
in o mación desde o p og ama. Conside ando as ca ac e ís icas ci adas, decidimos
u iliza un ichei o XML como o ma o de de inición de da os. Di o ichei o con én a
seguin e es u u a de e ique as:
<sou ces>
<da abases>
<da abase name=‘name’>
<access u l=“__” use =“__” passwo d=“__” d i e =“__”/>
<dimensions>
<dimension name=“__” ype=“__” sample=“__” able=“__” column=“__”/>
<dimension name=“__” ype=“__” sample=“__” esolu ion=“__” s a =“__” end=“__”/>
</dimensions>
<mappingse s>
<mappingse name=“__” able=“__”>
<dimension e =“__” column=“__”/>
<mapping name=“__” ype=“__” column=“__”/>
<mapping name=“__” ype=“__” p ecision=“__” esolu ion=“__” column=“__”/>
<mapping name=“__” ype=“__” p ecision=“__” scale=“__” column=“__”/>
</mappingse >
</mappingse s>
</da abase>
</da abases>
< iles>
< ile pa h=“__” ile ype=“__”>
54
<dimensions>
<dimension name=“__” ype=“__” sample=“__” esolu ion=“__” s a =“__” end=“__”/>
</dimensions>
<mappingse s>
<mappingse >
<dimension e =“__”/>
<mapping ype=“__” p ecision=“__” scale=“__”/>
</mappingse >
</mappingse s>
</ iles>
</sou ces>
<cons an s>
<cons an name=“__” alue=“__”/>
</cons an s>
No p imei o ni el de inimos as e ique as “sou ces” e “cons an s”, que pe mi en indica
on es de da os e cons an es, espec i amen e. As cons an es simplemen e eciben un
nome e un alo . Den o das on es, es as poden se bases de da os ou ichei os. Unha
base de da os, e ique a “da abase”, ecibe un nome, e en uns pa áme os de acceso,
e ique a “access”, que son a u l, o nome de usua io, o con asinal e o d i e a u iliza
pa a ace a conexión. Os ichei os, e ique a “ ile”, pola súa pa e, eñen de inidos po
un pa h, que nos indica onde es án, e un ipo pa a sabe de que es ánda se a a. Os
da os que con eñen as on es poden se dimensións ou mapas de alo es, como xa
emos explicado no con ex o. As dimensións eñen o seu p opio ni el de de inición,
onde podemos indica o seu nome, o seu ipo e se é de ipo mos axe ou non. En caso
a i ma i o debemos indica a esolución ( amaño eal de cada pun o espacial ou
empo al), así como os alo es inicial e inal. Nas dimensións p esen es en bases de
da os cómp e indica a áboa e a columna pa a accede ós da os. Pe o amén poden
o ma pa e de cubos de da os (mappingse s), e hai que indicalo explíci amen e den o
da e ique a co esponden e, u ilizando como e e encia o nome da dimensión. Os cubos
de da os eñen amén un nome e, no caso de es a nunha base de da os,
co espóndense cunha áboa, que hai que indica . Os mapas de alo es (e ique a
mappings) eñen amén un nome e un ipo que, no caso de se xeomé ico ou de
p ecisión ixa, equi e unha p ecisión (pa a indica o núme o de ci as necesa io pa a a
ep esen ación) e unha esolución ou unha escala (pa a indica o núme o de decimais
almacenados), espec i amen e. Is o é debido a que es es alo es se an a almacena
como alo es en ei os no sis ema, pa a aumen a a súa e iciencia.
Análise do módulo ETL
Na ase p e ia de elección de ecnoloxías de implemen ación decidimos comeza
u ilizando como o ma o de almacenamen o en HDFS os a qui os de ipo SequenceFile.
Is o conle a ce as es iccións á ho a de deseña o sis ema, xa que os obxec os que se
almacenan en di os a qui os deben implemen a a in e ace W i able da API de Hadoop.
Di a in e ace p opo ciona un p o ocolo de se ialización simple e e icien e pa a os
obxec os que a implemen an que se á u ilizado á ho a de esc ibilos nos a qui os
mencionados. Os da os impo ados desde as on es de inidas polo usua io debe án se ,
en consecuencia, encapsulados en con edo es que implemen en a in e ace, e en
55
o ma o cla e- alo (p opio dos SequenceFile, como emos explicado). Pos o que non
se p ecisa o acceso alea o io ós da os almacenados, senón que se an a ca ga en
memo ia en lo es pa a o seu p ocesamen o, a cla e u ilizada non en impo ancia máis
aló de se unha esixencia do o ma o.
No con ex o explicábamos que os RDDs son as coleccións de da os dis ibuídas coas que
aballa Spa k. Cada RDD pode con e obxec os da linguaxe conc e a na que se
implemen a. Exis en dous ipos de ope ación p incipais que se poden aplica sob e os
RDDs:
1. T ans o macións.- Son ope acións que de ol en un no o RDD, como po
exemplo a aplicación dun il o sob e os da os.
2. Accións.- Son ope acións que de ol en un alo inal ó p og ama p incipal
(denominado d i e en Spa k) ou o esc iben nun sis ema de almacenamen o
ex e no, como po exemplo a con a do núme o de apa icións dun a ibu o no
conxun o de da os.
A aplicación de a aliación a día (lazy e alua ion) implica que as ans o macións sob e
un RDD non se aplican a a que o p og ama de ec a unha acción, e polo an o edúcense
o núme o de pasadas sob e os da os e o empo de desen ol emen o do so wa e, xa
que é o p opio amewo k quen se enca ga de xe a unha á bo e de execución de
ope acións e icien e.
Median e a aplicación dunha ans o mación sob e un RDD que con eña os nosos da os
de pa ida, podemos cons uí os con edo es de da os ipo W i able que necesi amos
pa a almacenalos en HDFS.
Ou o aspec o a e en con a no deseño son as es u u as de da os que imos a u iliza
pa a almacena os da os de ipo xeog á ico. Temos que con empla os p incipais
obxec os xeomé icos que se poden p esen a nas on es a u iliza , e que son os
de inidos no con ex o: pun os 2D, cadeas de pun os, polígonos e mul ipolígonos. Pos o
que an a o ma pa e dos obxec os a almacena en HDFS, di as es u u as deben
implemen a amén a in e ace W i able. Ademais, habe á que con empla unha
in e ace que pe mi a pa sea as di e en es ep esen acións das xeome ías en cada
on e de da os aos ipos xeomé icos p imi i os do sis ema.
En e os equi imen os do sis ema incluíase a posibilidade de impo a da os an o de
on es elacionais, xa sexan en idades con encionais ou en idades xeog á icas p esen es
en bases de da os espaciais, como de on es GIS es anda izadas que con eñan ec o es
de alo es ou cobe u as xeog á icas. Is o amén equi e do deseño dunha in e ace que
posibili e o acceso aos di e en es ipos de on es.
Po úl imo, cómp e de ini un ca álogo do sis ema no que se ecollan os me ada os e
ca ac e ís icas dos di e en es conxun os de da os exis en es an o nas on es como no
almacenamen o dis ibuído. Pos o que se a a de g upos di e xen es, o deseño dun
ca álogo di e en e pa a cada unha das dúas pa es cons i úe unha mello a ó desacopla
e educi as dependencias en e cada unha.
56
Resumidamen e, o p oceso de lec u a de da os comeza coa ob ención de in o mación
do a qui o de con igu ación pa a cada dimensión, cubo de da os e cons an e pa a
ga dalas no ca álogo de on es. No caso das dimensións habe á que indica an o a súa
o ixe como se é unha mos axe ou non. No caso dos cubos de da os habe á que indica
a súa o ixe. Se a on e dos da os é unha base de da os, habe á que indica os pa áme os
de conexión, men es que se se a a dun a qui o debe ase indica o seu ipo. Os da os
p oceden es das bases de da os pode anse impo a en pa alelo a a és da p opia API
de Spa k SQL, men es que os da os de a qui os es anda izados habe á que pa sealos
( aléndonos de lib e ías ex e nas) e pa alelizalos. Como paso inal habe á que pa sea
os da os a obxec os W i ables e esc ibilos en HDFS con o ma o SequenceFile.
Desc ición das on es de da os
Pa a o caso de uso sob e o que imos desen ol e o sis ema, é dici , o cálculo do isco de
incendios (nes e caso pa a o e i o io galego), imos a u iliza as seguin es on es de
da os:
SXBD espacial:
o Base de da os Pos GIS coas seguin es áboas:
Es acion(id, nomb e, loc)
Obse acion(es acion, echa, empe a u a, humedad, ien o)
Municipio(codigo, nomb e, poblacion, geo)
Especies(id, especies, geo)
ModCombus ible(id, modelo, geo)
o A qui o de con igu ación:
De inición de “Dimensions” e “Ex ensional MappingSe s”
Dimensions
IdEs acion
FechaObse acion (Sampling)
CodMun
idEspecie
idModelo
Ex ensional MappingSe s
Es acion
o Dominio: IdEs acion
o Mappings: Nomb e, Loc
Obse acion
o Dominio: IdEs acion, FechaObse acion
o Mappings: Tempe a u a, Humedad, Vien o
Especies
o Dominio: IdEspecie
o Mappings: Especies, Geo
ModCombus ible
o Dominio: IdModelo
o Mappings: Modelo, Geo
o A qui o GeoTi de ele ación:
Resolución a 200 me os pa a o e i o io galego
57
A qui o de con igu ación:
Dimensions
o Loc200m
Ex ensional Mappings
o Topo
Dominio: Loc200m
Mappings: ele acion
o Cons an es (a engadi no a qui o XML):
Dis ancia IDW.
Pesos pa a media ponde ada.
Máximos e mínimos pa a no malización.
Deseño do módulo ETL
A con inuación mos amos an o a isión es á ica (diag ama de clases) como a isión
dinámica (diag ama de secuencia) do módulo ETL des a p imei a i e ación.
64
Median e a moni o ización das a e as de c eación dos obxec os W i able e esc i u a en
disco (como se mos a na igu a an e io ), puidemos comp oba que o empo dedicado
a di as a e as p edominaba sob e a lec u a dos da os a pa i das on es e inco ía en
ine iciencias p obablemen e p escindibles.
Análise do módulo de p ocesamen o
Os a qui os SequenceFile expo ados co módulo ETL con eñen os da os sob e os que
imos a ealiza o p ocesamen o, e es án almacenados en HDFS de o ma dis ibuída e
eplicada, polo cal a implemen ación da lec u a dos da os ai a se dependen e de di os
o ma os. Respec o á pa e de a amen o deses da os, pa a o caso de uso do cálculo de
isco de incendios o p ocesamen o a le a a cabo implica a ealización de ope acións
ípicas de ans o mación, unión ou ag egación de conxun os de da os. Os p opios
mé odos an o da clase Ja aRDD como da clase Da aF ame implemen an algunhas
des as ope acións e a maio es dan a posibilidade ó p og amado de de ini as súas
uncións especí icas pa a aquelas ope acións que non es ean con empladas. Logo, pa a
impo a os da os en memo ia habe á que u iliza a in e ace co esponden e que
pe mi a accede ó o ma o SequenceFile, e despois ace as ans o macións que sexan
necesa ias pa a aplica os ope ado es que pe mi an calcula o isco de incendio.
Finalmen e, os alo es de isco que se ob eñen como esul ado deben se almacenados
no sis ema de almacenamen o dis ibuído, podendo u iliza pa a elo o o ma o de
esc i u a po de ec o que p opo cione a API.
Explicación do cálculo do isco de incendios
A secuencia de ope acións pa a calcula o isco de incendios sob e os da os de pa ida
p opos os implica unha se ie de lec u as, ans o macións, combinacións, ag egacións e
cálculos que esumimos b e emen e a con inuación:
1. Lec u a dos da os de es acións.
2. Lec u a dos da os das obse acións.
3. Unión en e es acións e obse acións u ilizando o iden i icado de es ación.
4. Lec u a de da os de ele ación.
5. Cálculo da penden e en cada píxel a pa i da ele ación. Imos a segui o en oque
p opos o po Ho n [14]: deno ando ele a ion(p) a ele ación na localización p e
deno ando pnw, pn, pne, pw, pe, psw, ps e pse as localizacións eciñas
co esponden es ó p no oes e, no e, no des e, oes e, es e, su oes e, su e
su des e, en ón a penden e no pun o p deno ada po slope(p) ob ense coa
seguin e ó mula:
𝑋𝑐𝑜𝑚𝑝(p)=1∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(pnw)+2∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(pw)+1∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(sw)
−1∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(pne)−2∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(pe)−1
∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(se)
65
𝑌𝑐𝑜𝑚𝑝(p)=1∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(psw)+2∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(ps)+1∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(se)
−1∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(pnw)−2∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(pn)−1
∗𝑒𝑙𝑒𝑣𝑎𝑡𝑖𝑜𝑛(ne)
𝑠𝑙𝑜𝑝𝑒(p)=𝑎𝑡𝑎𝑛1(√𝑋𝑐𝑜𝑚𝑝(𝑝)2+𝑌𝑐𝑜𝑚𝑝(𝑝)2)
Fó mula 1.- Cálculo da penden e.
6. Unión po dis ancia dos da os de penden e co conxun o de da os ob ido en (3).
7. Ag upación de (6) po localización, da a e penden e, e cálculo da in e polación
IDW pa a a empe a u a, a humidade e o en o. O mé odo IDW (In e se Dis ance
Weigh ed) é un mé odo de in e polación espacial que que asigna pesos ós da os
do en o no dun pun o en unción in e sa da dis ancia que os sepa a. Po
exemplo, se pa a un ins an e especí ico deno amos empe a u e(p) como a
in e polación da empe a u a en cada localización ou píxel, o cálculo ealízase a
pa i das empe a u as obse adas en cada es ación si, deno ada
empe a u e(si), coa seguin e ó mula:
𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒(p)=
{
∑𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒(𝑠𝑖)
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)2
𝑖
∑1
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)2
𝑖,𝑖𝑓 0<𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)<𝑑
𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒(𝑠𝑖),𝑖𝑓 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)=0
Fó mula 2.- In e polación dos alo es de obse ación.
8. Lec u a de da os dos modelos de combus ible.
9. Unión, po in e sección xeomé ica, en e os modelos e (7).
10. Ag upación po localización, penden e, da a, e alo es in e polados das
obse acións, seleccionando o mínimo modelo de combus ible.
11. No malización e ag egación dos pa áme os. En cada localización p, os alo es
de empe a u a, humidade, elocidade do en o e modelo de combus ible
deben se no malizados a alo es no in e alo [0, 1].
12. Po úl imo, o isco de incendio en cada localización p calcúlase como unha media
a i mé ica ponde ada dos compoñen es no malizados. Pa a a ponde ación, hai
que e en con a que o isco inc emén ase coa penden e, a empe a u a, a
elocidade do en o e o modelo de combus ible, men es que diminúe coa
humidade.
Deseño do módulo de p ocesamen o
A con inuación mos amos an o a isión es á ica (diag ama de clases) como a isión
dinámica (diag ama de secuencia) do módulo de p ocesamen o des a p imei a
i e ación.
66
Diag ama de clases
Figu a 14.- Diag ama de clases pa a o módulo OLAP.
A clase p incipal do p og ama cons i úese coma semp e no pun o cen al ó edo do cal
ai a xi a a c eación dos obxec os necesa ios. Imos a eu iliza a clase Ca alog2 pa a
pode ins ancia o ca álogo do sis ema que emos almacenado en HDFS. Es e ca álogo
pode se u ilizado den o das uncións p opias de inidas polo p og amado . Un exemplo
de unción pa a aplica sob e un RDD é a Func ionPai Pa se , que se enca ga ía de
pa sea as uplas cla e- alo impo adas desde un SequenceFile a un Ja aRDD de
con edo es, en iando unha ins ancia de di a unción como pa áme o do mé odo map()
aplicado sob e o Ja aPai RDD inicial (que se pode xe a en memo ia lendo o
SequenceFile co mé odo sequenceFile() do Ja aSpa kCon ex ). Nes e caso os con edo es
son obxec os des inados a almacena da os en memo ia e polo an o non é necesa io
que implemen en a in e ace W i able. As uncións de inidas polo usua io deben
implemen a o mé odo call() da in e ace Func ion da API de Spa k. No caso de se
uncións a execu a sob e Da aF ames, exis e ou a in e ace di e en e na API
67
denominada UDF. En unción dos pa áme os que ecibe cada unción, exis en
in e aces especí icas: UDF1, UDF2, UDF3, ..., e Func ion, Func ion2, Func ion3, ... O
exemplo de UDF que se mos a é unha unción que calcula a dis ancia en e dous
pun os que o man pa e dos a ibu os de dous Da aF ames di e en es. As uncións
de inidas an a aballa en moi os casos con da os p imi i os do sis ema, coma o
Poin 2D (cuxa clase xa non necesi a implemen a W i able ampouco). Po úl imo,
u iliza emos mé odos especí icos da clase Ja aRDD pa a ope acións especí icas, como
po exemplo a xe ación dun índice au oinc emen al usando zipWi hUniqueId().
Diag ama de secuencia
Figu a 15.- Diag ama de secuencia pa a o módulo OLAP.
No diag ama de secuencia podemos obse a a o de das accións a execu a pa a a
lec u a dun de e minado conxun o de da os e o seu pos e io p ocesamen o. Unha ez
c eados o con ex os e lido o ca álogo desde o mé odo main(), ealízase unha chamada
ó me odo sequenceFile() do Ja aSpa kCon ex indicándolle como pa áme os a u a do
a qui o a le en HDFS e as clases que ac úan como cla e e como alo . Es e mé odo
de ol e un Ja aPai RDD cos obxec os W i able impo ados. Pa a ealiza o pa seo
debemos que aplica a unción que emos de inido como Func ionPai Pa se , a a és
do mé odo map() do Pai RDD, que ai a de ol e un no o RDD de con edo es co nome
e a xeome ía (en da os p imi i os do sis ema) das es acións. No seguin e paso podemos
aplica ope acións conc e as que sexan necesa ias en cada conxun o de da os. Despois
de ace as ans o macións sob e os RDDs necesi amos con e elos en Da aF ames pa a
pode aplica ope ado es elacionais especí icos como a unión po a ibu os (mé odo
68
join()) ou uncións p opias. Pa a c ea un Da aF ame a pa i dun Ja aRDD u ilizamos a
mesma es a exia ca no módulo de ETL, acendo unha chamada ó mé odo
c ea eDa aF ame() do SQLCon ex que ecibe como a gumen os o RDD de pa ida e o
esquema de da os a aplica .
P obas uni a ias sob e o módulo de p ocesamen o
P obas de uncionalidade
O obxec i o des as p obas oi en p imei o luga a comp obación do co ec o
uncionamen o do módulo, aléndonos da e amen a Spa k-Shell pa a isualiza o
con ido do a qui o SequenceFile esul ado cos índices de isco. Respec o ás
uncionalidades conc e as, de inimos e execu amos os seguin es casos de p oba:
CP_IT1_OLAP_01
Mé odo
Func ionPai Pa se .call()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que os pa seo dos pa es cla e- alo dos
da os de SequenceFile se le a a cabo co ec amen e.
En adas equi idas
Ja aPai RDD de pa es cla e- alo a pa i dun SequenceFile.
Saídas espe adas
Ja aRDD de con edo es de da os.
CP_IT1_OLAP_02
Mé odo
Func ionPai Pa se .call()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que se e i a o pa seo de a qui os
SequenceFile mal o mados.
En adas equi idas
Ja aPai RDD de pa es cla e- alo a pa i dun SequenceFile
con da os mal o mados.
Saídas espe adas
Excepción indicando o ipo de e o.
CP_IT1_OLAP_03
Mé odo
UDFDis ance.call()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que o il ado de da os nun Da aF ame
aplicando unha unción de dis ancia se le a a cabo
co ec amen e.
En adas equi idas
Poin 2D de o ixe e Da aF ame cunha columna ipo Poin 2D.
Saídas espe adas
Da aF ame coas ilas que cump en a condición de dis ancia
a aliada.
CP_IT1_OLAP_04
Mé odo
UDFDis ance.call()
Técnica
Conxec u a de e os
69
Desc ición
T á ase de comp oba que non se pode aplica a unción de
dis ancia a columnas de ipo di e en e a Poin 2D.
En adas equi idas
Poin 2D de o ixe e Da aF ame cunha columna dun ipo
di e en e a Poin 2D.
Saídas espe adas
Excepción indicando o ipo de e o.
Os de ec os a opados ó onse co ixindo en base ó esul ado das p obas, e no caso de
e os especí icos, sob e a ma cha.
P obas de endemen o
Respec o ó endemen o ixemos un in en o de iden i ica posibles pun os débiles na
implemen ación que puidesen e e ec os indesexables nos empos de execución e polo
an o debían se mello ados. Pa a elo ixemos uso, de no o, da in e ace web de
moni o ización p o ida po Spa k que pe mi e ealiza o seguimen o de cada e apa
especí ica de execución.
Nes e pun o cabe explica a o ma en que Spa k execu a os seus aballos. Is o signi ica
aden a se b e emen e no deseño in e no do amewo k. Cando execu amos un
aballo, Spa k u iliza a ep esen ación lóxica de ope acións sob e os RDDs de i ada do
código p og amado pa a c ea un plan de execución ísico que in oduce mello as de
e iciencia ag upando múl iples ope acións en asks ( a e as). Es e plan de execución en
a o ma dun g a o acíclico di ixido (DAG), que é o elemen o que pe mi e ó amewo k
oma a decisión de cando se deben execu a as ans o macións de inidas sob e os
da os. T á ase, nou as palab as, dun mapa da ascendencia de cada RDD que pe mi e
plani ica a o de de execución máis adecuada, e pa a elo in odúcese aínda ou o ni el
de abs acción ag upando as a e as en s ages (e apas). Unha e apa ísica execu a
a e as que le an a cabo ope acións simila es pe o en pa icións especí icas de da os.
En xe al, o pipeline de ope acións que oco en nunha de e minada a e a e á es pasos
p incipais: ob ención dos da os de en ada, ealización das ope acións de
ans o mación e en ío dos da os á saída que co esponda (pode se ou o RDD ou un
shu le, que é unha ope ación de in e cambio de da os en e nodos do clús e ).
Polo an o, median e a Spa k Web UI podemos ob e in o mación de p og eso e de
múl iples mé icas que conce nen a cada e apa e a cada a e a den o dela. Es a
capacidade oi a que nos pe mi iu ol e a obse a que a e apa de lec u a e pa seo dos
obxec os W i able almacenados en SequenceFile supoñía un cus o adicional
conside able an o en empo de execución como en consumo de memo ia (po
ins anciación de no os obxec os), ó igual ca no caso do módulo ETL pa a a esc i u a.
Pa a elo le amos a cabo a implemen ación dun subconxun o do pipeline de ope acións
necesa ias pa a calcula o isco de incendio, en conc e o, as e e en es á impo ación,
ans o mación, unión e ag egación dos da os de es acións, obse acións e ele ación.
Dou a banda, a posibilidade de de ini uncións p opias an o sob e Da aF ames como
sob e RDDs puxo en cues ión a necesidade de ealiza ans o macións con inuas en e
ambos ipos de conxun os, mo i ando a busca dunha solución máis op imizada que se
le a ía a cabo na seguin e i e ación (en cuxo apa ado de p obas se mos a unha
compa a i a de endemen o espec o a es a e sión).
70
I e ación 2
Na segunda i e ación do p oxec o es ablecemos como obxec i o p incipal a
implemen ación dunha e sión mello ada do p o o ipo inicial. Facendo on e ás
ine iciencias de ec adas nel, o equipo p opúxose a u ilización dalgún ou o o ma o de
almacenamen o pa a os da os que supuxese unha mello a subs ancial na e iciencia da
lec u a, da esc i u a e do espazo de almacenamen o, e que á súa ez pe mi ise educi
o núme o de ope acións de pa seo necesa ias pa a impo a e expo a os da os an o
no módulo ETL como no módulo de p ocesamen o.
Análise das mello as
As ca ac e ís icas que nun p incipio ixe on a ac i o o uso do o ma o SequenceFile
pa a a implemen ación do p o o ipo inicial í onse eclipsadas ala cons a ación do seu
endemen o na p imei a i e ación. Púxose de mani es o a necesidade dun cambio de
o ma o, polo que o equipo decidiu le a a cabo unha análise de posibles al e na i as
pa indo das posibilidades desc i as na áboa 7 ( éxase “Tecnoloxías escollidas”). Is o
supuxo a apa ición dun isco de i ado da necesidade dun cambio nos equi imen os que
mo i ou un b e e p oceso de e lexión e a aliación das posibles implicacións.
Finalmen e, xu diu como p opos a a u ilización do o ma o Pa que . Pese a se un
o ma o co que non iñamos expe iencia p e ia, o es udo de allado das súas
ca ac e ís icas e elou a súa po encialidade de aplicación no noso p oxec o.
Apache Pa que é, como se indica na páxina do seu p oxec o [17], un “ o ma o de
almacenamen o columna dispoñible pa a calquei a p oxec o do ecosis ema Hadoop,
independen emen e da elección do amewo k de p ocesamen o, modelo de da os ou
linguaxe de p og amación”. En e as súas ca ac e ís icas des acan, ademais do
almacenamen o columna , a posibilidade de almacena es u u as anidadas complexas
e a u ilización de mé odos de codi icación e comp esión a anzados. Ademais, a súa
in eg ación con Spa k ai máis aló dos aspec os de compa ibilidade xa que é o o ma o
u ilizado po de ec o pa a almacena os Da aF ames en disco. A adecuación de Pa que
pa a o p oxec o undamén ase, po unha pa e, na posibilidade de almacena de o ma
e icien e os elemen os complexos que o man pa e dos da os cos que aballa o noso
sis ema, como po exemplo os ipos xeomé icos polígonos ou mul ipolígonos, e po
ou a pa e no aumen o da e iciencia que se de i a do uso dun o ma o columna de
almacenamen o, xa que o ipo de ope acións que le amos a cabo implica
ecuen emen e o acceso aos da os po algunha columna especí ica, e cómp e e i a o
sob ecus o da ca ga en memo ia de columnas innecesa ias.
Pos o que a esc i u a de Da aF ames en disco con o ma o Pa que non equi e de
pa seos adicionais, desapa ece a necesidade de implemen a con edo es ipo W i able
pa a encapsula os nosos da os. Aínda máis, a lec u a de da os desde on es elacionais
a a és do SQLCon ex xe a di ec amen e Da aF ames, polo cal esul a moi o máis
sinxelo ace ans o macións sob e os da os an es de almacenalos en HDFS. Os
71
Da aF ames con eñen obxec os de ipo Row ( ilas) que encapsulan ec o es de ipos
básicos (en ei os, cadeas, ...). Dado que a implemen ación a baixo ni el consis e nun
RDD ó que se lle engade un esquema de me ada os cos ipos que de inen cada columna,
podemos le a a cabo consul as sob e os da os con sen encias SQL.
Deseño das mello as
Unha ez omada a decisión de u iliza Pa que como o ma o de almacenamen o en
disco e Da aF ames como es u u as de da os en memo ia le amos a cabo an o o
deseño do no o módulo ETL eu ilizando o p o o ipo inicial pe o modi icando a pa e
especí ica da ans o mación e esc i u a en disco dos da os, como o deseño do módulo
de p ocesamen o cuxa ca ac e ís ica p incipal se á o uso exclusi o de Da aF ames pa a
a compu ación do isco.
Diag amas de clases
Figu a 16.- Diag ama coas no as clases do módulo ETL.
O diag ama de clases é simila ó mos ado na igu a 11 ( éxase “I e ación 1”), sal o que
desapa ecen as clases ela i as ós RDDs e á u ilización de con edo es W i able, xa que o
uso des a in e ace e a un equi imen o especí ico do o ma o SequenceFile. En
conc e o, apa ecen en con ex o dúas no as clases da API de Spa k, Da aF ameW i e e
Da aF ameReade , que nos an a pe mi i an o a esc i u a en disco dos Da aF ames
como a súa pos e io lec u a pa a p ocesalos. O Da aF ameW i e é o pa áme o de
e o no do mé odo w i e() da clase Da aF ame que imos a u iliza pa a ga dalo en disco,
men es que o Da aF ameReade é o pa áme o de e o no do mé odo ead() da clase
72
SQLCon ex , que pe mi e le un a qui o de disco en o ma o Pa que ou simila es e ai
a se u ilizado pa a ca ga en memo ia os da os a p ocesa desde HDFS.
Ou a cousa que desapa ece é a necesidade de de ini os da os xeomé icos p imi i os
como implemen acións da clase W i able, pola mesma azón que os con edo es. Logo o
paque e de da os xeomé icos que imos a u iliza no sis ema ai a se o mesmo an o
no módulo de ETL como no módulo de p ocesamen o. Pa a o noso caso de uso, a
xe a quía de clases des e ipo de da os queda como se e lexa no seguin e diag ama:
Figu a 17.- Diag ama coas clases de ipos xeomé icos p imi i os.
Diag amas de secuencia
73
Figu a 18.- Diag ama de secuencia pa a a impo ación de da os p oceden es dunha base de da os
elacional.
No diag ama de secuencia podemos obse a cla amen e o a o o en e mos de núme o
de accións necesa ias pa a expo a os da os a HDFS. No exemplo da igu a 18, que
ep esen a a impo ación dun conxun o de da os simila ó mos ado na igu a 12 ( éxase
“I e ación 1”), as le os da os de Pos g es co SQLCon ex a a és do Da aReade
ob emos un Da aF ame que pode ou non se some ido a ans o macións, pe o que non
necesi a se pa seado pa a se almacenado en disco con o ma o Pa que .
Respec o ó modulo de p ocesamen o, o pipeline de ope acións simpli ícase con espec o
ó mos ado na igu a 15 ( éxase “I e ación 1”). Ago a, como emos mencionado, o
mé odo main() ealiza unha chamada ó me odo ead() do SQLCon ex pa a impo a os
da os almacenados en o ma o Pa que en HDFS. In e namen e, di o mé odo c ea un
obxec o de ipo Da aF ameReade pa a le a a cabo a lec u a. Pos e io men e podemos
le a a cabo ope acións an o de ipo elacional, como po exemplo combinacións ou
ag egacións, como ou o ipo de algo i mos de inidos polo p og amado en uncións
p opias, di ec amen e sob e os Da aF ames desde a en ada dos da os a a a ob ención
do esul ado do cálculo do isco, sen necesidade de ans o macións adicionais en RDDs.
Is o mello a a e iciencia do código e a apidez coa que se execu an as ans o macións e
os cálculos. Podémolo ap ecia na seguin e secuencia:
80
(compa idas) que iden i ican a cada cubo de da os pa a despois u ilizalas na unión dos
conxun os de da os, e non es amos endo en con a a posibilidade de exene a en
memo ia columnas de alo es que seguen in e alos ixos, a pa i dos da os do
ca álogo.
Polo an o xo den aquí dúas ías de explo ación de posibles mello as: dunha banda, a
u ilización da o de implíci a de ce as columnas de da os pa a a o a almacenamen o
en disco e empo de lec u a, así como a e i ación da duplicación de dimensións, e dou a
banda a implemen ación dalgún ipo de indexación e dis ibución espacial dos da os que
pe mi a mello a a e iciencia das unións de ipo espacial.
81
I e ación 3
Unha ez ob i emos unha implemen ación comple a e uncionalmen e co ec a dos
módulos de ETL e p ocesamen o, chegou o momen o de cons uí o módulo de
isualización pa a pode ep esen a e mos a po pan alla os esul ados do cálculo do
isco de incendio, así como isualiza os da os de en ada.
Análise do módulo de isualización
Du an e o p oceso de a aliación de al e na i as po pa e do equipo, op amos po poñe
a én ase en non ol e a desen ol e solucións que xa puidesen exis i no me cado a
disposición dos usua ios e de o ma g a uí a. Is o pe mi íanos educi , en e ou os, os
iscos do p oxec o asociados á apa ición de no os equi imen os, e op imiza o empo
da plani icación dedicado a es e módulo, pa a pode cen a os nosos es o zos en busca
solucións aos p oblemas de endemen o de ec ados na i e ación an e io .
Decidimos desen ol e un módulo so wa e que impo ase o a qui o cos esul ados do
p ocesamen o almacenado en HDFS e le ase a cabo as ope acións de pa seo necesa ias
pa a expo a ipos de a qui o compa ibles cos es ánda es GIS habi uais (GeoTi , Ascii,
Ne CDF, ...). Des a o ma, pode íamos le a a cabo a isualización en calque a das
múl iples solucións g a uí as exis en es pa a es e ipo de a qui os. En conc e o, o
candida o elixido pa a a isualización oi QGIS [20] (an e io men e chamado Quan um
GIS), un sis ema de in o mación xeog á ica pa a esc i o io g a uí o, mul ipla a o ma e
open-sou ce, que pe mi e isualización, edición e análise de da os. T á ase dun so wa e
que se u iliza habi ualmen e como on -end pa a ou os sis emas de in o mación
xeog á ica, e que ademais de se compa ible con es ánda es de a qui os habi uais,
p opo ciona uncionalidades a anzadas como po exemplo in eg ación con Pos GIS.
Es a úl ima ca ac e ís ica posibili a a isualización de odas aquelas on es de da os do
noso p oblema que es án almacenadas en Pos GIS.
Deseño do módulo de expo ación
Pa a o deseño do módulo de expo ación dedicimos u iliza o pa ón Fac o y. T a ábase
de de ini unha in e ace de expo ación común pa a odos os o ma os de a qui o de
xei o que desde o clien e (nes e caso o mé odo main()) puidésemos c ea obxec os
expo ado es sen necesidade de expoñe a súa lóxica de c eación. Es e módulo amén
es á des inado a execu a se en Spa k, xa que a impo ación dos da os de isco pode
le a se a cabo en pa alelo.
Diag ama de clases
82
Figu a 22.- Diag ama de clases do módulo de expo ación.
Nes e caso emos unha in e ace xené ica pa a o expo ado denominada “Da a ile” que
se ins ancia a a és da áb ica de expo ado es, denominada “Da aFileFac o y”,
chamando ó seu mé odo ge Da a ile() e indicándolle como a gumen o o ipo de o ma o
imos a expo a . Pos e io men e, cando desexamos esc ibi os da os, acemos unha
chamada ó mé odo w i e() da in e ace, que é implemen ado po cada expo ado
conc e o. Independen emen e da implemen ación conc e a de cada expo ado pa a
cada o ma o, o mé odo de c eación e expo ación dos da os é o mesmo. Is o bene icia
a eu ilización e o man emen o do código.
Diag ama de secuencia
Como exemplo dos pasos a oma pa a expo a o isco a un ichei o Ascii axun amos o
diag ama da igu a 23. Despois de ins ancia a áb ica de expo ado es e ob e o
expo ado pa a un ipo de ichei o conc e o, u ilizamos o mé odo w i e() da in e ace
pa a ga dalo no almacenamen o que co esponda.
83
Figu a 23.- Secuencia de expo ación do isco a un ichei o Ascii.
P obas uni a ias do módulo de expo ación
Pa a pode isualiza os esul ados, le amos a cabo o cálculo do isco de incendio pa a
a ias esolucións e esc ibimos o esul ado no sis ema de almacenamen o dis ibuído,
en o ma o Pa que . Logo, median e o módulo de expo ación, ans o mamos ese
a qui o no o ma o de saída desexado.
P obas de uncionalidade
Pa a a implemen ación da expo ación en o ma o Ascii non oi necesa ia a u ilización
de lib e ías de e cei os, xa que é un o ma o en ex o plano que non equi e máis ca
unha cabecei a con me ain o mación e de seguido os ec o es de da os sepa ados po
espazos en b anco e cambios de liña. O deseño e execución de casos de p obas pa a
uncións especí icas emi iuse ó seguin e:
CP_IT3_EXP_01
Mé odo
Da a ileFac o y.ge Da a ile()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que a áb ica de expo ado es de ol e
unha ins ancia do expo ado co ec o.
En adas equi idas
Tipo de expo ado .
Saídas espe adas
O expo ado é unha ins ancia do ipo indicado.
84
CP_IT3_EXP_02
Mé odo
Da a ileFac o y.ge Da a ile()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que a áb ica de expo ado es non
de ol e ins ancia pa a ipos descoñecidos.
En adas equi idas
Tipo de ichei o descoñecido (“unknown”).
Saídas espe adas
Excepción indicando o ipo de e o.
CP_IT3_EXP_03
Mé odo
Ascii.w i e()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que a implemen ación do expo ado
ao es anda Ascii xe a un ichei o co ec o.
En adas equi idas
Da aF ame, esolución e u a.
Saídas espe adas
Fichei o co ec o na u a indicada.
CP_IT3_EXP_04
Mé odo
Ascii.w i e()
Técnica
Conxec u a de e os
Desc ición
T á ase de comp oba que o expo ado de Ascii non pode
xe a un ichei o sob e un conxun o de da os co ompido.
En adas equi idas
Da aF ame con da os non álidos.
Saídas espe adas
Excepción indicando o ipo de e o.
Visualización
A cap u a que adxun amos a con inuación co espóndese co isco de incendio pa a o
e i o io galego a unha esolución de 200 me os, pa a o día 1 de agos o de 2014. Unha
maio in ensidade da co e mella na imaxe ep esen a un maio isco de incendio nesa
zona, omando en conside ación odos os ac o es que o man pa e da nosa ó mula:
85
Figu a 24.- Risco de incendio (01-08-2014).
Sob e es a imaxe, ende izada no so wa e QGIS a pa i do a qui o expo ado,
podemos consul a indi idualizadamen e os alo es de isco pa a cada píxel, ou
ca ac e ís icas do a qui o como po exemplo o núme o de píxeles ho izon ais e e icais.
O mesmo se e pa a a isualización dos da os de en ada.
86
I e ación 4
Nas p obas ealizadas na i e ación 2 comp obábamos como a diminución do empo de
execución ob ida g azas ó aumen o do núme o de nodos de compu ación non oi a
espe ada, poñendo de mani es o a necesidade de mello as do so wa e na busca dun
maio endemen o. Apun abamos que es as mello as se en ocaban ca a dúas liñas
p incipais: a diminución do almacenamen o en disco, e polo an o do empo de lec u a
de da os, median e o uso da o de implíci a de ce as columnas de da os, e a
implemen ación dalgún ipo de dis ibución dos da os que pe mi ise ob e bene icios de
localidade á ho a de le a a cabo as unións de ipo espacial. Nes a i e ación imos a
a on a a p imei a desas mello as.
Análise do módulo ETL
O deseño da i e ación 2, an o do módulo de ETL como do módulo de p ocesamen o,
baseábase no almacenamen o de oda a in o mación necesa ia pa a le a a cabo as
combinacións en e os di e en es conxun os de da os que nos ían a se i pa a calcula
o isco de incendios. Es a o ma de p ocede é simila á que u ilizan as solucións de
almacenamen o clásicas, como po exemplo as bases de da os elacionais, onde se
almacenan uplas de alo es con endo cada unha delas o seu iden i icado
co esponden e. Re omando a dis inción en e dimensións e cubos de da os explicada
no con ex o, a nosa es a exia equi ía que se u ilizase unha columna de da os pa a
almacena cada dimensión e cada cubo de da os, de xei o que os alo es de mos axes
se almacenaban odos en disco, e naqueles casos nos que unha dimensións o maba
pa e dun no o cubo de da os, p oducíase un duplicado dos seus da os (po exemplo,
no caso dos da os de es acións e obse acións, que compa en a dimensión s a ionid).
Sen emba go, o pa adigma de almacenamen o de da os po columnas posibili a a
in odución de mello as sob e esa o ma de almacenamen o, xa que se pode conse a
a o de implíci a dunha se ie de da os e a pa i dela exene a o iden i icado que lle
co esponde a cada un, u ilizando pa a elo os alo es inicial e inal almacenados no
ca álogo. G azas á inclusión no ichei o de de inición de da os da posibilidade de de ini
dimensións de ipo mos axe, podemos ago a aplica es a écnica de mello a da
e iciencia no almacenamen o e comp oba o seu impac o no endemen o do so wa e.
Deseño do módulo ETL
Aínda que a es u u a de clases a implemen a pa a o módulo ETL é simila na súa maio
pa e á indicada nas i e acións 1 e 2 ( igu as 8 e 12, espec i amen e), exis en pa es
conc e as que deben su i modi icacións pa a pode adap a nos ós no os
equi imen os. En conc e o, pos o que desexamos almacena as dimensións e os cubos
de da os po sepa ado, cómp e de ini na clase que ai de in e ace á lec u a
(Da aReade ) no os mé odos que dean con a das dimensións e dos cubos de da os po
87
sepa ado. Is o implica que no ca álogo de on es (Ca alog1) deben es a ben
di e enciadas ambas es u u as, e polo an o mo i a a c eación dunha xe a quía de
clases que pe mi a xes iona co ec amen e a in o mación ela i a an o ás dimensións
e ós cubos de da os que p oceden de on es elacionais como de aquelas que p oceden
de ichei os.
Diag amas de clases
Figu a 25.- Xe a quía de clases no ca álogo.
Nes a igu a podemos ap ecia como a clase Ca alog1 ago a pasa a se o con edo de
a ios conxun os de obxec os que ep esen an espec i amen e as dimensións
(Dimension1), os mapeos (Mapping1), os cubos de da os (MappingSe 1) e as cons an es
(Cons an 1) p esen es nas on es de da os. Ademais, pos o cada unha das es p imei as
88
clases ci adas é abs ac a, de inimos unha implemen ación di e en e segundo a on e
dos da os sexa elacional ou ichei o. Is o pe mi i anos almacena os a ibu os
necesa ios pa a localiza os da os na base de da os ou no ichei o, espec i amen e.
Dou a banda, imos a desacopla a lec u a e a esc i u a dos da os do p opio ca álogo
c eando dúas clases no as denominadas Ca alog1Reade e Ca alog1W i e que se i án
espec i amen e pa a le o ichei o XML e pa a ans o ma o ca álogo de on es ao
ca álogo de sis ema. A elación do ca álogo co es o de clases impo an es do módulo
mós ase no seguin e diag ama:
Figu a 26.- Diag ama de clases pa a o módulo ETL.
Seguindo a es a exia que adop amos na i e ación 3 pa a implemen a o módulo de
expo ación, op amos po u iliza de no o o pa ón Fac o y, nes e caso pa a o deseño
da pa e de lec u a de ichei os, onde nos podemos a opa con di e en es es ánda es. A
áb ica de lec o es de ichei os de ol e ó clien e (nes e caso o Da aReade ) un obxec o
da in e ace FileReade que ocul a os de alles de implemen ación de cada ipo en
pa icula . O clien e simplemen e ob én o lec o que necesi a acendo unha chamada ó
mé odo ge FileReade () indicando como a gumen o o ipo de ichei o a le (que é un
dos pa áme os do ca álogo). O Da aReade , que e a a nosa clase que cumplía o papel
de in e ace de lec u a, dispón ago a de ca o mé odos di e enciados e especializados
pa a cada ipo de da os: lec u a de dimensións en on es elacionais, lec u a de cubos
de da os en on es elacionais, lec u a de dimensións en ichei os e lec u a de cubos de
da os en ichei os. No caso de se necesa io, pode íase aplica amén un Fac o y á pa e
89
de lec u a en on es elacionais. O Da aReade segue acendo uso do ca álogo de on es,
que ago a se c ea a a és da clase Ca alog1Reade in ocando o seu mé odo eadXml().
Es e úl imo é o mé odo que lee o ichei o de con igu ación de inido polo usua io,
ins anciando odos os obxec os de inidos na xe a quía da igu a 26.
Diag ama de secuencia
No diag ama de secuencia podemos e a o de na que oco en as ope acións ci adas.
En conc e o, nes e exemplo lense as dimensións dun ichei o GeoTi median e o
Da aReade , que ob én a in o mación que necesi a do ca álogo (é un dos pa áme os
do seu cons u o ). Pa a c ea o lec o especí ico u ilízase a áb ica de lec o es.
Figu a 27.- Secuencia de ope acións pa a a lec u a das dimensións dun ichei o de ipo GeoTi .
P obas uni a ias do módulo ETL
Unha cues ión impo an e a comp oba du an e a ase de p obas e a o almacenamen o
na o de co ec a dos da os, pos o que di a o de ai a se a base que imos a u iliza no
módulo de p ocesamen o pa a pode combina os conxun os de da os de es acións,
obse acións e ele ación. Relacionado co an e io , i emos que asegu a nos de que no
ca álogo se esc ibían co ec amen e os alo es inicial e inal de odas as dimensións de
ipo mos axe.
96
1. En esc i u a:
a. Almacena os da os en disco en unción do seu núme o de pa ición en
memo ia, en ca pe as independen es cuxo nome con én o núme o de
pa ición. Pa a elo exis e un mé odo en Spa k denominado pa i ionBy()
que ecibe a columna de pa icionamen o como a gumen o.
b. Almacena no ca álogo do sis ema o índice inicial de cada pa ición.
2. En lec u a:
a. Le os da os c eando o mesmo núme o de pa icións e co mesmo amaño
ca en esc i u a.
b. Recalcula o índice o ixinal de cada ila usando o núme o de pa ición,
que se exene a au oma icamen e no p oceso de lec u a a pa i do
nome da ca pe a, e a posición do da o den o da pa ición. Is o
conséguese ob endo do ca álogo o índice inicial da pa ición e
sumándolle a posición do da o den o da pa ición.
Como da os de pa ida xe amos es a qui os sen comp imi e es a qui os
comp imidos co esponden es ás es al e na i as de almacenamen o mencionadas. Os
amaños dos a qui os compá anse no seguin e g á ico:
G á ico 5.- Compa a i a do amaño dos a qui os de obse ación.
A explicación da lenda é a seguin e:
geo_u é o a qui o que almacena a columna cos pun os xeomé icos e os alo es
sen comp imi .
inc_u é o a qui o que almacena a columna co iden i icado inc emen al e os
alo es sen comp imi .
zip_u é o a qui o que só almacena os alo es das obse acións, sen comp imi .
geo_c é o a qui o que almacena a columna cos pun os xeomé icos e os alo es
comp imidos.
inc_c é o a qui o que almacena a columna co iden i icado inc emen al e os
alo es comp imidos.
0
2000
4000
6000
8000
10000
12000
20 40 80 120 160
Tamaño (MB)
Núme o de da as
geo_u
inc_u
zip_u
geo_c
inc_c
zip_c
97
zip_c é o a qui o que só almacena os alo es das obse acións comp imidos.
Podemos obse a que, pa a as e sións de a qui os sen comp imi , o almacenamen o
das xeome ías implica un aumen o conside able do consumo de espazo en disco. En
meno medida, es e aumen o amén se p oduce na e sión cos iden i icado es.
Respec o ás e sións comp imidas, as di e encias son moi o meno es en e elas,
p oducindo un descenso conside able do consumo de disco pa a os a qui os coas
xeome ías e cos iden i icado es.
En p imei o luga , imos a compa a o endemen o de cada e sión po sepa ado en
unción da u ilización ou non de comp esión no almacenamen o.
a) Pa a a e sión que almacena as xeome ías, cun meno núme o de da as de
pa ida ob emos mello es esul ados en empos de execución p escindindo da
comp esión, men es que cun núme o al o de da as de pa ida ob emos
mello es esul ados u ilizando comp esión. Is o signi ica que o cus o asociado á
ope ación de descomp esión é meno que o cus o asociado á lec u a de máis
da os de disco a pa i de ce os amaños de a qui o:
G á ico 6.- Tempo de execución pa a a e sión cas xeome ías.
b) Pa a a e sión que almacena os iden i icado es au oinc emen ais o esul ado é
simila ó caso an e io , xa que ob emos mello es empos de execución con
poucos da os se p escindimos da comp esión, e mello es empos pa a moi os
da os cando u ilizamos a comp esión:
00:00
00:43
01:26
02:10
02:53
03:36
04:19
05:02
05:46
06:29
07:12
020 40 60 80 100 120 140 160 180
mm:ss
Núme o de da as
Sen comp esión Con comp esión
98
G á ico 7.- Tempo de execución pa a a e sión co iden i icado au oinc emen al.
c) Pa a a e sión que só almacena os alo es das obse acións, os empos de
execución son simila es pa a poucos da os (compénsanse os e ec os da
descomp esión e o maio amaño de lec u a) pe o de no o pa a moi os da os é
máis e icien e a u ilización de comp esión:
G á ico 8.- Tempo de execución pa a a e sión que só almacena os alo es das obse acións.
Ago a imos a compa a as di e en es e sións de almacenamen o en e si, u ilizando
di e en es amaños de a qui o en unción do núme o de da as (días) de obse acións
que con eñen. En p imei o luga comezamos coas e sións que u ilizan os a qui os sen
comp imi :
00:00
00:43
01:26
02:10
02:53
03:36
04:19
05:02
05:46
06:29
07:12
020 40 60 80 100 120 140 160 180
mm:ss
Núme o de da as
Sen comp esión Con comp esión
00:00
01:26
02:53
04:19
05:46
07:12
08:38
020 40 60 80 100 120 140 160 180
mm:ss
Núme o de da as
Sen comp esión Con comp esión
99
G á ico 9.- Tempo de execución pa a as e sións que u ilizan da os sen comp imi .
No g á ico an e io podemos obse a que os empos de execución pa a as di e en es
e sións son simila es con poucos da os, men es que con moi os da os a e sión máis
e icien e é a que almacena as xeome ías, seguida da e sión que almacena os
au oinc emen ais, e a e sión menos e icien e é a que só almacena os alo es das
obse acións e en que ecalcula os iden i icado es e as xeome ías en memo ia.
Respec o ás e sións que u ilizan os a qui os comp imidos, os esul ados son os
seguin es:
G á ico 10.- Tempo de execución pa a as e sións que u ilizan da os comp imidos.
Nes e caso, pa a poucos da os de en ada, a e sión que só almacena os alo es das
obse acións compó ase mello , debido a que o o e head asociado ó p ocesamen o
das xeome ías en memo ia é meno ca o empo de lec u a asociado a un maio amaño
de a qui o. Sen emba go, pa a g andes can idades de da as a endencia in é ese e de
no o a e sión máis e icien e é a que almacena as xeome ías, seguida da e sión con
au oinc emen ais.
00:00
01:26
02:53
04:19
05:46
07:12
08:38
050 100 150 200
mm:ss
Núme o de da as
geo_u
inc_u
zip_u
00:00
00:43
01:26
02:10
02:53
03:36
04:19
05:02
05:46
06:29
07:12
050 100 150 200
mm:ss
Núme o de da as
geo_c
inc_c
zip_c
100
Ou a cues ión que nos in e esa analiza é o escalamen o das di e en es al e na i as, é
dici , como descende o empo de execución a iando o núme o de execu o es. Pa a as
e sións que u ilizan os a qui os sen comp esión ob emos o seguin e g á ico:
G á ico 11.- Tempo de execución segundo núme o de execu o es (da os sen comp esión).
A e sión que máis escala (case linealmen e) é a que só almacena os alo es de
obse acións e ecalcula as xeome ías en memo ia. Sen emba go, en e mos xe ais, a
e sión máis e icien e é a que almacena as xeome ías. Pa a as e sións que u ilizan os
a qui os comp imidos como en ada os empos son os seguin es:
G á ico 12.- Tempo de execución segundo núme o de execu o es (da os con comp esión).
De no o a e sión que máis escala é a que ecalcula as xeome ías en memo ia a pa i
da o de implíci a dos elemen os. Nes e caso semella que a u ilización dun núme o al o
de execu o es bene icia o p ocesamen o adicional eque ido, men es que con poucos
execu o es esul a máis e icien e almacena máis da os.
00:00
01:26
02:53
04:19
05:46
07:12
08:38
10:05
11:31
12:58
0 5 10 15 20
mm:ss
Núme o de execu o es
geo_u
inc_u
zip_u
00:00
01:26
02:53
04:19
05:46
07:12
08:38
10:05
11:31
12:58
14:24
0 5 10 15 20
mm:ss
Núme o de execu o es
geo_c
inc_c
zip_c
101
En esumo, podemos conside a dunha banda que a u ilización da comp esión pa a
almacena os a qui os pe mi e a o a bas an e espazo de almacenamen o cun cus o
adicional de empo de p ocesamen o que é asumible pa a poucos da os e inexis en e
pa a moi os da os, e en base a elo o cálculo de columnas implíci as en memo ia
cons i úe un o e head de p ocesamen o non xus i icado pola escasa di e encia de
amaño en e almacena ou non as xeome ías de o ma comp imida, sal o que
dispoñamos dun clús e cun al o núme o de ecu sos.
102
I e ación 5
Na i e ación 4 a on abamos unha das posibles mello as de endemen o apun adas
alas p obas ealizadas na i e ación 2. Nes a i e ación 5, que ai se a úl ima que
le emos a cabo pa a es e p oxec o, imos a on a a ou a posible mello a de
endemen o que iñamos apun ado: a implemen ación dalgún ipo de dis ibución
espacial dos da os pa a ob e bene icios elacionados coa súa localidade á ho a de le a
a cabo unións po condicións espaciais.
Análise
Como mencionamos no con ex o, o in en o de implemen a indexación e
pa icionamen o espaciais sob e amewo ks de compu ación dis ibuída xa deu como
esul ado p oxec os da impo ancia de Spa ialHadoop ou GeoSpa k, que p opo cionan,
en e ou as uncionalidades, a c eación de índices espaciais pa a acele a o
p ocesamen o en cada pa ición ou o uso de ope ado es espaciais especí icos pa a ipos
de da os xeomé icos.
Pa a o noso p oxec o, imos a ealiza unha p oba de concep o que consis e en
inco po a ó noso so wa e a dis ibución espazo- empo al dos da os que o man pa e
da ope ación de in e polación de obse acións pa a cada píxel, de o ma que poidamos
ob e a localidade espacial e empo al desexada á ho a de calcula di a in e polación.
Is o é debido a que, pa a calcula o alo dunha obse ación, po exemplo a
empe a u a, nun de e minado píxel, se oman en conside ación aquelas obse acións
de es acións que es án den o dunha dis ancia D (dis ancia de in e polación) de inida
p e iamen e, e pa a unha da a conc e a. Esa dis ancia o maba pa e da ó mula da
in e polación que iñamos explicado, baseada no mé odo IDW:
𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒(p)=
{
∑𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒(𝑠𝑖)
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)2
𝑖
∑1
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)2
𝑖,𝑖𝑓 0<𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)<𝑑
𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒(𝑠𝑖),𝑖𝑓 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑝,𝑠𝑖)=0
A dis ibución espazo- empo al que p opoñemos consis e na aplicación dunha malla 3D
abs ac a sob e o e i o io analizado, nes e caso Galicia, que pe mi e di idi o e i o io
en di e en es cad ados ou chunks co obxec i o de pa iciona os da os de aco do co
chunk no que se enma quen. A dimensión de p o undidade da malla co esponde íase
coas da as das obse acións (dimensión empo al). O pa icionamen o espacial, is o de
o ma g á ica, queda ía así:
103
Figu a 29.- Rep esen ación do pa icionamen o espacial di idindo o e i o io galego median e
unha cuad ícula.
O pun o (x, y) ep esen a un píxel ó que se lle asigna un alo de empe a u a
in e polado a pa i das obse acións de es acións que es án a menos dunha dis ancia
D. A maio ía desas obse acións ecaen sob e o chunk[i][j], que se á p ocesado nun
de e minado nodo do clús e . Pa a acele a aínda máis o cálculo, imos a almacena as
obse acións de o ma epe ida en cada chunk sob e o que ecaen (unha mesma
es ación pode es a den o da dis ancia de in e polación de a ios chunks, como
máximo ca o, na igu a de exemplo). Is o pe mi i á que cada nodo dispoña de odos os
da os necesa ios pa a le a a cabo a in e polación, educindo o á ico no clús e .
Ademais, engadimos a dimensión empo al median e ou o índice (k), de o ma que
cada chunk espacial se di ide en a ios chunks empo ais e se e e encia median e
chunk[i][j][k].
Os pa áme os de pa icionamen o deben se de inidos polo usua io. A opción que imos
a adop a pa a a nosa implemen ación é a de u iliza un ichei o de p opiedades que se
almacena á no di ec o io de aballo do p og ama. Di o ichei o en a seguin e
es u u a:
// sis ema_coo denadas [cadea de ex o]
// o ixe eixo x [ eal]
// o ixe eixo y [ eal]
104
// in eixo x [ eal]
// in eixo y [ eal]
// num bloques x [en ei o] ( unción sob e o núme o de máquinas)
// num bloques y [en ei o] ( unción sob e o núme o de máquinas)
// esolución [ eal]
// ancho bloque [en ei o]
// al u a bloque [en ei o]
// ancho malla [en ei o]
// al u a malla [en ei o]
// dis ancia in e polación [ eal]
A da a da obse ación podémola ex ae di ec amen e do ca álogo ou dos da os
almacenados en Pa que , en unción de se u ilizamos a e sión con columnas implíci as
ou a e sión sen elas. O pa áme o de e e encia pa a le a a cabo o pa icionamen o
espacial é, nes e caso, o núme o de máquinas ou nodos, que ai a de e mina o núme o
de chunks[i][j] no que di idimos o espazo bidimensional. Pa a de e mina cal é o chunk
que lle co esponde a cada es ación, e polo an o a cada medida, calculamos o en elop
ou ec ángulo que a con én den o da dis ancia D de in e polación, e ex aemos os seus
pun os inicial e inal, en coo denadas de chunk, aplicando as seguin es ó mulas:
𝑖1=𝑓𝑙𝑜𝑜𝑟 ( 𝑥−𝐷−𝑥0
𝑟𝑒𝑠∗𝑏𝑤𝑖𝑑𝑡ℎ )
𝑗1=𝑓𝑙𝑜𝑜𝑟 ( 𝑦−𝐷−𝑦0
𝑟𝑒𝑠∗𝑏ℎ𝑒𝑖𝑔ℎ𝑡 )
𝑖2=𝑓𝑙𝑜𝑜𝑟 ( 𝑥+𝐷−𝑥0
𝑟𝑒𝑠∗𝑏𝑤𝑖𝑑𝑡ℎ )
𝑗2=𝑓𝑙𝑜𝑜𝑟 ( 𝑦+𝐷−𝑦0
𝑟𝑒𝑠∗𝑏ℎ𝑒𝑖𝑔ℎ𝑡 )
Fó mula 8.- Cálculo das coo denadas de chunk pa a o pa icionado espacial.
onde x, y ep esen an as coo denadas da es ación, D a dis ancia de in e polación, x0, y0
a o ixe de coo denadas, es a esolución e bwid h, bheigh a anchu a e a al u a de cada
bloque, espec i amen e. A anchu a e a al u a (en píxeles) de cada bloque ob éñense
aplicando as seguin es ó mulas:
𝑏𝑤𝑖𝑑𝑡ℎ=𝑐𝑒𝑖𝑙(𝑐𝑒𝑖𝑙 ( (𝑥1−𝑥0)
𝑟𝑒𝑠 )
𝐵𝑥)
Fó mula 9.- Cálculo do ancho de cada chunk.
105
𝑏ℎ𝑒𝑖𝑔ℎ𝑡=𝑐𝑒𝑖𝑙(𝑐𝑒𝑖𝑙 ( (𝑦1−𝑦0)
𝑟𝑒𝑠 )
𝐵𝑦)
Fó mula 10.- Cálculo do al o de cada chunk.
onde x1, y1 ep esen an as coo denadas inais do bloque e Bx, By o núme o de bloques
ou di isións no eixo de abscisas e no de o denadas, espec i amen e.
Pa a es e caso a secuencia de ope acións a aplica é ela i amen e sinxela pos o que só
implica cinco pasos impo an es:
1. Lec u a dos da os de es acións e de obse acións desde o almacenamen o
dis ibuído.
2. Unión en e os dous conxun os de da os, u ilizando pa a elo ou ben o
iden i icado almacenado en disco ou ben o iden i icado xe ado en memo ia.
3. Mapeo das obse acións, xun o co id e a xeome ía da es ación, a pa es cla e-
alo onde a cla e en a o ma: id_da a e o alo é un con edo cos da os
mencionados.
4. Mapeo dos pa es cla e-con edo a cada chunk de inido sob e o e i o io,
u ilizando pa a elo a ó mula 8, de inida no apa ado an e io . Ago a a cla e pasa
a se i_j_da a, onde i e j ep esen an os índices de chunk e da a a dimensión
empo al.
5. Repa icionamen o das uplas ob idas en (4) a pa i da súa cla e.
6. Cálculo da in e polación pa a cada píxel a pa i das obse acións que es án a
menos dunha dis ancia D.
Deseño
En base ás ope acións mencionadas, emos que deseña dunha banda as clases das
uncións de mapeo e de in e polación e dou a banda a clase con edo pa a os da os
das uplas. A maio es imos a u iliza un w appe pa a almacena as p opiedades que o
usua io indica no ichei o de con igu ación.
Diag ama de clases
112
Conclusións
A on abamos nes e aballo o e o de elabo a un p o o ipo de solución so wa e que
pe mi ise o p ocesamen o de g andes can idades de da os de ipo medioambien al de
xei o e icien e dando solución a dous p oblemas undamen ais:
1) A in eg ación de on es di e sas de da os, xa osen de na u eza elacional ou
g andes a ays de alo es numé icos almacenados en a qui os es anda izados.
2) O p ocesamen o e icien e desas inxen es can idades de da os median e a
u ilización dalgún amewo k de compu ación dis ibuída.
Pa a elo alémonos do caso de uso do cálculo dun isco de incendio pa a o conxun o do
e i o io galego. A implemen ación que le amos a cabo pe mi iunos explo a unha ía
de solución ós dous p oblemas ci ados:
1) A u ilización dun deseño de clases lexible e desacoplado a o ece a in eg ación
de no as on es de da os e o ma os de a qui o. G azas a Spa k, podemos le a
a cabo o p oceso de ex acción, ans o mación e ca ga dos da os de o ma
pa alelizada, men es que o o ma o de almacenamen o Pa que sob e HDFS
posibili a a c eación dun almacén de da os de ipo columna , dis ibuído e
eplicado, que ga an e a e iciencia na súa lec u a.
2) O p ocesamen o sob e Spa k posibili a a ealización das ope acións equi idas
pa a o cálculo do isco de o ma pa alelizada. Dunha banda emos comp obado
que a u ilización de columnas implíci as non p opo ciona un aumen o de
endemen o signi ica i o, sal o do caso dun clús e con abundancia de ecu sos.
A exis encia de comp esión no o ma o Pa que posibili a ademais a
minimización do impac o de almacena columnas de da os adicionais. Dou a
banda, pa a asegu a a pa alelización de ce as ope acións complexas, como as
unións de ipo espacial, i emos que analiza a baixo ni el o compo amen o de
Spa k pa a elabo a algo i mos que nos pe mi isen implemen a algún ipo de
dis ibución e indexación espacial sob e os nosos da os.
Como esumo especí ico dos esul ados de endemen o podemos concluí , xa que logo:
O uso de Pa que como o ma o de almacenamen o columna o ece esul ados
supe io es a ou os o ma os, xa que se adap a e icien emen e ás es u u as de
da os u ilizadas.
O ei o de non almacena columnas implíci as, como po exemplo xeome ías ou
se ies empo ais, non o ece un a o o signi ica i o de espazo de
almacenamen o e pode signi ica un aumen o non desp ezable dos empos de
execución.
A dis ibución espacial dos da os é undamen al á ho a de consegui o
pa alelismo desexado nas ope acións de p ocesamen o, especi icamen e con
Spa k.
Po ou a pa e, o desen ol emen o dun módulo de expo ación, amén lexible e
desacoplado, pe mi iunos sa is ace a necesidade de isualiza os da os, xe ando
a qui os es anda izados que se poden impo a en calque a das e amen as open
sou ce que exis en pa a a explo ación de da os de ipo medioambien al.
113
Como se menciona na in odución, os esul ados des e aballo o on en iados como
candida u a pa a p esen ación nun cong eso de ni el in e nacional [10] e nou o de
ni el nacional [11], onde o on a aliados po expe os na ma e ia. En ámbolos casos
o on acep ados, e ademais a p esen ación a ni el in e nacional xa oi ealizada, a da a
de depósi o o icial des a memo ia.
A ealización des e aballo susci a algunhas posibles ías de con inuación u u a:
a) Po unha pa e cómp e xene aliza o algo i mo de pa icionamen o espacial que
emos desen ol ido a calque a ipo de ope ación espacial que se poida
p esen a nou os casos de uso do sis ema.
b) Po ou a pa e cómp e aumen a o ango de on es elacionais e es ánda es de
a qui os sopo ados an o no módulo de impo ación como no módulo de
expo ación.
c) Unha cues ión adicional se ía a de engadi ó sis ema capacidades de
almacenamen o e p ocesamen o mul i esolución a pa i das ca ac e ís icas
dos da os de inidos polo usua io pa a aumen a a súa e iciencia.
114
Bibliog a ía
1. Aji, A., Wang, F., Vo, H., Lee, R., Liu, Q., Zhang, X., e Sal z, J.: Hadoop GIS: A high
pe o mance spa ial da a wa ehousing sys em o e MapReduce. P oc. VLDB
Endow., 6(11):1009-1020, agos o 2013.
2. Amazon: h ps://www.amazon.es/. Accedida: maio de 2016.
3. Apache Hadoop: h ps://hadoop.apache.o g/. Accedida: eb ei o de 2016.
4. Apache Spa k: h p://spa k.apache.o g/. Accedida: eb ei o de 2016.
5. Baumann, P., Dehmel, A., Fu ado, P., Ri sch, R., and Widmann, N.: The
mul idimensional da abase sys em asdaman. En P oceedings o he 1998 ACM
SIGMOD in e na ional con e ence on Managemen o da a, SIGMOD '98, páxinas
575-577, New Yo k, NY, USA, 1998. ACM.
6. Boehm, B.W.: So wa e Risk Managemen . En Ghezzi, C.; McDe mid, J. A.
P oceedings o 2nd Eu opean So wa e Enginee ing Con e ence. ESEC'89. LNCS.
pp. 1–19. doi:10.1007/3-540-51635-2_29. ISBN 3-540-51635-2. ISSN 0302-9743.
7. Cassand a: h p://cassand a.apache.o g/. Accedida: maio de 2016.
8. Dia io Expansión: h p://www.expansion.com/economia-
digi al/inno acion/2015/12/04/5661c421e2704ee52c8b45e1.h ml, accedida:
eb ei o de 2016.
9. Eldawy, A. e Mokbel, M.F.: Pigeon: A spa ial MapReduce language. En Da a
Enginee ing (ICDE), 2014 IEEE 30 h In e na ional Con e ence, páxinas 1242-1245,
ma zo 2014.
10. Fe ón, D., Villa oya, S., Viquei a, J.R.R. e Pena, A.T.F.: Towa ds la ge scale
en i onmen al da a p ocessing wi h Apache Spa k. En 20 h Paci ic Asia Con e ence
on In o ma ion Sys ems (PACIS 2016), Chiayi, Taiwan, 27 Xuño – 1 Xullo, 2016.
Ranking CORE A. Enlace: h p://www.pacis2016.o g/Abs ac /ALL/673.pd .
11. Fe ón, D., Villa oya, S., Viquei a, J.R.R. e Pena, A.T.F.: P ocesamien o pa alelo de
da os medioambien ales con Apache Spa k. En XXI Jo nadas de Ingenie ía del
So wa e y Bases de Da os (JISBD 2016), V Cong eso Español de In o má ica (CEDI
2016), Salamanca, España, 13-16 de Se emb o, 2016. Acep ado.
12. GeoSpa k: h p://geospa k.da asyslab.o g/. Accedida: eb ei o de 2016.
13. HBase: h ps://hbase.apache.o g/. Accedida: maio de 2016.
14. Ho n, B.K.P. (1982): Hill shading and he e lec ance map. Geo-p ocessing, 2(1), 65-
146.
15. In ojobs: h ps://www.in ojobs.ne /. Accedida: maio de 2016.
16. Ka au, H., Konwinski, A., Wendell, P. e Zaha ia, M. (2015): Lea ning Spa k:
Ligh ning-Fas Big Da a Analysis (1s ed.). O'Reilly Media. ISBN: 978-1-4493-5862-4.
17. Pa que : h ps://pa que .apache.o g/. Accedida: maio de 2016.
18. Paul G. B own. O e iew o scidb: la ge scale a ay s o age, p ocessing and
analysis. En P oceedings o he 2010 ACM SIGMOD In e na ional Con e ence on
Managemen o da a, SIGMOD '10, páxs. 963-968, New Yo k, NY, USA, 2010. ACM.
19. Pos gis: h p://pos gis.ne /. Accedida: eb ei o de 2016.
20. QGIS: h p://www.qgis.o g/en/si e/. Accedida: maio de 2016.
21. Rasdaman: h p://www. asdaman.com/. Accedida: eb ei o de 2016.
22. SciDB: h p://www.pa adigm4.com/ echnology/. Accedida: eb ei o de 2016.
115
23. Somme ille, I. (2011): So wa e Enginee ing, ed. Pea son, 9 h edi ion, páxs. 369-
375 (especi icación de iscos) e páxs. 94-99 (especi icación de equisi os).
24. Spa ialHadoop: h p://spa ialhadoop.cs.umn.edu/. Accedida: eb ei o de 2016.
25. Tnooz: h p://www. nooz.com/a icle/big-da a-ai lines. Accedida: eb ei o de
2016.
26. Tom Whi e (June 16, 2015). Hadoop: The De ini i e Guide (4 h ed.). O'Reilly Media.
27. Villa oya, S., Viquei a, J.R.R., Reguei o, M.A., Taboada, J.A., e Co os, J.M.: Soda: A
amewo k o spa ial obse a ion da a analysis. Dis ibu ed and Pa allel
Da abases, páxinas 1-35, 2014.
28. Villa oya, S., Viquei a, J.R.R., Reguei o, M.A. e Co os, J.M.: Spa io- empo al
in eg a ed analysis wi h mapal. En Beniamino Mu gan e, Sanjay Mis a, Ana Ma ía
A.C. Rocha, Ca melo To e, Jo ge Gus a o Rocha, Ma ía I ene Falcao, Da id Tania ,
Be nady O. Apduhan, e Os aldo Ge asi, (edi o es), Compu a ional Science and I s
Applica ions - ICCSA 2014, olume 8579 de Lec u e No es in Compu e Science,
páxs. 283-297. Sp inge In e na ional Publishing, 2014.
29. Yu, J., Wu, J. and Sa wa , M.: GeoSpa k: A Clus e Compu ing F amewo k o
P ocessing La ge-Scale Spa ial Da a. En P oceedings o he 23 d SIGSPATIAL
In e na ional Con e ence on Ad ances in Geog aphic In o ma ion Sys ems - GIS '15
(2015).
116
Anexo I - Manual de usua io
Pa a execu a os di e en es módulos do sis ema cómp e e ins alado:
a) O Ja a Run ime En i onmen na súa e sión 1.7 ou supe io ( ecoméndase a 1.8),
que pode desca ga se da seguin e páxina:
h p://www.o acle.com/ echne wo k/ja a/ja ase/downloads/j e8-downloads-
2133155.h ml
b) No caso da execución en local, a e sión s andalone de Spa k (1.6 ou supe io )
con Hadoop incluído, cuxas ins ucións de desca ga e ins alación se indican na
seguin e páxina:
h p://spa k.apache.o g/docs/la es /
No caso de que e execu alo nun clús e , es e debe e ins alado HDFS e unha
e sión de Spa k igual ou supe io á 1.6, xun o coa e sión de JRE 1.7 ou supe io .
Os módulos so wa e consis en en paque es .ja coas co esponden es clases Ja a
compiladas que se execu an como aplicacións en Spa k median e a liña de comandos.
Todos os módulos eciben como a gumen o a u a absolu a ó di ec o io de aballo, que
debe con e no caso do módulo ETL un ichei o sou ces.xml no que o usua io de iniu
p e iamen e, axudándose dun edi o de ex o, as súas on es de da os (segundo o
esquema indicado no apa ado “I e ación 1” da memo ia):
Figu a 33.- Exemplo de ichei o de de inición de on es de da os.
117
No caso do módulo de p ocesamen o o di ec o io de aballo debe con e os ichei os
Pa que e o ca álogo do sis ema expo ados p e iamen e co módulo ETL ( ecoméndase
u iliza o mesmo di ec o io pa a odos os módulos pa a e i a a copia manual dos
a qui os). Po úl imo, pa a o módulo de expo ación o di ec o io de aballo debe con e
o ichei o Pa que co índice de isco calculado e expo ando median e o módulo OLAP.
O comando de execución de aplicacións en Spa k é o seguin e:
$SPARK_HOME/bin/spa k-submi
--d i e -co es $SPARK_DRIVER_CORES
--d i e -memo y $SPARK_DRIVER_MEMORY
--execu o -co es $SPARK_EXECUTOR_CORES
--execu o -memo y $SPARK_EXECUTOR_MEMORY
--num-execu o s $NUM_EXECUTORS
--class $MAIN_CLASS $APP.ja $WORKING_DIR
onde SPARK_HOME é o di ec o io aíz de Spa k, SPARK_DRIVER_CORES e
SPARK_DRIVER_MEMORY o núme o de núcleos e a can idade de memo ia que se
asignan ó d i e , SPARK_EXECUTOR_CORES e SPARK_EXECUTOR_MEMORY o núme o de
núcleos e a can idade de memo ia que se asignan a cada execu o , NUM_EXECUTORS o
núme o o al de execu o es a u iliza , MAIN_CLASS a clase p incipal do p og ama,
APP.ja o a qui o .ja do módulo e WORKING_DIR o di ec o io de aballo. Os módulos
ealizados pa a as p obas da i e ación eciben un segundo a gumen o (núme o en ei o)
que lles indica o g ado de epa icionamen o dos da os a aplica pa a ob e pa alelismo
(un alo xe almen e adecuado oscila en e 1000 e 2000).
Figu a 34.- Execución do módulo ETL median e e minal.
Aínda que po de ec o se mos a in o mación de es ado polo e minal, a moni o ización
en de alle das aplicacións execu adas pódese le a a cabo a a és da in e ace web de
Spa k, cuxa URL po de ec o en modo s andalone é: h p://localhos :4040/jobs/.
118
Figu a 35.- Moni o ización median e a Spa k Web UI.
O a qui o po de ec o que xe a o módulo de expo ación é de ipo Es i ASCII ( ex o
plano) e pódese ab i cun edi o de ex o con encional. Pa a pode isualiza o seu
con ido g a icamen e en QGIS hai que e ins alado o p og ama, que se pode desca ga
aquí:
h p://qgis.o g/es/si e/ o use s/download.h ml
Unha ez ins alado, a o ma máis di ec a de ab i un a qui o é a as alo á ba a
esque da la e al da in e ace de QGIS, i ulada “Capas”, como no seguin e exemplo (é
posible que pida ó usua io que indique o sis ema de coo denadas po de ec o):
Figu a 36.- In e ace de usua io en QGIS.
Aquí podemos explo a os pun os e p opiedades da imaxe e ace modi icacións das
capas.
119
Anexo II - Manual écnico
Pa a ace p obas ou con inua o desen ol emen o do p oxec o, odo o indicado no
manual de usua io espec o da execución e moni o ización dos módulos se man én. A
maio es, os a qui os de desen ol emen o do p oxec o es án xe ados en Ne beans, e
polo an o se se desexa con inua o desen ol emen o con es e IDE, cómp e ins ala
unha e sión igual ou supe io á 8.0, que se pode desca ga da seguin e páxina:
h ps://ne beans.o g/downloads/
O ipo de p oxec os c eados é Ma en -> Ja a Applica ion, xa que acemos uso de Ma en
pa a esol e as dependencias de lib e ías ex e nas ipo Hadoop, Spa k, JDBC ou
Geo ools (lib e ía pa a os ipos e a qui os xeoespaciais). Es as dependencias es án
indicadas no a qui o pom.xml que se pode a opa na aíz de cada ca pe a de p oxec o,
endo o seguin e aspec o:
Figu a 37.- Exemplo de a qui o pom.xml.
Unha ez impo ado e con igu ado o p oxec o, simplemen e u ilizamos a in e ace do
IDE pa a explo a e modi ica o código como desexemos. Cando o eñamos lis o,
debemos compila o noso p og ama pa a xe a un paque e .ja que con én odas as
clases da aplicación compiladas e se pode execu a median e a liña de comandos en
Spa k. Pa a c ea un .ja con odas as dependencias necesa ias e e i a e que ca ga as
lib e ías en empo de execución en Spa k, u ilizamos o shade plugin de Ma en, cuxa
con igu ación se indica (e se pode comp oba ) no pom.xml. A seguin e cap u a mos a
ese agmen o do pom.xml así como a inalización do p oceso de compilación:
120
Figu a 38.- Compilación do p og ama median e o plugin "Shade" de Ma en.
O a qui o .ja xe ado pódese a opa no subdi ec o io a ge / da ca pe a do p oxec o.