Mostrando postagens com marcador mongoexport. Mostrar todas as postagens
Mostrando postagens com marcador mongoexport. Mostrar todas as postagens

quinta-feira, 15 de maio de 2014

mo_icon_big_thumb_171574 (1)

 

 

 

Neste post, vamos aprender como usar javascript como MongoDB shell script para exportar (campos de) uma coleção.


Geralmente, para exportar dados de uma coleção MongoDB, usamos o seguinte comando -



mongoexport -vvvv --host 127.0.0.1 --db my-db --username='usr' --password='pwd' --collection profiles --csv --out /home/data/usernames.csv -f 'username'

Definitivamente eu prefiro a forma acima mencionada. Mas vamos considerar que você tem milhões ou bilhões de registros em uma coleção MongoDB. E você deseja exportar todos estes.
Provavelmente, dependendo da configuração dos seus servidores ou até mesmo de seu desktop, este processo poderá levar horas ou até mesmo travar. Foi então que a uma solução alternativa para contornar esta situação veio a tona: Criar um script que irá criar vários blocos de dados ao exportar.



var size = 1000000;
var maxCount = 1;
for (x=0;x<maxCount;x=x+1)
{
var recToSkip = x*size;
db.profiles.find().skip(recToSkip).limit(size).forEach( function(record){
var username = record.username;
print(record.username);
})
}

E claro para executar o script (se acima javascript está em arquivo chamado - 'usernames.js')


isso só vai travar. Bem, eu não sei o que acontece no seu computador, mas na minha máquina foi apenas preso por horas e, em seguida, I terminou o processo. E veio com solução scripting - onde eu criei vários arquivos (blocos) dos dados exportados.


mongo 127.0.0.1/my-db --username='username' --password='pwd'export-usernames.js > output.txt

O comando shell acima irá prestar toda a saída (de exportação-usernames.js) para o arquivo output.txt. Calma, eu tenho plena consciência de que se trata de um único arquivo onde você receberá todos os dados exportados. Mas se você quiser dividir isso , basta escrever seu script para que faça o wrapper ou executar várias vezes. Isto é com você.

sábado, 3 de maio de 2014

Neste post, vamos ver como fazer e restaurar backups utilizando os comandos mongoexport e mongoimport

1. Efetuando um Backup com o mongoexport


A seguir um exemplo simples de como realizar um Backup de seu banco de dados utilizando o comando mongoexport

Antes vamos rever algumas opções :
$ mongoexport
Export MongoDB data to CSV, TSV or JSON files.
 
options:
-h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for
-u [ --username ] arg username
-p [ --password ] arg password
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-q [ --query ] arg query filter, as a JSON string
-o [ --out ] arg output file; if not specified, stdout is used

Muitas vezes, temos que exportar os resultados de agrupamento em formato CSV ou JSON. Para resolvê-lo, basta inserir os resultados do grupo em uma nova coleção e exportar a nova coleção via mongoexport.

Abaixo um exemplo de como podemos fazer :

1. Defina os resultados do grupo em uma variável. Neste caso, o nome da variável é "groupdata".
> var groupdata = db.website.aggregate(
{
$group : {_id : "$hosting", total : { $sum : 1 }}
},
{
$sort : {total : -1}
}
);

2. Inserts "groupdata.result" em uma nova coleção.
> db.websitegroup.insert(groupdata.result);
 
> db.websitegroup.find().pretty()
{ "_id" : "aws.amazon.com", "total" : 4 }
{ "_id" : "hostgator.com", "total" : 3 }
{ "_id" : "cloud.google.com", "total" : 2 }
{ "_id" : "godaddy.com", "total" : 1 }
>

3. Exportando a Collection "websitegroup" para um arquivo CSV.
c:\> mongoexport -d testdb -c websitegroup -f _id,total -o group.csv --csv
connected to: 127.0.0.1
exported 4 records

group.csv



_id,total
"aws.amazon.com",4.0
"cloud.google.com",2.0
"godaddy.com",1.0
"hostgator.com",3.0



4.Exportando a Collection "websitegroup" para um arquivo JSON.
c:\> mongoexport -d testdb -c websitegroup -o group.json
connected to: 127.0.0.1
exported 4 records

group.json



{ "_id" : "aws.amazon.com", "total" : 4 }
{ "_id" : "cloud.google.com", "total" : 2 }
{ "_id" : "godaddy.com", "total" : 1 }
{ "_id" : "hostgator.com", "total" : 3 }



Feito!!!

Categories

2.6 (1) 2.6.1 (1) Aggregate (2) Apache Hadoop (1) Aplicativos (1) AQ (1) Backup (1) Capacity Planning (1) Capped Collections (1) Cassandra vs MongoDB (1) Centos (1) Cloud (1) Cluster (1) Collections (2) Comparativo (1) Conectors (1) Consultas (1) Convert (1) CSV (1) Database (1) DEQUEUE (1) DML (1) Documents (1) Drivers (1) Export (2) Functions (1) Gradle (1) Group (1) Hadoop (2) Hive (1) IKM (1) Import (2) Instalação (1) Install (1) Java (6) JSON (9) lock (1) Mac (1) Mac OS X (1) Map Reduce (2) Memória (1) MongoDB (35) mongoexport (3) mongoimport (1) MongoMem (1) MySQL (1) news (1) NoSQL (1) Nuvem (1) ODI (3) Optimization (1) Oracle (4) Oracle AQ (1) Oracle Solaris (1) Oracle Streams (1) OraclexMongodb (2) OS X (1) Python (1) Python Software Foundation (1) Queue (1) RDBMS (1) repair (1) Replica Set (3) Review (1) Scripts (2) Shard (1) Shell (2) Slides (1) Solaris (1) SQL Server (1) Tools (2) Trial (2) Tutoriais (24) VirtualBox (1)

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página