- ADD JAR /home/oracle/mongo/hive-mongo.jar;
- create external table mongo_emps(EMPNO string, ENAME string, SAL int)
- stored by "org.yong3.hive.mongo.MongoStorageHandler"
- with serdeproperties ( "mongo.column.mapping" = "EMPNO,ENAME,SAL" )
- tblproperties ( "mongo.host" = "<my_mongo_ipaddress>", "mongo.port" = "27017",
- "mongo.db" = "test", "mongo.collection" = "myColl" );
Muito simples. O aspecto agradável da tabela externa Hive são os SerDeProperties que podem ser especificados, muito simples, mas fornece uma abordagem flexível agradável. Posso, então, fazer engenharia reversa em ODI e usá-lo em meus mapeamentos de integração Hive a ler e escrever, potencialmente para MongoDB.
Os tipos primitivos suportados também pode projetar tipos de documentos aninhados, assim, por exemplo, no documento abaixo (retirado daqui), nome, contribuições e prêmios são strings, mas têm estruturas JSON;
- {
- "_id" : 1,
- "name" : {
- "first" : "John",
- "last" :"Backus"
- },
- "birth" : ISODate("1924-12-03T05:00:00Z"),
- "death" : ISODate("2007-03-17T04:00:00Z"),
- "contribs" : [ "Fortran", "ALGOL", "Backus-Naur Form", "FP" ],
- "awards" : [
- {
- "award" : "W.W. McDowellAward",
- "year" : 1967,
- "by" : "IEEE Computer Society"
- },
- {
- "award" : "National Medal of Science",
- "year" : 1975,
- "by" : "National Science Foundation"
- },
- {
- "award" : "Turing Award",
- "year" : 1977,
- "by" : "ACM"
- },
- {
- "award" : "Draper Prize",
- "year" : 1993,
- "by" : "National Academy of Engineering"
- }
- ]
- }
pode ser processado com a seguinte definição tabela externa, a qual, em seguida, pode ser utilizado em ODI;
- create external table mongo_bios(name string, birth string, death string, contribs string, awards string)
- stored by "org.yong3.hive.mongo.MongoStorageHandler"
- with serdeproperties ( "mongo.column.mapping" = "name,birth,death,contribs,awards" )
- tblproperties ( "mongo.host" = "<my_ip_address>", "mongo.port" = "27017",
- "mongo.db" = "test", "mongo.collection" = "bios" );
Tudo muito simples e é isso que a torna tão atraente. De qualquer forma, essa é uma rápida seguinte sobre o uso de tabelas externas com MongoDB e Hive para a abordagem orientada SQL eu descrevi aqui utilizou funções de uma tabela java.
0 comentários:
Postar um comentário