mongodb安装

安装

linux下可使用apt-get install mongodb-server 或 yum install mongodb-server 进行安装。

也可以在windows上安装mongodb,只要网络连通,数据就可以从关系型数据库投递到mongodb。详细安装文档可网络搜索。

启动mongodb

先创建一个数据目录

mkdir /opt/mongodb-data

然后启动DB服务, --rest是启动restful web

mongod --dbpath /opt/mongodb-data -–reset

可以通过restful admin web访问mongodb,如下

http://192.168.89.129:28017/


基本使用

插入示例数据并查询

简单统计test db.


OGG安装测试

以下使用ogg12.3 for big data介质进行数据投递,下载地址:

http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html

ogg for bigdata需要JDK 1.8及以上,安装完成之后,需要设置LD_LIBRARY_PATH环境变量

export LD_LIBRARY_PATH=/u01/jdk1.8.0_111/jre/lib/amd64/server

OGG for bigdata解压即可安装,安装完成之后,拷贝安装目录下自带的示例到dirprm目录。

[oracle@ol73 mongodb]$ pwd

/u01/ogg4bd_12.3/AdapterExamples/big-data/mongodb

[oracle@ol73 mongodb]$ cp * /u01/ogg4bd_12.3/dirprm/

修改dirprm/mongo.props文件,主要调整mongodb jdbc jar的路径和client URI

gg.handlerlist=mongodb

gg.handler.mongodb.type=mongodb

#The following handler properties are optional.

#Please refer to the Oracle GoldenGate for BigData documentation

#for details about the configuration.

gg.handler.mongodb.clientURI=mongodb://192.168.89.129:27017/

goldengate.userexit.timestamp=utc

goldengate.userexit.writers=javawriter

javawriter.stats.display=TRUE

javawriter.stats.full=TRUE

gg.log=log4j

gg.log.level=INFO

gg.report.time=30sec

#Path to MongoDB Java driver.

gg.classpath=/u01/ogg4bd_12.3/mongo-java-driver-3.4.0.jar

javawriter.bootoptions=-Xmx512m -Xms32m -Djava.class.path=.:ggjava/ggjava.jar:./dirprm

OGG投递进程参数,可直接使用示例自带的参数文件

GGSCI (ol73) 1> view param rmongo

REPLICAT rmongo

-- Trail file for this example is located in "AdapterExamples/trail" directory

-- Command to add REPLICAT

-- add replicat rmongo, exttrail AdapterExamples/trail/tr

TARGETDB LIBFILE libggjava.so SET property=dirprm/mongo.props

REPORTCOUNT EVERY 1 MINUTES, RATE

GROUPTRANSOPS 1000

MAP QASOURCE.*, TARGET QASOURCE.*;

使用OGG自带的增量数据创建投递进程

GGSCI>add replicat rmongo, exttrail AdapterExamples/trail/tr

启动投递进程

GGSCI (ol73) 3> start rmongo

Sending START request to MANAGER ...

REPLICAT RMONGO starting

统计变更数据

GGSCI (ol73) 9> stats rmongo, total

Sending STATS request to REPLICAT RMONGO ...

Start of Statistics at 2017-12-20 17:38:34.

Replicating from QASOURCE.TCUSTMER to QASOURCE.TCUSTMER:

*** Total statistics since 2017-12-20 17:38:18 ***

Total inserts 5.00

Total updates 1.00

Total deletes 0.00

Total discards 0.00

Total operations 6.00

Replicating from QASOURCE.TCUSTORD to QASOURCE.TCUSTORD:

*** Total statistics since 2017-12-20 17:38:18 ***

Total inserts 5.00

Total updates 3.00

Total deletes 2.00

Total discards 0.00

Total operations 10.00

End of Statistics.

可以看到变更数据中有2张表,包括有insert/update/delete等操作。

在数据库端验证结果

$mongo

查看数据库,已经看到有新插入的QASOURCE

> show dbs

QASOURCE 0.078GB

admin (empty)

local 0.078GB

test 0.078GB

> use QASOURCE

switched to db QASOURCE

简单查看一下数据库的基本信息

> db.stats()

{

"db" : "QASOURCE",

"collections" : 4,

"objects" : 15,

"avgObjSize" : 116.26666666666667,

"dataSize" : 1744,

"storageSize" : 32768,

"numExtents" : 4,

"indexes" : 2,

"indexSize" : 16352,

"fileSize" : 67108864,

"nsSizeMB" : 16,

"dataFileVersion" : {

"major" : 4,

"minor" : 5

},

"extentFreeList" : {

"num" : 0,

"totalSize" : 0

},

"ok" : 1

}

查看一下数据库中的集合

> db.getCollectionInfos()

[

{

"name" : "TCUSTMER"

},

{

"name" : "TCUSTORD"

},

{

"name" : "system.indexes"

}

]

> db.getCollectionNames()

[ "TCUSTMER", "TCUSTORD", "system.indexes" ]

>

> db.getCollectionNames()

[ "TCUSTMER", "TCUSTORD", "system.indexes" ]

查看TCUSTMER中的数据

> db.TCUSTMER.find()

{ "_id" : "WILL", "CITY" : "SEATTLE", "STATE" : "WA", "CUST_CODE" : "WILL", "NAME" : "BG SOFTWARE CO." }

{ "_id" : "JANE", "CITY" : "DENVER", "STATE" : "CO", "CUST_CODE" : "JANE", "NAME" : "ROCKY FLYER INC." }

{ "_id" : "DAVE", "CITY" : "TALLAHASSEE", "STATE" : "FL", "CUST_CODE" : "DAVE", "NAME" : "DAVE'S PLANES INC." }

{ "_id" : "BILL", "CITY" : "DENVER", "STATE" : "CO", "CUST_CODE" : "BILL", "NAME" : "BILL'S USED CARS" }

