GoldenGate实时投递数据到大数据平台(1)-MongoDB
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的更多相关文章
- GoldenGate实时投递数据到大数据平台(2)- Cassandra
简介 GoldenGate是一款可以实时投递数据到大数据平台的软件,针对apache cassandra,经过简单配置,即可实现从关系型数据将增量数据实时投递到Cassandra,以下介绍配置过程. ...
- GoldenGate实时投递数据到大数据平台(5) - Kafka
Oracle GoldenGate是Oracle公司的实时数据复制软件,支持关系型数据库和多种大数据平台.从GoldenGate 12.2开始,GoldenGate支持直接投递数据到Kafka等平台, ...
- 大数据学习---大数据的学习【all】
大数据介绍 什么是大数据以及有什么特点 大数据:是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合. 大数据是一种方法论:“一切都被记录,一切都被数字化,从数据中寻找需求,寻找知 ...
- 转 开启“大数据”时代--大数据挑战与NoSQL数据库技术 iteye
一直觉得“大数据”这个名词离我很近,却又很遥远.最近不管是微博上,还是各种技术博客.论坛,碎碎念大数据概念的不胜枚举. 在我的理解里,从概念理解上来讲,大数据的目的在于更好的数据分析,否则如此大数据的 ...
- GoldenGate实时投递数据到大数据平台(6)– HDFS
GoldenGate可以实时将RDBMS的数据投递到HDFS中,在前面的文章中,已经配置过投递到kafka, mongodb等数据平台,本文通过OGG for bigdata的介质中自带的示例演示实时 ...
- GoldenGate实时投递数据到大数据平台(3)- Apache Flume
Apache Flume Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合,最后存储到一个中心化数据存储系统中,方便进行数据分析.事实上flume也可 ...
- GoldenGate实时投递数据到大数据平台(7)– Apache Hbase
Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...
- GoldenGate实时投递数据到大数据平台(4)- ElasticSearch 2.x
ES 2.x ES 2.x安装 下载elasticSearch 2.4.5, https://www.elastic.co/downloads/elasticsearch 解压下载后的压缩包,启动ES ...
- [转载] 使用 Twitter Storm 处理实时的大数据
转载自http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ 流式处理大数据简介 Storm 是一个开源的.大数据处理系统,与 ...
随机推荐
- 百度接口test
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Mk2Orf5pqEOXvYR ...
- AxMIMS系统开发环境搭建
系统环境:Windows10, VS2013, Qt5.6.2 64bit 1.CloudCompare2.8.1编译 (shapefilelib1.3,geos3.6.1) 2.PCL-1.8.0- ...
- MySQL大表优化方案 Mysql的row_format(fixed与dynamic)
转自:https://mp.weixin.qq.com/s/VY69wWlrVLjRtKU7ULrYGw 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除 ...
- python-->(set /dict)交集 差集 并集 补集(功能用来做交差并补的)
# ### 集合 作用:交集 差集 并集 补集(功能用来做交差并补的) '''特征:自动去重 无序''' #定义一个空集合 setvar = set() #set()强制转换成一个空集合的数据类型 p ...
- PHP数组和字符串的处理函数汇总
大部分数组处理函数array_chunk — 将一个数组分割成多个array_column — 返回数组中指定的一列array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的 ...
- 339A
#include <iostream> #include <string> #include <algorithm> using namespace std; #d ...
- Jmeter各参数含义
1.聚合报告分析 Label:每个JMeter的element(例如HTTP Request)都有一个Name属性,这里显示的就是Name属性的值 #Sample:表示你这次测试中一共发出了多少请求, ...
- syslog-ng应用详解
syslog-ng应用详解 科技小能手 2017-11-07 02:43:00 浏览136 评论0 日志 LOG 配置 主机 syslog source file varchar 摘要: 最近做一 ...
- Linux更改IP地址
1.进入到root用户 2.执行命令:ifconfig 查看本机的名称 3.执行命令:ifconfig eth0 192.168.25.128 netmask 255.255.255.0 //eth ...
- Windows 下MySql Replication(复制)配置
环境准备 到官网下载mysql-installer-web-community-5.7.21.0.msi并安装,选择MySql Workbench,记录安装时root输入的密码. 需要安装在两台机器上 ...