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

原创 2018年04月17日 00:00:00

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

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


前面系列文章:

MongoDB安全实战之Kerberos认证

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

MongoDB安全实战之审计

MongoDB安全实战之SSL协议加密

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

MongoDB索引的介绍

MongoDB存储引擎

MongoDB集合的增量更新

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



 

1、ChangeStreams概述

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


2、ChangeStreams的特性

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


3ChangeStreams的变化事件类型

·insert事件

·update事件

·delete事件

·replace事件

·invalidate事件


4、打开ChangeStreams

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

cursor =db.collection_name.watch()

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

·$match

·$project

·$addFields

·$replaceRoot

·$redact


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

本例子,是利用Python构建从MongoDBstream_table集合到mysqlstream_table表的实时同步。其中分别监听ChangeStreamsinsertupdatedelete三个变化事件。

 

640?wx_fmt=png

 

1) 执行代码

640?wx_fmt=png


2) stream_table集合插入一个文档

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

640?wx_fmt=png

同时查询mysqlstream_table表是否有记录:

640?wx_fmt=png

数据已实时同步。


3) update集合stream_table数据

640?wx_fmt=png

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

640?wx_fmt=png

数据实时更新!


4) 最后delete集合stream_table数据

640?wx_fmt=png

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

640?wx_fmt=png

数据被删除!


小结:

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


猜你喜欢




#大数据和云计算机技术社区#博客精选(2017)

NoSQL 还是 SQL ?这一篇讲清楚

阿里的OceanBase解密

#大数据和云计算技术#: "四有"社区介绍

大数据和云计算技术周报(第38期)

新数仓系列:Hbase周边生态梳理(1)

《大数据架构详解》第2次修订说明

云观察系列:漫谈运营商公有云发展史

云观察系列:百度云的一波三折

云观察系列:阿里云战略观察

超融合方案分析系列(7)思科超融合方案分析

加入技术讨论群




《大数据和云计算技术》社区群人数已经3000+,欢迎大家加下面助手微信,拉大家进群,自由交流。

640?wx_fmt=jpeg

喜欢QQ群的,可以扫描下面二维码:

640?wx_fmt=jpeg

欢迎大家通过二维码打赏支持技术社区(英雄请留名,社区感谢您,打赏次数超过108+):

640?wx_fmt=jpeg



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zNZQhb07Nr/article/details/79971499

ORACLE实时同步技术之streams

  • 2013年08月21日 10:26
  • 248KB
  • 下载

Reactive Streams介绍

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/12/reactive-streams-introduction现代软件对近乎...
  • ricohzhanglong
  • ricohzhanglong
  • 2015-12-22 16:50:39
  • 2312

vertica-->kafka-->mongodb数据流

此连接件为confluent修改过的jar包,这里不提供下载(涉及公司机密!!) Kafka Connnect有两个核心概念:Source和Sink。 Source负责导入数据到Kafka,Sink...
  • u010522235
  • u010522235
  • 2016-08-04 18:29:19
  • 1552

Kafka2MongoDB

实现了将Kafka中的数据推送给Mongodb,然后再将Mongodb中的数据推送给Es的过程。数据来源是来自txt文档中的180万条数据。 准备工作: 1)在Mongdb集群上创建一个数...
  • yisun123456
  • yisun123456
  • 2017-11-28 16:31:41
  • 415

SQL Server 2008的Change Data Capture(变更数据捕获)

在常见的企业数据平台管理中有一项任务是一直困扰SQL Server DBA们的,这就是对数据更新的监控。很多数据应用都需要捕获对业务数据表的更新。笔者见过几种解决方案: 1、在数据表中加入特殊的标志...
  • xiaoxu0123
  • xiaoxu0123
  • 2013-02-24 23:29:30
  • 1932

MongoDB Capped Collection 使用

一 Capped Collection 简介         Capped Collection 是一种特殊的集合,它大小固定,当集合的大小达到指定大小时,新数据覆盖老数据。Capped colle...
  • Crazy__Programmer
  • Crazy__Programmer
  • 2013-11-12 16:16:34
  • 6054

logstash-output-mongodb实现Mysql到Mongodb数据同步

本文主要讲解如何通过logstash-output-mongodb插件实现Mysql与Mongodb数据的同步。源数据存储在Mysql,目标数据库为非关系型数据库Mongodb。0、前提1)已经安装好...
  • wojiushiwo987
  • wojiushiwo987
  • 2017-03-23 21:02:35
  • 4822

MongoDB数据同步工具mongosync介绍及下载

说明 本软件免费使用。 免责申明 使用前请先测试,使用本软件造成一切后果与本社区及本人无关。 许可证 目前使用Apache Licene 2.0 mongosync下载地址: htt...
  • guochunyang
  • guochunyang
  • 2016-11-29 13:37:16
  • 3400

ReactiveMongo 学习笔记

ReactiveMongo 学习笔记 ReactiveMongo是scala的mongodb驱动,提供了完全非阻塞和异步i/o操作。还是由于上一个网游服务器用到,在网上查找的资料不多,中文资料更少...
  • a071800
  • a071800
  • 2015-08-07 16:05:06
  • 1980

微服务MySQL分库分表数据到MongoDB同步方案[转]

需求背景近年来,微服务概念持续火热,网络上针对微服务和单体架构的讨论也是越来越多,面对日益增长的业务需求是,很多公司做技术架构升级时优先选用微服务方式。我所在公司也是选的这个方向来升级技术架构,以支撑...
  • runming56
  • runming56
  • 2017-11-30 10:21:30
  • 442
收藏助手
不良信息举报
您举报文章:MongoDB系列10:Change Streams构建实时同步数据流
举报原因:
原因补充:

(最多只允许输入30个字)