前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB系列10:Change Streams构建实时同步数据流

MongoDB系列10:Change Streams构建实时同步数据流

作者头像
大数据和云计算技术
发布2018-07-26 15:38:17
2.3K0
发布2018-07-26 15:38:17
举报

邓开表同学实战MongoDB系列文章,非常不错,赞!大力推荐!

本文是第10篇,主要讲述Change Streams构建实时同步数据流的实战经验,非常值得一看。

前面系列文章:

MongoDB安全实战之Kerberos认证

MongoDB Compass--MongoDB DBA必备的管理工具

MongoDB安全实战之审计

MongoDB安全实战之SSL协议加密

MongoDB安全实战之网络安全加固

MongoDB索引的介绍

MongoDB存储引擎

MongoDB集合的增量更新

MongoDB系列9:MongoDB数据迁移到MySQL


1、ChangeStreams概述

MongoDB的ChangeStreams允许应用程序实时访问数据的变化。应用程序可以使用Change Streams订阅集合上的所有数据的更改,并立即对它们作出响应。利用Change Streams这一功能可以构建实时数据同步的应用。

2、ChangeStreams的特性

Change Streams只能在副本集或分片集群中打开。在分片集群中,必须为mongos路由打开Change Streams操作。存储引擎要求是WiredTiger存储引擎。

3、ChangeStreams的变化事件类型

·insert事件

·update事件

·delete事件

·replace事件

·invalidate事件

4、打开ChangeStreams

在Python中可以采用以下方式打开一个ChangeStreams:

cursor =db.collection_name.watch()

其中,可以采用以下管道控制ChangeStreams的输出:

·$match

·$project

·$addFields

·$replaceRoot

·$redact

5、构建实时同步数据流案例

本例子,是利用Python构建从MongoDB的stream_table集合到mysql的stream_table表的实时同步。其中分别监听ChangeStreams的insert、update、delete三个变化事件。

1) 执行代码

2) 往stream_table集合插入一个文档

在初始情况下,stream_table集合和stream_table都是没有数据的。所以首先演示insert变化事件的监听。

同时查询mysql的stream_table表是否有记录:

数据已实时同步。

3) update集合stream_table数据

同样,查询mysql的stream_table表的记录是否有变化:

数据实时更新!

4) 最后delete集合stream_table数据

最后,查询mysql的stream_table表的记录是否有变化:

数据被删除!

小结:

在MongoDB到关系型数据库的数据迁移中,对于一些对数据时效要求高场景,特别是追求数据实时变化,利用MongoDB Change Streams可以有效地解决这类场景。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据和云计算技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档