人走茶凉 数据实时同步之MongoDB
随着传统企业的发展 , 企业数据呈现多样化 , 海量化 , 难以实现数据快速分析 。 MongoDB是当前很多企业使用的 , 当日积月累数据很大时 , 就可能会忽略历史数据的价值 , 可以把数据实时同步到其他储存:HBASE、HIVE、HDFS文件等等 。 在当前大数据、云计算的时代潮流下 , 实现数据价值 , 对企业决策力、洞察发现力极其有益 。
在MongoDB3.6之后版本 , 提供ChangeStreamsAPI 。 但目前数据量庞大的仍还是3.6之前版本的历史悠久企业 。 这些资产数据是不可缺少的 , 所以当使用3.6之前版本 , 两步走:首先对历史库数据迁移 。 再开始监听MongoDB库增量变化 , 实现MongoDB的监听和实时同步(Oplog) 。
目录:
1.Oplog简介
2.MongoDB服务配置启动
3.Oplog获取和查看
4.简单Java代码实现
1.Oplog简介1、认识
当在MongoDB的Primary下 , 我们进行操作库表时 , 这些操作会以特殊格式储存在local库下的一个固定集合中(下面会介绍到) 。 Secondary(次)就会通过获取主的oplog , 来进行同步数据 , 并且存储自己的Oplog 。 所以Oplog也是MongodbReplication的重要组成了 。
2、大小
Mongodb默认将其大小分配的是5%的空闲磁盘空间 。 也可以在创建mongod服务时 , 在mongo.conf中oplogSize自定义参数设置 , 单位是mb , 如果不指定 , 不同操作系统上的oplog默认大小不同 , 具体为以下:
For64-bitLinux,Solaris,andFreeBSDsystems:可以分配5%的剩余空间 。 如果分配的值仍小于1GB , 那么会分配1GB 。
For64-bitOSXsystems:分配183MB 。
For32-bitsystems:分配48MB 。
oplog的内存占比速度与系统处理写请求的速度相当 , 所以很快就会增量更新数据 。 时间上完全可以支持实时同步 。
3、oplog库表
oplog会自动创建在local库的collection:
a、master/slave架构下:local.oplog.$main
tarzxvfmongodb-linux-x86_64-3.2.22.tgz-C./mongodb-3.2.22
2.创建data、logs/mongodb.log文件夹
./mongo , 默认进入的collections是test , PRIMARY节点
ts:8字节的时间戳 , 由4字节unixtimestamp+4字节自增计数表示 。 这个值很重要 , 在选举(如master宕机时)新primary时 , 会选择ts最大的那个secondary作为新primaryop:1字节的操作类型"i":insert"u":update"d":delete"c":dbcmd"db":声明当前数据库(其中ns被设置成为=>数据库名称+'.')"n":noop,即空操作 , 其会定期执行以确保时效性ns:操作所在的namespaceo:操作所对应的document , 即当前操作的内容(比如更新操作时要更新的的字段和值)o2:在执行更新操作时的where条件 , 仅限于update时才有该属性2.查看oplog的基本信息
通过"db.printReplicationInfo()"命令可以查看oplog的信息
这里我们一般会重视数据的变化 , 所以列出insert、update、delete示例
【人走茶凉 数据实时同步之MongoDB】添加一条数据:
db.test.insert({"name":"这是一侧测试","age":"18
推荐阅读
- 金十数据|中国7月制造业交亮眼成绩单!上半年美国对华投资增长6%,好消息
- 金十数据|苹果欲向印转移6条生产线,印度手机市场混战:三星份额紧追小米
- 餐厅|大数据显示:二季度餐厅服务员求职环比上升超150%,快递员收入第一
- 美剧去哪看|状元们最后都干什么?权势巨子数据显示,3300名状元,最后只是……
- 中国天气网|哪些台风与“黑格比”相似,大数据看8月台风
- 新闻科技快报 华云数据用创新技术夯实中国信创“云基座”
- 问董秘|因为公司的发动机产品满足国六标准...,投资者提问:在公司营销数据和半年报中发现
- 天擎|海纳百川 风云际会——气象大数据云平台“天擎”
- 大数据看8月台风 哪些台风与“黑格比”相似
- 黑格比|大数据看8月台风 哪些台风与“黑格比”相似
