sábado, 3 de maio de 2014

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



Tudo isso vai usar o JavaDB na memória, de forma que nenhum admin, simples de usar.  A classe mongo_table eu escrevi usa a classe EnumeratorTableFunction. A classe MongoDB dbcursor é um Java Iterator, o que o torna muito bom para passar para a classe EnumeratorTableFunction, e deixá-lo fazer todo o trabalho.


O LKM construido declara a função de tabela para JavaDB / Derby, por exemplo abaixo, a função é declarada com base no nome da fonte de armazenamento de dados (MONGO_EMPS) e colunas (meu armazenamento de dados de origem tem EMPNO, ENAME, SAL, observe a função de tabela, na verdade, vai projetar tipos definidos em armazenamento de dados do ODI), a função tem o nome de banco de dados MongoDB e nome da coleção como parâmetros.




  1. create function MONGO_EMPS( dbName varchar( 330), collectionName varchar( 30))

  2. returns table

  3. (

  4.   EMPNO VARCHAR(20),

  5.   ENAME VARCHAR(30),

  6.   SAL NUMERIC(10),

  7. )

  8. language java

  9. parameter style DERBY_JDBC_RESULT_SET

  10. no sql

  11. external name 'mongo_table.readCollection'


Em seguida, o código real para usar a função como uma fonte é executado a partir de uma tarefa de origem (o alvo é o SQL como mencionei anteriormente para a LKM). Abaixo você pode ver minha execução usando o MongoDB teste ea coleta mystuff;


Nota : Também podemos executar alguma filtragem como um exemplo, aqui ele está sendo feito em JavaDB e no meu caso a sua in-memory. Nenhuma configuração,apenas na persistência Java on the fly. Idealmente, eu iria forçar o filtro para baixo do MongoDB em vez de ler e filtrar no driver.


Eu defini os meus documentos no MongoDB usando os seguintes comandos básicos do shell mongo;

  1. use test

  2. a1 = { EMPNO: "1", ENAME : "Fred", SAL : 10000 }

  3. a2 = { EMPNO: "2", ENAME : "John", SAL : 2000 }

  4. db.myStuff.insert( a1 )

  5. db.myStuff.insert( a2 )


No ODI, eu posso simplesmente em seguida, usar o armazenamento de dados que representa a coleção MongoDB de documentos em uma interface e mapeá-lo para o meu alvo;

odi_mongodb_1

 

O projeto físico usa a função LKM JavaTable para SQL KM e define as bases de dados MongoDB, cobrança e o nome da função de tabela Java.

odi_mongodb_2

 

É isso aí. Bastante simples e estamos lendo e consumindo documentos MongoDB.  O outro ponto aqui é que este é um LKM genérico que você pode conectar outras funções arbitrárias de tabela - assim você pode utilizar de qualquer API, é muito simples. Para o LKM eu criei, eu apenas 2 parâmetros definidos (porque minha função de tabela só tinha dois), mas realmente precisamos de uma melhor maneira de lidar com isso e garantir que eles são ignorados se não definidos, etc Isso é tudo uma questão de aperfeiçoar, de qualquer maneira você pode ver tudo com um pequeno pedaço de código alavancar JavaDB!

Related Posts:

  • Execução de comandos shell do MongoDB a partir de um arquivo JavascriptComo sabemos MongoDB usa javascript interface para os comandos de shell. Assim, podemos usar este recurso de uma ótima maneira escrevendo comandos de um MongoDB (shell)  em um javascript (js arquivo.) e por fim, executar em u… Read More
  • Javascript for your Data[slideshare id=34295374&style=border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px; max-width: 100%;&sc=no] MongoDB - Javascript for your Data from Paulo Fagundes… Read More
  • ODI - Hive and MongoDBEu tenho experimentado com outro manipulador de armazenamento Hive, desta vez para MongoDB, existem alguns por aí incluindo este de MongoDB. O que eu tenho vindo a utilizar suporta tipos primitivos básicos e também suporta le… Read More
  • ODI - MongoDB e Tabela Java de funçõesVamos 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 … Read More
  • MongoDB JavaInstalaçãoAntes de começar a usar o MongoDB com nossos programas em Java, precisamos ter certeza de que temos informações MongoDB Java Driver JDBC e configurar sua máquina.Você pode verificar no Java tutorial como instalar o … Read More

0 comentários:

Postar um comentário

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página

6,981