Oficina apresentada na Escola Reginal de Banco de Dados em 2018. Essa oficina apresentou como combinar Spark, VoltDB e Elasticsearch, três tecnologias que materializam os conceitos de Big Data para alcançar velocidade de processamento para um grande volume de dados. Usando um exemplo em informação geográficas, o participante aprenderá como processar dados em tempo real usando Apache Spark, criar visualizações através do Elasticsearch e disponibilizar esses dados de forma escalável em uma ferramenta NewSQL usando o VoltDB.
O documento discute bancos de dados de séries temporais e apresenta o InfluxDB como uma opção popular para armazenar e consultar dados de séries temporais. O InfluxDB oferece alta performance para gravação e leitura de dados, consultas simples e agregação de dados. Ele é usado comumente para monitoramento, análise de métricas e detecção de anomalias.
1. A apresentação discute o uso da arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma aplicação de redes sociais.
2. É apresentado o histórico de MapReduce e Hadoop, seguido de uma visão geral do Spark e GraphX e do Elasticsearch 2.0.
3. A arquitetura proposta usa Spark para calcular o PageRank dos usuários a partir de um grafo de seguidores no Twitter e indexar os resultados no Elasticsearch.
O documento discute várias tecnologias para processamento de big data, incluindo MapReduce, Hadoop, Apache Kafka, Apache Ignite, e Apache Spark. Ele fornece exemplos de código e exercícios para cada tecnologia e conclui discutindo outras opções como Apache Parquet e Apache Mesos.
Este documento resume uma apresentação sobre Elasticsearch, Logstash e Kibana. A apresentação introduz estas ferramentas de gerenciamento de logs e dados, explica como configurar um pipeline ELK para indexar e visualizar logs de ônibus do Rio de Janeiro, e discute possíveis arquiteturas e usos futuros destas ferramentas.
Apresentação de palestra onde falei sobre a cultura DevOps e o ambiente de redes. SDN, NFV e Docker, dentre outras soluções e paradigmas, dão força à proposta de entrega ágil e autônoma de infraestrutura e redes.
O material conta com o passo a passo para a criação de um laboratório de SDN utilizando Open vSwitch, Docker e Ryu.
A apresentação discute a evolução dos bancos de dados SQL e NoSQL, introduzindo o conceito de NewSQL. O VoltDB é apresentado como um exemplo de banco de dados NewSQL, destacando suas vantagens de desempenho e escalabilidade em memória principal através do particionamento horizontal, replicação síncrona e recuperação de desastres com snapshots contínuos e registro de comandos. Os benefícios e desafios do uso do VoltDB são descritos.
O documento apresenta os principais tópicos de uma palestra sobre desenvolvimento orientado a testes (TDD). Inclui uma discussão sobre os benefícios do TDD em termos de tempo gasto e qualidade, aplicação de TDD em projetos existentes, programação orientada a objetos, validação de dados e refatoração para testabilidade.
O documento descreve o sistema de controle de versão Git: (1) foi desenvolvido por Linus Torvalds em 2005 para gerenciar versões do kernel Linux depois que o BitKeeper mudou sua licença; (2) é uma ferramenta de código aberto em C projetada para ser leve e rápida; (3) armazena dados de forma diferente dos outros sistemas CVS e é amplamente usado por empresas como Google, Android e muitos outros.
O documento discute bancos de dados de séries temporais e apresenta o InfluxDB como uma opção popular para armazenar e consultar dados de séries temporais. O InfluxDB oferece alta performance para gravação e leitura de dados, consultas simples e agregação de dados. Ele é usado comumente para monitoramento, análise de métricas e detecção de anomalias.
1. A apresentação discute o uso da arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma aplicação de redes sociais.
2. É apresentado o histórico de MapReduce e Hadoop, seguido de uma visão geral do Spark e GraphX e do Elasticsearch 2.0.
3. A arquitetura proposta usa Spark para calcular o PageRank dos usuários a partir de um grafo de seguidores no Twitter e indexar os resultados no Elasticsearch.
O documento discute várias tecnologias para processamento de big data, incluindo MapReduce, Hadoop, Apache Kafka, Apache Ignite, e Apache Spark. Ele fornece exemplos de código e exercícios para cada tecnologia e conclui discutindo outras opções como Apache Parquet e Apache Mesos.
Este documento resume uma apresentação sobre Elasticsearch, Logstash e Kibana. A apresentação introduz estas ferramentas de gerenciamento de logs e dados, explica como configurar um pipeline ELK para indexar e visualizar logs de ônibus do Rio de Janeiro, e discute possíveis arquiteturas e usos futuros destas ferramentas.
Apresentação de palestra onde falei sobre a cultura DevOps e o ambiente de redes. SDN, NFV e Docker, dentre outras soluções e paradigmas, dão força à proposta de entrega ágil e autônoma de infraestrutura e redes.
O material conta com o passo a passo para a criação de um laboratório de SDN utilizando Open vSwitch, Docker e Ryu.
A apresentação discute a evolução dos bancos de dados SQL e NoSQL, introduzindo o conceito de NewSQL. O VoltDB é apresentado como um exemplo de banco de dados NewSQL, destacando suas vantagens de desempenho e escalabilidade em memória principal através do particionamento horizontal, replicação síncrona e recuperação de desastres com snapshots contínuos e registro de comandos. Os benefícios e desafios do uso do VoltDB são descritos.
O documento apresenta os principais tópicos de uma palestra sobre desenvolvimento orientado a testes (TDD). Inclui uma discussão sobre os benefícios do TDD em termos de tempo gasto e qualidade, aplicação de TDD em projetos existentes, programação orientada a objetos, validação de dados e refatoração para testabilidade.
O documento descreve o sistema de controle de versão Git: (1) foi desenvolvido por Linus Torvalds em 2005 para gerenciar versões do kernel Linux depois que o BitKeeper mudou sua licença; (2) é uma ferramenta de código aberto em C projetada para ser leve e rápida; (3) armazena dados de forma diferente dos outros sistemas CVS e é amplamente usado por empresas como Google, Android e muitos outros.
O documento apresenta Redis, um banco de dados chave-valor em memória. Redis é descrito como um servidor de estrutura de dados remoto que armazena dados em chave-valor e suporta operações em listas, conjuntos e hashes. Além disso, Redis oferece canais de publicação/assinatura e é apresentado como uma ferramenta versátil para armazenamento e processamento de dados.
O documento apresenta uma trilha sobre Big Data e NoSQL, abordando tópicos como streaming de dados em data lake com Debezium, Delta Lake e EMR, incluindo arquiteturas, ferramentas e casos reais.
O documento apresenta uma palestra sobre NoSQL e bancos de dados não relacionais. Em três frases: (1) Discutiu os tipos de bancos NoSQL orientados a documentos, grafos e chave-valor; (2) Explicou como o MongoDB pode ser usado para substituir ou trabalhar com bancos relacionais; (3) Apresentou exemplos de desenvolvimento com MongoDB e Riak usando a linguagem Python.
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
O documento resume as principais características e conceitos da linguagem de programação Ruby e do framework web Ruby on Rails. Foi lançado em 1995 e projetado para tornar os programadores felizes, com sintaxe enxuta e tudo como objeto. Rails facilita o desenvolvimento web ágil com convenções sobre configuração, DRY e simplicidade.
A palestra aborda diferenças entre o SGBDs PostgreSQL CouchDB, ressaltando as diferenças conceituais e apresentando comparativos de performance.
por Diogo Biazus e Johalf Farina no 1° RS on Rails
O documento compara CouchDB e PostgreSQL como bancos de dados para uso no framework Rails. Ele discute as características e funcionalidades de cada um, como CouchDB é orientado a documentos sem esquema enquanto PostgreSQL é um SGBD relacional, e apresenta resultados de testes de desempenho simples mostrando PostgreSQL como mais rápido.
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
O documento discute as vantagens de bancos NoSQL em relação a bancos de dados relacionais tradicionais para armazenar grandes quantidades de dados. O autor apresenta exemplos de bancos NoSQL como MongoDB, orientado a documentos, e Riak, baseado em chave-valor, e discute como cada um pode ser usado para diferentes casos. O autor também fornece exemplos de código para inserir e consultar dados nesses bancos usando Python.
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
Slides da Palestra apresentada na Trilha Banco de Dados do The Developers Conference 2016 - São Paulo.
A palestra aborda os principais conceitos sobre Time series database (TSDB), e demonstra como utilizar a stack TICK (Telegraf, InfluxDb, Conograph, Kapacitor) da InfluxData para resolver problemas de monitoria de dados em grande escala, gerando gráficos e alertas em tempo real.
O documento discute bancos de dados de séries temporais (TSDB), apresentando o InfluxDB como um exemplo de TSDB open source. Ele descreve como escrever e consultar dados no InfluxDB, incluindo funções, agregações e consultas contínuas. Também discute a stack TICK da InfluxData para coleta, armazenamento e análise de dados de séries temporais.
O documento discute bancos de dados NoSQL, que são bancos de dados não-relacionais que rompem com propriedades ACID dos bancos de dados relacionais. Apresenta os principais tipos de bancos NoSQL orientados a documentos, chave-valor, clones do BigTable do Google e orientados a grafos, além de produtos populares como CouchDB, MongoDB, Cassandra e Redis.
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeStefan Teixeira
[1] O documento discute o uso da ferramenta Docker Compose para definir e executar aplicações com múltiplos contêineres, permitindo testar software de forma isolada e reproduzível. [2] Ele apresenta exemplos de como usar o Docker Compose para rodar testes de API, UI, segurança e fumaça junto com uma aplicação e seus serviços dependentes. [3] O documento também destaca pontos de atenção ao usar essa abordagem, como logs, volumes, tempo de inicialização e geração de imagens leves.
Este documento fornece instruções passo a passo para instalação e configuração de um servidor LDAP, incluindo compilação e instalação do OpenLDAP, configuração do banco de dados e esquemas, adição de entradas, réplica de bases de dados e criação de esquemas customizados.
O documento discute o crescimento do uso da internet e das redes sociais ao longo dos anos, as limitações das tecnologias web atuais para lidar com alta concorrência, e como Node.js aborda esses problemas usando I/O não bloqueante e event loop.
Nodejs - A performance que eu sempre quis terEmerson Macedo
O documento discute a evolução das tecnologias da web ao longo do tempo e as limitações das tecnologias atuais para suportar alta escalabilidade e concorrência. Propõe o uso de Node.js, que usa I/O não bloqueante e event loop para suportar milhares de usuários simultâneos de forma eficiente com poucos recursos.
Design Patterns para Tuning Pentaho com Ctoolse-Setorial
Uma "receita de bolo" com os passos comumente seguidos para tunar um dashboard, incluindo boas práticas, ferramentas e configurações. Os fontes do exemplo podem ser baixados livremente de http://www.e-setorial.com.br/pentahoday2017/DesignPatternsPentaho 09-12-57-284.zip
1) O documento apresenta Mateus Caruccio e seu trabalho com computação em nuvem, OpenShift Origin e OO-Index.
2) OpenShift Origin é uma plataforma open source que permite implantar aplicações em containers auto-escaláveis na nuvem ou em infraestrutura local.
3) OO-Index é um projeto desenvolvido pela comunidade para listar cartuchos e receitas prontas para OpenShift Origin.
Monitorando os Recursos e Processos do Servidor, através do Power BISulamita Dantas
O documento discute como monitorar recursos e processos do servidor através do Power BI. Apresenta como configurar o Perfmon e Relog para coletar métricas e importá-las para o SQL Server. Em seguida, cria dashboards no Power BI para visualizar e analisar os dados coletados.
O documento descreve como o InfluxDB pode monitorar milhares de dados por segundo em tempo real. Ele explica o que é um banco de dados de série temporal, apresenta o InfluxDB e suas principais características como alta performance para gravação de dados e consultas através de uma API HTTP. Também mostra exemplos de como escrever e consultar dados no InfluxDB.
Precision agriculture generates huge amounts of complex data from diverse sources like satellite imagery, weather data, and farm machinery operations. This data faces challenges of integration due to different formats and lack of standards. Opportunities exist to use machine learning and data integration techniques to gain insights from this data. For example, yield data from different farm areas could be classified using clustering algorithms and polygons generated to identify low-yielding zones and their causes. Overall, unlocking the value of agricultural data requires approaches that address its variety, volume, and integration challenges.
This document discusses how Apache Sedona can be used to process large amounts of geospatial agricultural data with Spark. It describes how Sedona provides geospatial types and functions that allow for efficient indexing, partitioning, and processing of spatial data at scale. Examples are given of how Sedona could be used with Spark ML to cluster points in a field based on attributes and generate polygons from those points. The document encourages registering with Leaf Agriculture to access their geospatial APIs and start building applications using Sedona and Spark to analyze large agricultural datasets.
Mais conteúdo relacionado
Semelhante a Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
O documento apresenta Redis, um banco de dados chave-valor em memória. Redis é descrito como um servidor de estrutura de dados remoto que armazena dados em chave-valor e suporta operações em listas, conjuntos e hashes. Além disso, Redis oferece canais de publicação/assinatura e é apresentado como uma ferramenta versátil para armazenamento e processamento de dados.
O documento apresenta uma trilha sobre Big Data e NoSQL, abordando tópicos como streaming de dados em data lake com Debezium, Delta Lake e EMR, incluindo arquiteturas, ferramentas e casos reais.
O documento apresenta uma palestra sobre NoSQL e bancos de dados não relacionais. Em três frases: (1) Discutiu os tipos de bancos NoSQL orientados a documentos, grafos e chave-valor; (2) Explicou como o MongoDB pode ser usado para substituir ou trabalhar com bancos relacionais; (3) Apresentou exemplos de desenvolvimento com MongoDB e Riak usando a linguagem Python.
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
O documento resume as principais características e conceitos da linguagem de programação Ruby e do framework web Ruby on Rails. Foi lançado em 1995 e projetado para tornar os programadores felizes, com sintaxe enxuta e tudo como objeto. Rails facilita o desenvolvimento web ágil com convenções sobre configuração, DRY e simplicidade.
A palestra aborda diferenças entre o SGBDs PostgreSQL CouchDB, ressaltando as diferenças conceituais e apresentando comparativos de performance.
por Diogo Biazus e Johalf Farina no 1° RS on Rails
O documento compara CouchDB e PostgreSQL como bancos de dados para uso no framework Rails. Ele discute as características e funcionalidades de cada um, como CouchDB é orientado a documentos sem esquema enquanto PostgreSQL é um SGBD relacional, e apresenta resultados de testes de desempenho simples mostrando PostgreSQL como mais rápido.
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
O documento discute as vantagens de bancos NoSQL em relação a bancos de dados relacionais tradicionais para armazenar grandes quantidades de dados. O autor apresenta exemplos de bancos NoSQL como MongoDB, orientado a documentos, e Riak, baseado em chave-valor, e discute como cada um pode ser usado para diferentes casos. O autor também fornece exemplos de código para inserir e consultar dados nesses bancos usando Python.
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
Slides da Palestra apresentada na Trilha Banco de Dados do The Developers Conference 2016 - São Paulo.
A palestra aborda os principais conceitos sobre Time series database (TSDB), e demonstra como utilizar a stack TICK (Telegraf, InfluxDb, Conograph, Kapacitor) da InfluxData para resolver problemas de monitoria de dados em grande escala, gerando gráficos e alertas em tempo real.
O documento discute bancos de dados de séries temporais (TSDB), apresentando o InfluxDB como um exemplo de TSDB open source. Ele descreve como escrever e consultar dados no InfluxDB, incluindo funções, agregações e consultas contínuas. Também discute a stack TICK da InfluxData para coleta, armazenamento e análise de dados de séries temporais.
O documento discute bancos de dados NoSQL, que são bancos de dados não-relacionais que rompem com propriedades ACID dos bancos de dados relacionais. Apresenta os principais tipos de bancos NoSQL orientados a documentos, chave-valor, clones do BigTable do Google e orientados a grafos, além de produtos populares como CouchDB, MongoDB, Cassandra e Redis.
Scrum Gathering Rio 2016 - Conteinerizando Testes com Docker ComposeStefan Teixeira
[1] O documento discute o uso da ferramenta Docker Compose para definir e executar aplicações com múltiplos contêineres, permitindo testar software de forma isolada e reproduzível. [2] Ele apresenta exemplos de como usar o Docker Compose para rodar testes de API, UI, segurança e fumaça junto com uma aplicação e seus serviços dependentes. [3] O documento também destaca pontos de atenção ao usar essa abordagem, como logs, volumes, tempo de inicialização e geração de imagens leves.
Este documento fornece instruções passo a passo para instalação e configuração de um servidor LDAP, incluindo compilação e instalação do OpenLDAP, configuração do banco de dados e esquemas, adição de entradas, réplica de bases de dados e criação de esquemas customizados.
O documento discute o crescimento do uso da internet e das redes sociais ao longo dos anos, as limitações das tecnologias web atuais para lidar com alta concorrência, e como Node.js aborda esses problemas usando I/O não bloqueante e event loop.
Nodejs - A performance que eu sempre quis terEmerson Macedo
O documento discute a evolução das tecnologias da web ao longo do tempo e as limitações das tecnologias atuais para suportar alta escalabilidade e concorrência. Propõe o uso de Node.js, que usa I/O não bloqueante e event loop para suportar milhares de usuários simultâneos de forma eficiente com poucos recursos.
Design Patterns para Tuning Pentaho com Ctoolse-Setorial
Uma "receita de bolo" com os passos comumente seguidos para tunar um dashboard, incluindo boas práticas, ferramentas e configurações. Os fontes do exemplo podem ser baixados livremente de http://www.e-setorial.com.br/pentahoday2017/DesignPatternsPentaho 09-12-57-284.zip
1) O documento apresenta Mateus Caruccio e seu trabalho com computação em nuvem, OpenShift Origin e OO-Index.
2) OpenShift Origin é uma plataforma open source que permite implantar aplicações em containers auto-escaláveis na nuvem ou em infraestrutura local.
3) OO-Index é um projeto desenvolvido pela comunidade para listar cartuchos e receitas prontas para OpenShift Origin.
Monitorando os Recursos e Processos do Servidor, através do Power BISulamita Dantas
O documento discute como monitorar recursos e processos do servidor através do Power BI. Apresenta como configurar o Perfmon e Relog para coletar métricas e importá-las para o SQL Server. Em seguida, cria dashboards no Power BI para visualizar e analisar os dados coletados.
O documento descreve como o InfluxDB pode monitorar milhares de dados por segundo em tempo real. Ele explica o que é um banco de dados de série temporal, apresenta o InfluxDB e suas principais características como alta performance para gravação de dados e consultas através de uma API HTTP. Também mostra exemplos de como escrever e consultar dados no InfluxDB.
Semelhante a Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch (20)
Precision agriculture generates huge amounts of complex data from diverse sources like satellite imagery, weather data, and farm machinery operations. This data faces challenges of integration due to different formats and lack of standards. Opportunities exist to use machine learning and data integration techniques to gain insights from this data. For example, yield data from different farm areas could be classified using clustering algorithms and polygons generated to identify low-yielding zones and their causes. Overall, unlocking the value of agricultural data requires approaches that address its variety, volume, and integration challenges.
This document discusses how Apache Sedona can be used to process large amounts of geospatial agricultural data with Spark. It describes how Sedona provides geospatial types and functions that allow for efficient indexing, partitioning, and processing of spatial data at scale. Examples are given of how Sedona could be used with Spark ML to cluster points in a field based on attributes and generate polygons from those points. The document encourages registering with Leaf Agriculture to access their geospatial APIs and start building applications using Sedona and Spark to analyze large agricultural datasets.
1. O documento discute os desafios de um arquiteto que se tornou gerente de uma equipe de desenvolvimento, tendo que aprender sobre liderança e gestão. 2. Ele descreve como usou o framework "Management 3.0" para melhorar o desempenho da equipe, conhecê-los melhor e criar um ambiente positivo. 3. O documento também fornece dicas sobre recrutamento, promoção, desenvolvimento e como lidar com falhas na jornada de se tornar um líder.
O documento discute o uso de ferramentas de big data e machine learning na SocialBase. Apresenta o IBM Watson, Apache Spark e TensorFlow, comparando suas funcionalidades e preços. Conclui que o Spark é melhor para prototipagem e produção devido ao seu baixo custo e escalabilidade, enquanto o Watson facilita protótipos mas tem alto custo para produção.
O documento discute bancos de dados NewSQL, apresentando características como suporte a transações ACID e alto desempenho através de arquiteturas de particionamento e replicação. Dois sistemas NewSQL são detalhados: HStore, que evoluiu para VoltDB, um banco de dados projetado para alta performance em memória através de particionamento horizontal e replicação síncrona. Finalmente, exercícios propõem avaliar o uso do VoltDB na nuvem.
O documento apresenta os conceitos básicos de bancos de dados em nuvem, incluindo vantagens como menor custo total de propriedade e maior elasticidade, e desvantagens como custos percebidos maiores e questões de segurança e privacidade. Também discute fornecedores de serviços de banco de dados em nuvem, modelos de dados SQL e NoSQL, e características como consistência eventual e alta disponibilidade.
Rendezvous is a middleware that stores massive RDF graphs across multiple NoSQL databases. It uses a novel data fragmentation and partitioning approach. Triples are fragmented based on their star or chain shapes and mapped to different NoSQL databases. The graph is also partitioned across databases. Boundary replication is used to support queries spanning partitions. Rendezvous improves query performance through caching of frequently accessed triples and decomposition of queries to target relevant partitions and databases. An evaluation using LUBM data showed Rendezvous outperforms the state-of-the-art ScalaRDF system in query response times.
The document presents a proposed schedule for developing and evaluating Rendezvous, a middleware for storing massive RDF graphs in NoSQL databases. Key aspects of Rendezvous include a workload-aware partitioning approach, mapping RDF data to different NoSQL data models, and a caching structure to accelerate query response. The evaluation compares Rendezvous to existing approaches using LUBM, a standard RDF benchmark, and finds that Rendezvous outperforms alternatives with graph-aware partitioning and near caching. Future work is planned to improve Rendezvous with compression, updates, additional NoSQL support, and more complex workloads.
O documento discute o processo de normalização de dados em bancos de dados relacionais. Apresenta os objetivos da normalização, como lidar com tabelas sem normalização e o processo de normalização em si, levando em consideração as 1a, 2a, 3a e 4a Formas Normais.
O documento apresenta os principais tipos de joins no SQL, incluindo INNER JOIN, OUTER JOIN (LEFT, RIGHT e FULL), NATURAL JOIN e operações sobre conjuntos como UNION, INTERSECT e EXCEPT. Exemplos demonstram como esses joins e operações funcionam para combinar informações de múltiplas tabelas e retornar dados específicos. O documento também faz paralelos entre os joins no SQL e operações na álgebra relacional.
O documento apresenta uma introdução sobre consultas básicas em SQL, incluindo os comandos SELECT, FROM e WHERE para selecionar dados de uma tabela. Ele também discute funções agregadas como COUNT, MIN, MAX e AVG que podem ser usadas com SELECT, e operadores lógicos e de comparação para o comando WHERE. O documento termina com exercícios de exemplo para praticar os conceitos apresentados.
Os bancos de dados NoSQL, outrora uma tendência, são atualmente a realidade no que diz respeito ao armazenamento dos grandes volumes de dados gerenciados pelas aplicações de Big Data. Contudo, a Big Data, traz também outros desafios como o acesso integrado e em tempo real a fontes variadas de informação. Embora sejam relativamente recentes na história da Ciência da Computação, em muitos aspectos os NoSQL são suportados por uma longa tradição de conceitos e ferramentas. Este fato é especialmente visível na integração de NoSQL, onde as ideias bem conhecidas, tais como federação, integração e migração ainda são válidas. Nesse sentido, esse trabalho comparou as obras mais recentes que lidam com o acesso integrado vários bancos de dados NoSQL. Tais trabalhos propõem diferentes níveis de solução, que vão desde simples integrações em nível de código até criação de modelos integrados, contudo há uma lacuna no que diz respeito ao acesso integrado, semântico e em tempo real aos repositórios NoSQL. A partir desta análise, é proposto middleware chamado Rendezvous que oferece acesso integrado considerando uma visão semântica dos dados - usando os padrões RDF e SPARQL - pertencentes a qualquer um dos principais modelos de dados NoSQL – chave-valor, colunar, documento e grafos – e permite acesso em tempo real os dados gerenciados pelo middleware Rendezvous.
O documento discute arquiteturas, ferramentas e padrões de desenvolvimento para integrar aplicações que usam múltiplos bancos de dados NoSQL e SQL. Apresenta os desafios de modelagem de dados nesse cenário e como frameworks como Spring Data podem facilitar o acesso a diversos bancos de dados no desenvolvimento. Também aborda técnicas como agregação, joins e sincronização para integrar dados armazenados em bancos diferentes.
Este documento apresenta uma introdução ao Elasticsearch, cobrindo tópicos como: 1) NoSQL e bancos de dados não relacionais; 2) como o Elasticsearch pode ser usado para busca e análise de dados em tempo real; 3) os principais conceitos e arquitetura do Elasticsearch.
O documento apresenta uma visão geral do Elasticsearch 2.0 e como usá-lo com PHP. As principais seções incluem: (1) visão geral do Elasticsearch, sua arquitetura e uso, (2) desenvolvimento com o Elasticsearch, incluindo indexação, busca e agregações, (3) uso do cliente PHP para interagir com o Elasticsearch, realizando operações como indexação, busca e sugestão.
An Approach for RDF-based Semantic Access to NoSQL Repositories, presented as partial requiremnt for the discipline "Metodologia da Pesquisa em Ciência da Computação" at UFSC/2015
This document summarizes several papers on integrating NoSQL databases. It discusses different approaches to integration such as global-as-view and local-as-view. Most solutions presented use a global-as-view approach and expose a unified REST API. The papers cover domains like healthcare, biodiversity, and graph matching. The BigDAWG system is highlighted as the most complete approach, federating access across different database models in a scalable way.
14. Not only SQLSadalage e Fowler, 2012
(http://martinfowler.com/books/nosql.html)
Relational databases will be a
footnote in historyNathan Marz, 2014
(http://www.slideshare.net/nathanmarz/runaway-complexity-in-big-data-and-a-plan-to-stop-it)
Armazenamento
14
15. SQL and NoSQL will merge
“Not yet SQL”
Michael Stonebraker, 2015
https://www.youtube.com/watch?v=KRcecxdGxvQ
Armazenamento
15
36. Exercícios
1. Classificar os Tweets de POA
--------------------- Lição de casa :) ---------------------
2. Receber em modo Streaming os dados do Twitter e filtrar pela latitude e
longitude de POA
3. Criar uma fila de processamento para adicionar os Tweets coletados no
exercício do Spark para contar as palavras mais comuns nesses Tweets
4. Usando como base o código de streaming do Twitter, fazer um streaming
direto do Cassandra
a. https://github.com/datastax/spark-cassandra-connector/blob/master/doc/8_streaming.md
5. Configurar o Ignite para armazenar os Twitters e usar a API SQL do Ignite
para consultar esses Twitters 36
41. NewSQL: definições
● Definições
○ SQL como interface principal
○ Suporte a transações ACID
○ Sem lock no controle de concorrência
○ Alto desempenho
○ Arquitetura escalável (share nothing)
● In-memory
○ Alta
○ Baixa latência
○ Sem gerenciamento de bugger
○ Sem locks e latches
● HBase, Clustrix, NuoDB e VoltDB
41
47. VoltDB
● Evolução do C-Store e H-Store
○ http://hstore.cs.brown.edu/documentation/faq/
● Visão:
○ VoltDB relies on horizontal partitioning
down to the individual hardware thread to
scale, k-safety (synchronous replication) to
provide high availability, and a
combination of continuous snapshots and
command logging for durability (crash
recovery)
47
57. Comandos VoltDB
● ./voltdb init
● ./voltdb start
● ./sqlcmd
● CREATE TABLE users (id INTEGER UNIQUE NOT NULL, username VARCHAR(15), city VARCHAR(15));
● CREATE TABLE tweets (id INTEGER UNIQUE NOT NULL, body VARCHAR(150), userId INTEGER);
● insert into users values (1,'lhzsantana','floripa');
● insert into tweets values (1,'sol em floripa', 1);
● select * from users;
● select * from users u inner join tweets t on u.id=t.userId;
● drop table users;
● CREATE INDEX name_idx ON users (name);
● PARTITION TABLE users ON COLUMN city;
● show tables;
57
59. Exercícios
1. Salvar os dados de streaming e os dados do DataPoa no VoltDB
--------------------- Lição de casa :) ---------------------
2. Consultar os usuários que mais postam no Twitter
59
62. Elasticsearch?
•Tempo real
•Flexível
•Livre de esquema e muito escalável
• Iniciado por Shay Banon em 2010
• Desenvolvido pela comunidade
• Código aberto em:
• https://github.com/elastic/elasticsearch
• Atualmente apoiado pela Elastic
62
70. Desenvolvimento com o Elasticsearch - Pontos importantes
● Gerenciamento dos dados
○ Backup do Elasticsearch?
■ Geralmente o Elasticsearch é usado como um repositório volátil
■ Backup:
● https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots
.html
■ Segurança:
● https://www.elastic.co/products/shield
● Mapeamento
70
71. Desenvolvimento com o Elasticsearch - Instalação
•Simplesmente baixar e desempacotar
• Elasticsearch e Kibana
• https://www.elastic.co/downloads/elasticsearch
• https://www.elastic.co/downloads/kibana
• Iniciar:
• /bin/elasticsearch
• /bin/kibana
•Em produção não é tão simples:
• http://logz.io/blog/deploy-elk-production/
71
74. Criar índice e mapeamento no Elasticsearch
• Exemplo simples “Tweet” e “Comentário”
• Criar um índice seria tão simples como:
• PUT erdb
• O mapeamento no Elasticsearch é flat
• O Elasticsearch está configurado para buscar palavras em Inglês
• Usar um analisador para português
• GIST:
• https://gist.github.com/lhzsantana/4f940684075ce115d799
74
75. Indexar alguns documentos
POST erbd/tweet/1
{
"author":"Luiz",
"text":"Tá muito sol para falar de Elasticsearch",
"hashtag":"#queriatánapraia"
}
POST tweet/post
{
"author":"Luiz",
"text":"Esse post não tem ID",
"hashtag":"#seráqfunciona"
}
75
76. Indexar alguns documentos
POST erbd/tweet/1
{
"author":"Luiz",
"text":"Elasticsearch é mais legal que praia",
"hashtag":"#sqn"
}
POST erbd/tweet
{
"author":"Luiz",
"text":"O mapeamento do Elasticsearch é flexível",
"local":"Florianópolis",
"hashtag":"#schemaless"
}
76
77. Indexar alguns documentos
POST erbd/comments/1
{
"author":"Anônimo",
"text": "Até agora não vi nada de
Spark",
"hashtag":"#taenrolando"
}
POST erbd/comment/1?parent=1
{
"author":"Anônimo",
"text": "Jurerê ou PHP?",
"hashtag":"#queriatánapraia"
}
77
78. Como ficou o mapeamento?
• GET erbd/_mapping
• Mapping com o nome errado “comments”
• O campo “local” não tem analisador
https://gist.github.com/lhzsantana/b72dd13f339ff29b4682
78
79. Mapeamento com Geo Point
PUT erbd
{
"mappings": {
"crash": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
79
80. Busca
GET /_search
{
"query": {
"match_all": {}
}
}
GET /erbd/_search
{
"query": {
"match_all": {}
}
}
GET /erbd/tweet/_search
{
"query": {
"match_all": {}
}
}
GET /erbd/tweet,comment/_search
{
"query": {
"match_all": {}
}
}
GET /erbd, sbbd/_search
{
"query": {
"match_all": {}
}
}
GET /erbd,sbbd/tweet,comment/
_search
{
"query": {
"match_all": {}
}}
80
85. Exercícios
1. Enviar dados do Twitter e do DataPOA para o Elasticsearch
2. Buscar palavras nos dados
--------------------- Lição de casa :) ---------------------
3. Fazer gráfico de calor
4. Fazer gráfico de barras
85