{ "_id" : "ANN", "CITY" : "NEW YORK", "STATE" : "NY", "CUST_CODE" : "ANN", "NAME" : "ANN'S BOATS" }

查找CITY=’DENVER’的记录

> db.TCUSTMER.find({"CITY":"DENVER"})

{ "_id" : "JANE", "CITY" : "DENVER", "STATE" : "CO", "CUST_CODE" : "JANE", "NAME" : "ROCKY FLYER INC." }

{ "_id" : "BILL", "CITY" : "DENVER", "STATE" : "CO", "CUST_CODE" : "BILL", "NAME" : "BILL'S USED CARS" }

测试完成。

GoldenGate实时投递数据到大数据平台(1)-MongoDB的更多相关文章

  1. GoldenGate实时投递数据到大数据平台(2)- Cassandra

    简介 GoldenGate是一款可以实时投递数据到大数据平台的软件,针对apache cassandra,经过简单配置,即可实现从关系型数据将增量数据实时投递到Cassandra,以下介绍配置过程. ...

  2. GoldenGate实时投递数据到大数据平台(5) - Kafka

    Oracle GoldenGate是Oracle公司的实时数据复制软件,支持关系型数据库和多种大数据平台.从GoldenGate 12.2开始,GoldenGate支持直接投递数据到Kafka等平台, ...

  3. 大数据学习---大数据的学习【all】

    大数据介绍 什么是大数据以及有什么特点 大数据:是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合. 大数据是一种方法论:“一切都被记录,一切都被数字化,从数据中寻找需求,寻找知 ...

  4. 转 开启“大数据”时代--大数据挑战与NoSQL数据库技术 iteye

    一直觉得“大数据”这个名词离我很近,却又很遥远.最近不管是微博上,还是各种技术博客.论坛,碎碎念大数据概念的不胜枚举. 在我的理解里,从概念理解上来讲,大数据的目的在于更好的数据分析,否则如此大数据的 ...

  5. GoldenGate实时投递数据到大数据平台(6)– HDFS

    GoldenGate可以实时将RDBMS的数据投递到HDFS中,在前面的文章中,已经配置过投递到kafka, mongodb等数据平台,本文通过OGG for bigdata的介质中自带的示例演示实时 ...

  6. GoldenGate实时投递数据到大数据平台(3)- Apache Flume

    Apache Flume Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合,最后存储到一个中心化数据存储系统中,方便进行数据分析.事实上flume也可 ...

  7. GoldenGate实时投递数据到大数据平台(7)– Apache Hbase

    Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...

  8. GoldenGate实时投递数据到大数据平台(4)- ElasticSearch 2.x

    ES 2.x ES 2.x安装 下载elasticSearch 2.4.5, https://www.elastic.co/downloads/elasticsearch 解压下载后的压缩包,启动ES ...

  9. [转载] 使用 Twitter Storm 处理实时的大数据

    转载自http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ 流式处理大数据简介 Storm 是一个开源的.大数据处理系统,与 ...

随机推荐

  1. ES6封装原生ajax请求

    http (data) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.onrea ...

  2. [js]javascript中4种异步

    javascript中4种异步: 1.ajax 2.定时器 3.事件绑定 4,回调 定时器 //顺序执行 /* var s = 0; for (var i = 0; i < 10000; i++ ...

  3. 【UML】-NO.41.EBook.5.UML.1.001-【UML 大战需求分析】- 类图(Class Diagram)

    1.0.0 Summary Tittle:[UML]-NO.41.EBook.1.UML.1.001-[UML 大战需求分析]- 类图 Style:DesignPattern Series:Desig ...

  4. 对于jquery实现原理的浅谈

    关键词:prototype(原型).它能让javascript的方法(也可看成:类)能够动态地追加方法(猜测:目的是为了代码实现引入“类的思想”) 废话少说,代码见真义. <html> & ...

  5. 超全PHP学习资源整理:入门到进阶系列

    PHP是少数几门在语言层面饱受诟病,但在实际开发和应用上却又让人无法撒手的语言之一.就好比路边摊小吃,一遍骂人家不卫生,一遍却又说:真香.所谓接地气,不外如此,大道理不说,PHP光是轮子多.市场占有率 ...

  6. Linux学习笔记:常用100条命令(一)

    linux常用命令 1.关机 shutdown -h now 立刻关机 poweroff shutdown -r now 立刻重启 reboot logout 注销 2.进入图形界面 startx 3 ...

  7. iOS 新浪微博-1.1框架升级

    在iOS 新浪微博-1.0框架搭建 中,使用的是xcode5.1.1开发.现在把重整了一下框架 改为xcode7.0开发 使用cocoaPad管理第三方库 程序将托管到github上 在改为xcode ...

  8. Ubuntu下orbbec mini 无法正常显示图像问题

    最近用orbbec的深度摄像头采集RGBD图像,Windows下一切OK.但是Ubuntu下出现了不少问题.总结一下 1.将设备插到USB,先确定电脑能否正常识别设备 Ubuntu下是不需要安装驱动的 ...

  9. cocos2d-x JS 四人麻将中的服务器位置与客户端位置转换相关

    前言:在写各类游戏编程中,都会遇到一个问题,就是位置问题,服务端的位置是与客户端的位置是不同的,这中间需要进行一个转化,客户端一套代码运行,不管是任何人登陆,该位置始终都是在屏幕正下方,所以这样就要进 ...

  10. 自定django登录跳转限制

    django自定义一个登录跳转限制: 解释: 不登录不让跳转到其它页面. 原理: 做一个装饰器,在访问路由时,先进行判断,登录session是否存在,如果存在则跳转,不存在则返回到登录页面.或者你可以 ...