O documento discute MongoDB, um banco de dados NoSQL, comparando-o com MySQL. MongoDB armazena dados em documentos JSON flexíveis ao invés de tabelas rígidas, permitindo queries dinâmicas. Ele também suporta operações como map-reduce para agregação de dados e sharding para distribuição de dados em vários servidores.
Introdução a MongoDB
Apresentação contendo informações básicas discutidas durante a disciplina de Desenvolvimento Web, da graduação de Tecnologia em Análise e Desenvolvimento de Sistemas, no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos (IFSP).
Tópicos apresentados:
1. NoSQL
1.1. Flexibilidade
1.2. Performance
1.3. Escalabilidade
2. Features
2.1. JSON
2.2. Schemaless
2.3. Geospacial
2.4. Index
2.5. ReplicaSet
2.6. Sharding
Roteiro:
$ mongo
> use analise_desenvolvimento_sistemas
> var aluno = { prontuario: 1101587, nome: 'Thiago Henrique Poiani', disciplinas: ['MP2', 'DW2', 'PRJ', 'GCE'] }
> db.aluno.insert(aluno)
Veja o roteiro completo em: http://showterm.io/feb4864bd01063097e17f
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Big Data Week São Paulo
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big Data
No workshop, um ambiente MongoDB distribuído será configurado de maneira a possibilitar a escalabilidade de sua aplicação. Serão abordadas boas práticas para a utilização da infra-estrutura além dos seguintes temas:
- Replicas e sharding;
- Definição, utilização e manutenção de índices;
- Map Reduce vs Aggregate;
- Ferramentas úteis.
Pre-requisitos:
Computador pessoal com MongoDB 2.6 instalado (http://www.mongodb.org/downloads)
No Ubuntu, o pacote é o mongodb-org; repositório disponível em http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/.
Gabriel Campos
Co-fundador e CTO da Zahpee.
Bacharel em Ciência da Computação pela UFMG. Há mais de quatro anos atua no desenvolvimento de coleta, processamento e visualização de dados. MongoDB entusiasta e administrador do banco de dados da Zahpee.
As grandes rupturas: IMS x RDBMS x NoSQL
Sobre o MongoDB
O modelo de dados orientado a documentos
Um documento JSON
Tipos de Dados do MongoDB
O formato BSON (Binary JSON)
Embed vs Reference
Insert, Update, Delete
Modificadores Atômicos
Linguagem de Consulta
Indexação
Agregação e Map/Reduce
Capped Collections
GridFS
Server-Side Scripting
Replicação: Master/Slave e Replica Sets
Arquitetura com Sharding
Auto-Sharding + Replicação
Suporte e Treinamento
Literatura
Quem está usando?
Introdução a MongoDB
Apresentação contendo informações básicas discutidas durante a disciplina de Desenvolvimento Web, da graduação de Tecnologia em Análise e Desenvolvimento de Sistemas, no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo, campus São Carlos (IFSP).
Tópicos apresentados:
1. NoSQL
1.1. Flexibilidade
1.2. Performance
1.3. Escalabilidade
2. Features
2.1. JSON
2.2. Schemaless
2.3. Geospacial
2.4. Index
2.5. ReplicaSet
2.6. Sharding
Roteiro:
$ mongo
> use analise_desenvolvimento_sistemas
> var aluno = { prontuario: 1101587, nome: 'Thiago Henrique Poiani', disciplinas: ['MP2', 'DW2', 'PRJ', 'GCE'] }
> db.aluno.insert(aluno)
Veja o roteiro completo em: http://showterm.io/feb4864bd01063097e17f
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Big Data Week São Paulo
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big Data
No workshop, um ambiente MongoDB distribuído será configurado de maneira a possibilitar a escalabilidade de sua aplicação. Serão abordadas boas práticas para a utilização da infra-estrutura além dos seguintes temas:
- Replicas e sharding;
- Definição, utilização e manutenção de índices;
- Map Reduce vs Aggregate;
- Ferramentas úteis.
Pre-requisitos:
Computador pessoal com MongoDB 2.6 instalado (http://www.mongodb.org/downloads)
No Ubuntu, o pacote é o mongodb-org; repositório disponível em http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/.
Gabriel Campos
Co-fundador e CTO da Zahpee.
Bacharel em Ciência da Computação pela UFMG. Há mais de quatro anos atua no desenvolvimento de coleta, processamento e visualização de dados. MongoDB entusiasta e administrador do banco de dados da Zahpee.
As grandes rupturas: IMS x RDBMS x NoSQL
Sobre o MongoDB
O modelo de dados orientado a documentos
Um documento JSON
Tipos de Dados do MongoDB
O formato BSON (Binary JSON)
Embed vs Reference
Insert, Update, Delete
Modificadores Atômicos
Linguagem de Consulta
Indexação
Agregação e Map/Reduce
Capped Collections
GridFS
Server-Side Scripting
Replicação: Master/Slave e Replica Sets
Arquitetura com Sharding
Auto-Sharding + Replicação
Suporte e Treinamento
Literatura
Quem está usando?
Palestra sobre persistência de dados no SQLite com Room API apresentada no TDC São Paulo 2017 (19/07/2017). O Room é um dos Architectural Components apresentados pelo Google no Google I/O 2017.
Palestra sobre persistência de dados no SQLite com Room API apresentada no TDC São Paulo 2017 (19/07/2017). O Room é um dos Architectural Components apresentados pelo Google no Google I/O 2017.
Slides do mini-curso de MongoDB realizado no Workshop de Software Livre 2010 do CInLUG, no Centro de Informática da Universidade Federal de Pernambuco em 24/08/2010. Instrutores: Brunno Gomes (@brunnogomes) e Daker Fernandes (@dakerfp).
Arquiteturas Java Pragmáticas para usar Big Data na NuvemTail Target
Arquiteturas Java pragmáticas para usar big data na nuvem
Processar, analisar, reduzir, escalar, inovar? A vida de um arquiteto de software trabalhando com big data pode ser tanto um sonho quanto um pesadelo. Por um lado, você tem um poder de processamento na nuvem como nunca existiu antes, além de ferramentas que podem transformar suas ideias mais malucas em aplicações totalmente disruptivas. Por outro lado, é muito fácil cair em gargalos arquiteturais ou custos de escala proibitivos. Ferramentas como Hadoop, Hive, Pig, Crunch e HBase transformaram Java na força por trás da revolução do big data. No entanto, é bem fácil ficar totalmente perdido entre as várias opções de ferramentas disponíveis, sem saber como e quando usar cada uma delas. Esta palestra irá apresentar arquiteturas Java bem pé-no-chão para construir aplicações de big data eficientes mantendo os custos de hosting na nuvem o mais baixos possíveis. Vamos mostrar como combinar de forma eficiente ferramentas open source bem conhecidas e também apresentar alguns dos nossos truques secretos para ter uma performance sensacional, sem ficar maluco no processo.
Aprenda de forma bem objetiva as principais estruturas de dados disponíveis no Python: listas, tuplas, set, dicionário, pilha e fila. Conheça também primitivas de programação funcional como list comprehension, map, reduce, filter sorted entre outros.
2. Maior empresa brasileira de segmentação de audiência
online
Fundada em 2009, comprada pelo Buscapé em fev/201
Analisa mais de 4 bilhões de visitas por mês
Mais de 80 milhões de internautas analisados
Linguagens C, Python e PH
Bancos de dados MySQL, Redis e MongoDB
Ambiente Linux
3. Agenda
Diferença para SQL
Documentos
Querying
Updating
Sharding
Alta Performance
6. Queries dinâmicas
- SELECT * FROM TABLE
db.Collection.find({})
- SELECT * FROM TABLE WHERE ID=1
db.Collection.find({_id: 1})
- SELECT * FROM TABLE WHERE Cond1 = 1 AND Cond2 = "A"
db.Collection.find({Cond1: 1, Cond2: "A"})
- SELECT * FROM TABLE WHERE Cond1 > 1
db.Collection.find({Cond1: {$gt: 1}})
- SELECT * FROM TABLE LIMIT 100,10
db.Collection.find().skip(100).limit(10)
- SELECT count(1) FROM TABLE
db.Collection.count()
- SELET * FROM TABLE WHERE Cond1 IS NOT NULL
db.Collection.find({Cond1: {$exists: true}})
8. Map / Reduce
{ interest: [1], _id: 1 }
{ interest: [1,2,5,8], _id: 2 }
{ _id: 3 }
> m = function() {
if(this.interest)
this.interest.forEach(function(z){ emit(z,{ count: 1}); });
else return;
}
> r = function(key, values) {
var total = 0;
for ( var i=0; i < values.length; i++ )
total += values[i].count;
return { count : total };
}
> db.ProfileDem.mapReduce(m, r, { out : "myoutput" } );
9. Modificadores
$set
Seta o documento com os valores passados
$unset
Limpa o campo
$addToSet
Adiciona o valor para um array, evitando duplicidade
$push
Adiciona o valor para um array, podendo duplicar o valor
$inc
Incrementa um valor inteiro para um campo
11. Divide documentos entre máquinas
Critério de divisão definido pelo
administrador
Usado com ReplicaSet para garantir
integridade
Cada shard é replicado
Necessário 1 ou 3 config servers
Usuário se conecta em um servidor que
busca o dado no shard correto
12.
13. Ausência de Joins e documentos completos
tornam a leitura e escrita mais rápidos
Índices que indexam qualquer atributo,
inclusive arrays