scieee Open visual document viewer

Procesamento analítico en liña de datos medioambientais en arquitecturas Big Data

Ferrón Lea, Diego

Abstract

A evolución das solucións Big Data nos últimos anos vén de ser exponencial, motivando un novo enfoque respecto do tratamento de grandes cantidades de información que non poden ser procesadas ou analizadas con ferramentas tradicionais. Ditas solucións constitúen o fundamento dos modernos sistemas de apoio á toma de decisións (DSS) en diversos dominios de aplicación, como por exemplo a análise do mercado levada a cabo por unha aeroliña ou a monitorización e xestión do sistema de saúde dun territorio. Entre eses dominios podemos destacar a análise de datos medioambientais, xerados principalmente por sensores ou por software de modelado de datos, como poden ser as medicións físicas realizadas por estacións meteorolóxicas ou as características medioambientais dun determinado espazo xeográfico. Neste eido podemos identificar dous grandes tipos de datos: dunha banda existen mostraxes de propiedades específicas sobre espazos multidimensionais, e doutra banda existen entidades que representan propiedades específicas de obxectos que poden evolucionar ó longo do tempo. As tecnoloxías dispoñibles na actualidade para a análise destes dous grandes tipos de datos son os xestores de bases de datos relacionais (RDBMS) e un subgrupo de solucións Big Data (por exemplo, bases de datos NoSQL e ecosistemas tipo Hadoop) para o caso das entidades, e solucións ad-hoc sobre arquivos de arrays xunto con scientific array data managers (por exemplo, SciDB ou Rasdaman) para o caso das mostraxes. Sen embargo, non existe no mercado ningunha tecnoloxía que posibilite a xestión integrada e uniforme de ambos tipos de datos. No eido destas preocupacións xorde esta proposta de traballo de fin de grao para a cal nos propoñemos como obxectivo principal a elaboración unha solución baseada en tecnoloxías Big Data para a análise integrada de datos de entidades e mostraxes no ámbito da avaliación do risco de incendio forestal.

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.