{"id":7595,"date":"2018-10-24T07:30:49","date_gmt":"2018-10-24T10:30:49","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/?p=7595"},"modified":"2018-10-22T11:19:05","modified_gmt":"2018-10-22T14:19:05","slug":"big-data-spatial-com-geomesa","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2018\/10\/24\/big-data-spatial-com-geomesa\/","title":{"rendered":"Big Data Spatial com GeoMesa"},"content":{"rendered":"<p>Ao usar ferramentas de software livre para criar aplicativos GIS em um servidor como o <a href=\"http:\/\/geoserver.org\/\" rel=\"noopener\" target=\"_blank\">GeoServer<\/a>, voc\u00ea pode ler dados de arquivos e, ao usar mais dados do que arquivos podem armazenar com efici\u00eancia, pode ler de um gerenciador de banco de dados como PostgreSQL com PostGIS adicionado para fornecer suporte geoespacial. Se voc\u00ea tiver ainda mais dados, no entanto, voc\u00ea acabar\u00e1 atingindo um limite com o PostGIS. A m\u00e1quina onde voc\u00ea a instalou pode ter muita mem\u00f3ria RAM e espa\u00e7o em disco, mas escalar a partir da\u00ed pode ficar caro se for poss\u00edvel.<\/p>\n<p>\u00c0 medida que mais tipos de dados se tornam dispon\u00edveis para sistemas GIS, est\u00e1 se tornando mais f\u00e1cil atingir esses limites. O artigo do GIS Lounge &#8220;<a href=\"http:\/\/www.gislounge.com\/empowering-gis-big-data\/\" rel=\"noopener\" target=\"_blank\">Empowering GIS com Big Data<\/a>&#8221; descreveu algumas das classes de Big Data Spatial que est\u00e3o levando as pessoas a ultrapassar esses limites e algumas das ferramentas que est\u00e3o usando para trabalhar com esses dados. Uma ferramenta relativamente nova \u00e9 o <a href=\"http:\/\/www.geomesa.org\/\" rel=\"noopener\" target=\"_blank\">GeoMesa <\/a>(open source), que adiciona suporte a recursos geogr\u00e1ficos aos sistemas de banco de dados baseados no Hadoop Apache Accumulo, Apache HBase e Google Cloud Bigtable. Isso pode permitir que voc\u00ea dimensione o seu uso de dados GIS com sistemas de c\u00f3digo aberto.<\/p>\n<blockquote><p>GeoMesa pode ajudar os usu\u00e1rios a gerenciar grandes conjuntos de dados espa\u00e7o-temporais, armazenando petabytes de dados GIS e servindo dezenas de milh\u00f5es de pontos em segundos.<\/p><\/blockquote>\n<p><strong>1. Sistemas de banco de dados de Big Data<\/strong><\/p>\n<p>Primeiro, o que \u00e9 o Hadoop, o que esses sistemas de banco de dados adicionam a ele e como eles diferem de um banco de dados relacional, como o PostgreSQL? E o mais importante, o que torna essa configura\u00e7\u00e3o t\u00e3o boa para os Big Data Spatial?<\/p>\n<p>O Apache Hadoop \u00e9 uma estrutura de software livre que originalmente se tornou popular para manipular Big Data devido a dois componentes espec\u00edficos dessa estrutura: o Hadoop Distributed File System (HDFS), que permite tratar os dados em uma cole\u00e7\u00e3o de m\u00e1quinas comuns como um \u00fanico sistema de arquivos e o MapReduce, que permite que os aplicativos dividam seu processamento em v\u00e1rias m\u00e1quinas.<\/p>\n<p><center><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/10\/hadoop.png\" alt=\"\" width=\"463\" height=\"511\" class=\"aligncenter size-full wp-image-7597\" srcset=\"https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/10\/hadoop.png 463w, https:\/\/www.fernandoquadro.com.br\/html\/wp-content\/uploads\/2018\/10\/hadoop-272x300.png 272w\" sizes=\"auto, (max-width: 463px) 100vw, 463px\" \/><\/center><\/p>\n<p>Com essa combina\u00e7\u00e3o, um aplicativo com requisitos de recursos crescentes n\u00e3o precisava necessariamente de um computador maior com mais RAM e espa\u00e7o em disco para aumentar a escala; o crescimento poderia ser tratado pela adi\u00e7\u00e3o de novas m\u00e1quinas de baixo custo ao cluster do Hadoop. E, como os recursos baseados em nuvem se tornaram mais f\u00e1ceis de usar e menos caros, voc\u00ea nem precisa de m\u00e1quinas f\u00edsicas permanentes para seu cluster &#8211; se voc\u00ea quisesse que doze m\u00e1quinas funcionassem como um cluster para um trabalho de seis horas, voc\u00ea s\u00f3 precisa ter sua pr\u00f3pria &#8220;nuvem&#8221; dessas m\u00e1quinas por esse per\u00edodo de tempo.<\/p>\n<p>Isso n\u00e3o funciona com todos os aplicativos, no entanto.<\/p>\n<p>O MapReduce exige que voc\u00ea crie um procedimento Map e um procedimento Reduce para fazer o seu processamento. O procedimento Map \u00e9 executado em cada n\u00f3 do cluster, processando o subconjunto de dados transmitidos para esse n\u00f3 e o procedimento Reduce re\u00fane os resultados das execu\u00e7\u00f5es do Map e executa c\u00e1lculos adicionais para agregar ou resumir os resultados. Esse arranjo funcionou bem para muitos tipos de an\u00e1lises, e as empresas despejaram terabytes de dados em rotinas MapReduce para que pudessem procurar padr\u00f5es ocultos em seus dados de transa\u00e7\u00f5es, cliques e registros. No entanto, para aplicativos de banco de dados t\u00edpicos, a necessidade de dividir o processamento em opera\u00e7\u00f5es de Map e Reduce dificultava a capacidade de permitir o tipo de consulta interativa e atualiza\u00e7\u00e3o de dados que a maioria das pessoas deseja fazer com seus bancos de dados.<\/p>\n<p>\u00c0 medida que o Hadoop ganhou for\u00e7a, um desenvolvimento paralelo no mundo da tecnologia da informa\u00e7\u00e3o foi o desenvolvimento de sistemas de bancos de dados NoSQL. O termo originalmente significava &#8220;N\u00e3o SQL&#8221; para descrever sistemas de bancos de dados que usavam alternativas aos modelos de dados baseados em tabela usados \u200b\u200bcom o padr\u00e3o ISO SQL. O termo evoluiu para significar &#8220;N\u00e3o apenas SQL&#8221;, pois aplica\u00e7\u00f5es grandes e modernas podem envolver uma cole\u00e7\u00e3o de sistemas de banco de dados que usam um modelo de dados diferente para executar uma tarefa especializada, e um sistema SQL &#8211; por exemplo, PostgreSQL &#8211; pode fazer parte dessa mistura.<\/p>\n<p>Alguns desses sistemas de gerenciamento de bancos de dados NoSQL foram projetados para serem executados em um ambiente Hadoop, onde eles poderiam tirar vantagem do HDFS e proteger os desenvolvedores da necessidade de se preocupar com o Mapeamento e a Redu\u00e7\u00e3o de seus dados. Uma fam\u00edlia particular de bancos de dados NoSQL inspirada no documento <a href=\"http:\/\/static.googleusercontent.com\/media\/research.google.com\/en\/archive\/bigtable-osdi06.pdf\" rel=\"noopener\" target=\"_blank\">Google Big Table<\/a> sobre como eles armazenam e organizam seus dados \u00e9 conhecida como &#8220;bancos de dados orientados por coluna&#8221;. Agrupando os dados de cada tabela por suas colunas em vez de usar a orienta\u00e7\u00e3o de linha de bancos de dados SQL t\u00edpicos, esses sistemas de banco de dados adicionaram flexibilidade de modelagem, efici\u00eancia de indexa\u00e7\u00e3o e maior facilidade na distribui\u00e7\u00e3o de dados em v\u00e1rios n\u00f3s.<\/p>\n<p>Tr\u00eas sistemas populares de banco de dados orientados a colunas que podem ser executados no Hadoop s\u00e3o os projetos HBase e Accumulo e o Google Cloud Bigtable, a vers\u00e3o comercialmente dispon\u00edvel do Google do sistema interno de gerenciamento de dados. O conjunto de ferramentas GeoMesa para armazenar, indexar e consultar grandes dados espaciais pode trabalhar com todos esses tr\u00eas sistemas de banco de dados, permitindo que voc\u00ea realize an\u00e1lises geoespaciais em uma escala muito grande. Uma aplica\u00e7\u00e3o como o GeoServer pode ent\u00e3o usar um reposit\u00f3rio de dados GeoMesa como se usasse qualquer outro armazenamento de dados atrav\u00e9s de sua interface gr\u00e1fica de usu\u00e1rio baseada na web, atrav\u00e9s do CQL, ou usando os padr\u00f5es WFS , WMS , WPS e WCS. Ver essas habilidades adicionadas ao Cloud Bigtable impressionou o Google o suficiente para que eles recomendem o uso do GeoMesa, como um parceiro de servi\u00e7o.<\/p>\n<p><strong>2. Dados geoespaciais armazenados, streaming de dados geoespaciais<\/strong><\/p>\n<p>Al\u00e9m de sua capacidade de trabalhar com petabytes de dados geoespaciais armazenados, o GeoMesa pode trabalhar com dados de streaming. Frequentemente, os consumidores de dados de alta velocidade (registros de 10K por segundo ou mais) implementam uma infraestrutura baseada na <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lambda_architecture\" rel=\"noopener\" target=\"_blank\">Arquitetura Lambda<\/a>. A Arquitetura Lambda tem uma \u201cCamada de Velocidade\u201d para suportar telas interativas e an\u00e1lises quase em tempo real. Os dados armazenados pelo GeoMesa no Accumulo ou HBase fazem parte da camada de servi\u00e7o que responde \u00e0s consultas. O GeoMesa tamb\u00e9m inclui um datastore de streaming baseado no <a href=\"http:\/\/kafka.apache.org\/\" rel=\"noopener\" target=\"_blank\">Apache Kafka<\/a>, que \u00e9 ideal para suportar reprodu\u00e7\u00e3o recente em uma visualiza\u00e7\u00e3o de mapeamento. Por exemplo, se o seu sistema estiver lendo dados de posi\u00e7\u00e3o sobre uma frota de ve\u00edculos e voc\u00ea quiser renderizar e anim\u00e1-los em uma camada de mapa, o armazenamento de dados Kafka do GeoMesa pode tornar isso poss\u00edvel. O GeoMesa tamb\u00e9m pode usar o Kafka para armazenar em cache dados suficientes para permitir que voc\u00ea &#8220;retroceda&#8221; anima\u00e7\u00f5es do movimento da sua frota em torno do mapa. Um registro permanente desses dados pode ser fornecido na camada de veicula\u00e7\u00e3o para an\u00e1lise forense ou processamento em lote no futuro.<\/p>\n<p>O GeoMesa tamb\u00e9m pode aproveitar o <a href=\"http:\/\/spark.apache.org\/\" rel=\"noopener\" target=\"_blank\">Apache Spark<\/a>, uma estrutura de computa\u00e7\u00e3o que est\u00e1 substituindo cada vez mais o uso direto do MapReduce para processar muito mais rapidamente os clusters do Hadoop. As bibliotecas do Spark para Machile Learning, Streaming e processamento de gr\u00e1ficos tamb\u00e9m permitem que os desenvolvedores criem e executem aplicativos anal\u00edticos mais rapidamente, o que abre algumas grandes possibilidades ao trabalhar com dados espa\u00e7o-temporais.<\/p>\n<p>A recente vers\u00e3o 1.2 do GeoMesa incluiu uma nova etapa: uma revis\u00e3o completa pela <a href=\"https:\/\/www.locationtech.org\/projects\/technology.geomesa\" rel=\"noopener\" target=\"_blank\">LocationTech Working Group<\/a> da Eclipse Foundation. Essa an\u00e1lise garantiu que o c\u00f3digo-fonte do GeoMesa e todas as suas depend\u00eancias estejam em conformidade com as licen\u00e7as de software amig\u00e1veis \u200b\u200be sejam compat\u00edveis com a licen\u00e7a Apache v2. Essa revis\u00e3o completa da propriedade intelectual proporciona \u00e0s empresas o uso da garantia de software de que podem us\u00e1-la com confian\u00e7a e construir solu\u00e7\u00f5es baseadas no GeoMesa.<\/p>\n<p><strong>3. Quem est\u00e1 usando o GeoMesa<\/strong><\/p>\n<p>V\u00e1rias for\u00e7as armadas, ag\u00eancias de intelig\u00eancia e empresas comerciais dos EUA j\u00e1 est\u00e3o se beneficiando da capacidade do GeoMesa de ampliar seus Big Data Spatial. Para come\u00e7ar voc\u00ea mesmo, a p\u00e1gina inicial da GeoMesa inclui <a href=\"http:\/\/www.geomesa.org\/tutorials\/\" rel=\"noopener\" target=\"_blank\">tutoriais<\/a>, e o YouTube tem <a href=\"https:\/\/www.youtube.com\/results?search_query=geomesa\" rel=\"noopener\" target=\"_blank\">v\u00e1rios v\u00eddeos<\/a> que demonstram os recursos da GeoMesa e descrevem sua arquitetura. Para participar das conversas e obter suporte em seu pr\u00f3prio uso do GeoMesa, existem listas de discuss\u00e3o de <a href=\"https:\/\/locationtech.org\/mailman\/listinfo\/geomesa-users\" rel=\"noopener\" target=\"_blank\">usu\u00e1rios<\/a> e <a href=\"https:\/\/locationtech.org\/mailman\/listinfo\/geomesa-dev\" rel=\"noopener\" target=\"_blank\">desenvolvedores<\/a>. E, como um projeto de c\u00f3digo aberto, voc\u00ea pode<a href=\"https:\/\/github.com\/locationtech\/geomesa\" rel=\"noopener\" target=\"_blank\"> entrar e contribuir<\/a> com a CCRi, LocationTech e dezenas de outros colaboradores.<\/p>\n<p>Fonte: <a href=\"https:\/\/www.gislounge.com\/open-source-big-spatial-data-with-geomesa\/\" rel=\"noopener\" target=\"_blank\">GIS Lounge<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ao usar ferramentas de software livre para criar aplicativos GIS em um servidor como o GeoServer, voc\u00ea pode ler dados de arquivos e, ao usar mais dados do que arquivos podem armazenar com efici\u00eancia, pode ler de um gerenciador de&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2018\/10\/24\/big-data-spatial-com-geomesa\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":7599,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[311,332],"class_list":["post-7595","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-big-data","tag-geomesa"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=7595"}],"version-history":[{"count":7,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7595\/revisions"}],"predecessor-version":[{"id":7604,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/7595\/revisions\/7604"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/7599"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=7595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=7595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=7595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}