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

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

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