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

domingo, 4 de maio de 2014

MongoDB é uma ferramenta fantástica para usar em análises em tempo real, porque você pode fazer um pré-join de múltiplas fontes de dados, documentos aninhados e em seguida, consultar esses documentos extremamente rápido. Às vezes, os sistemas utilizados para alimentar o MongoDB estão dentro de um banco de dados Oracle. Então, como é que você pode manter os dados MongoDB consistentes com Oracle e sincronizados em tempo quase real? Oracle Streams Advanced Queuing!


Há toneladas de sistemas Open Source  e proprietary queuing que poderiam ser usados​​, então por que escolher Advanced Queuing (AQ a partir de agora)? O suporte a transações. Com AQ, o enfileiramento e de  operações queue acontecem na mesma transação como qualquer outro DML que seu aplicativo Oracle está realizando tornando-se uma maneira muito simples de apenas enfileirar mensagens  para unidades de trabalho comprometidos.


O restante deste artigo percorre um exemplo usando uma tabela muito simples de clientes. Queremos documentos no MongoDB atualizados assim que os dados no Oracle forem comitados. O fluxo de dados será algo parecido com isto:


untitled

 

Como configurar um cluster MongoDB NoSQL em um sistema baseado em x86 com Oracle Solaris Zones eo Service Management Facility Oracle Solaris 11 e uma ferramenta de análise DTrace.

Este artigo começa com uma breve visão geral do MongoDB e segue com um exemplo de criação de um cluster MongoDB três nós em um sistema baseado em x86. Como pré-requisito, você deve ter uma compreensão básica do Oracle Solaris Zones e administração de redes.

Sobre o MongoDB e Oracle Solaris Zones


MongoDB é um banco de dados orientado a documentos open source NoSQL que armazena dados estruturados como JavaScript Object Notation (JSON)-como documentos com esquemas dinâmicos. Isso permite um rápido desenvolvimento desde os esquemas de banco de dados podem ser modificados rapidamente aplicações evoluir sem a necessidade de desligar o banco de dados. Além disso, MongoDB suporta replicação master-slave, utilizando um conjunto de replicação, e também fornece escalabilidade horizontal com o recurso sharding, que permite distribuir os dados (com base em uma chave caco) em vários servidores MongoDB.

sábado, 3 de maio de 2014

Neste post vou mostrar como carregar documentos em uma collection MongoDB. O design da interface se parece com todas as outras interfaces ODI, mas nos bastidores o KM configurado no projeto físico utiliza o MongoDB SDK (veja aqui MongoDB SDK) para inserir os documentos. O armazenamento de dados alvo abaixo representa um documento MongoDB, as colunas são as chaves no documento. Cada linha é inserida como um documento e cada coluna é uma chave, o valor da coluna é o valor. O valor ENAME abaixo é apresentada como um valor JSON complexo.

odi_load_mongodb

 

A IKM que tenho usado é um multi-conector IKM, a fonte é uma fonte de dados SQL e destino usa um comando groovy do MongoDB. O core da IKM para inserir os documentos para a coleção tem um SQL SELECT como o comando no source e o seguinte código groovy para o comando-alvo;

  1. import com.mongodb.*

  2. MongoClient mongoClient = new MongoClient(" <%=odiRef.getOption("MONGO_SERVER")%> ", <%=odiRef.getOption("MONGO_PORT")%> );

  3. DB db = mongoClient.getDB("<%=odiRef.getOption("MONGODB")%>");

  4. DBCollection coll = db.getCollection("<%=odiRef.getOption("MONGOCOLL")%>")

  5. BasicDBObject doc = new BasicDBObject();

  6. <%=odiRef.getColList(" ", "doc.put(\u0022[COL_NAME]\u0022, \u0022#[CX_COL_NAME]\u0022);", " \n ", "", "((INS and !TRG) and REW)")%>

  7. coll.insert(doc);


A chamada do método odiRef.getColList acima gera código para cada coluna de destino, o código executa uma invocação doc.put para adicionar os pares de valores-chave no documento. Por exemplo, este é o código gerado e executado com base no design de interface discutido acima;




  1. import com.mongodb.*

  2. MongoClient mongoClient = new MongoClient("DALLAN-SVR", 27017);

  3. DB db = mongoClient.getDB("test");

  4. DBCollection coll = db.getCollection("testCollection")

  5. BasicDBObject doc = new BasicDBObject();

  6. doc.put("EMPNO", "#EMPNO");

  7. doc.put("ENAME", "#ENAME");

  8. doc.put("JOB", "#JOB");

  9. doc.put("MGR", "#MGR");

  10. doc.put("HIREDATE", "#HIREDATE");

  11. doc.put("SAL", "#SAL");

  12. doc.put("COMM", "#COMM");

  13. doc.put("DEPTNO", "#DEPTNO");

  14. coll.insert(doc);


Esta é uma ilustração simples de como carregar documentos para o MongoDB. Agora basta ir para o Shell do MongoDB e executar o comando db.testCollection.find () para ver todos os objetos da coleção e obter a lista de documentos, abaixo você pode ver uma prévia da execução.






  • { "_id" : ObjectId("51dc3ded6c4b9a5bd07d68a6"), "EMPNO" : "7369", "ENAME" : "{ NAME : SMITH, DESCR : 22 }", "JOB" : "CLERK", "MGR" : "7902", "HIREDATE" : "1980-12-17 00:00:00.0", "SAL" : "801", "COMM" : "", "DEPTNO" : "20" }

  • { "_id" : ObjectId("51dc3ded6c4b9a5bd07d68a7"), "EMPNO" : "7499", "ENAME" : "{ NAME : ALLEN, DESCR : 22 }", "JOB" : "SALESMAN", "MGR" : "7698", "HIREDATE" : "1981-02-20 00:00:00.0", "SAL" : "1601", "COMM" : "300", "DEPTNO" : "30" }



Vamos ver como podemos integrar MongoDB usando ODI, em primeiro lugar dar um passo atrás. Derby / JavaDB introduziu funções de tabela, há alguns anos. Tabela de Funções são realmente úteis, que estão no banco de dados Oracle e tão divertido no JavaDB! ODI é uma grande plataforma para integração e JavaDB e  tabela de funções fornecem uma maneira muito legal de integrar APIs Java arbitrários em seus projetos. O que tenho feito aqui é;




  • Construir uma Tabela de funções muito simples  java para projetar uma tabela para representar os documentos em uma coleção MongoDB. A coleção é passada como um parâmetro para o KM e os nomes de coluna são as chaves para o documento MongoDB. Os dados provêm de valores.

  • Construir um LKM muito simples a partir de uma função de tabela Java para SQL


Categories

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página