Talvez você se lembre da minha postagem sobre Movendo dados do CouchDB para o Couchbase. Se você não estiver usando o CouchDB, mas o MongoDB, talvez tenha se sentido decepcionado. Eu sinto muito. Vamos consertar isso. Veja como mover seus dados do MongoDB para o Couchbase.

Uma das vantagens de usar o RxJava é que essa API está se tornando mais difundida. Fizemos essa escolha há algum tempo e estamos felizes em ver mais pessoas se juntarem a ela, como o Mongo fez recentemente.

O fato de compartilharmos uma API de fluxo facilitará muito as coisas. Meu objetivo é obter um Observable de Documento Mongomapear para documentos do Couchbase e, em seguida, gravá-los no Couchbase. Como você pode ver, esse processo é muito fácil de modelar com o RxJava. Em pseudocódigo, seria parecido com:

getMongoCollectionStream().fromMongoDocumentToCouchbaseDocuments().writeCBdocToCouchbase()

Novamente, isso se encaixa muito bem no RxJava.

O MongoDB permite que você abra uma coleção e a retorne como um Observable of Document. Isso é exatamente o que precisamos e pode acontecer em algumas linhas:

Em seguida, precisamos transformar os documentos que chegam em documentos do Couchbase. Podemos usar facilmente o operador de mapa Rx para fazer isso. Ao escrever um documento no couchbase, você precisa de uma chave ou de um ID. Em um documento do Mongo, ele é armazenado no campo _id usando a abstração ObjectID. Ele é gerado pelo Mongo com base em vários critérios. Depois de obter esse id, tudo o que precisamos fazer é obter o Doc como uma string JSON e criar um RawJsonDocument com base nisso e no id.

Depois dessa operação map.operation, ficamos com um observável do documento do couchbase. A última etapa é gravá-lo no Couchbase.

Incluí todo esse código e o tornei configurável no couchbase-java-importer. Ele está disponível no Github aqui.

Se você não precisa fazer nada além de importar os documentos JSON de uma coleção diretamente para o Couchbase, isso deve ser suficiente. Basta baixar o arquivo binário e executá-lo, certificando-se de que o Configuração yml está em seu classpath e contém as informações corretas.

Essa é uma maneira específica de mover dados do MongoDB para o Couchbase. Há outras. Ambos os bancos de dados oferecem suporte à importação de CSV, por exemplo, e o Mongo tem um exportador de CSV. Assim, quando você tiver um arquivo CSV, poderá usar cbtransferência ou couchbase-java-importer para obter seu conteúdo no Couchbase.

Todos esses exemplos pressupõem que você não deseja fazer nenhuma transformação nos dados antes de importá-los. As etapas de transformação seriam muito fáceis de conectar no importador RxJava. O código é muito simples, portanto, sinta-se à vontade para fazer um fork dele ou enviar solicitações pull! A propósito, adicionar mais importadores a esse projeto pode ser uma ótima maneira de entrar na comunidade CB :)

Autor

Postado por Laurent Doguin

Laurent é um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve código em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas que estão na moda. Ele também foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experiência para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Relações com Desenvolvedores na Couchbase.

Deixar uma resposta