MySQL实现批量推送数据到Mongo

 更新时间:2023年05月04日 17:22:13   作者:小小鸟爱吃辣条  
这篇文章主要为大家详细介绍了MySQL如何实现批量推送数据到Mongo,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下
import pymongo 
import mysql.connector

连接MySQL数据库

mysql_conn = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" )

连接MongoDB数据库

mongo_client = pymongo.MongoClient("mongodb://localhost:27017/") mongo_db = mongo_client["mydatabase"] mongo_collection = mongo_db["mycollection"]

在MongoDB中为指定集合创建索引

mongo_collection.create_index([("myfield", pymongo.ASCENDING)])

缓冲列表和计数器以在每10000行处理后进行批处理

bulk_data = [] bulk_count = 0

创建游标对象并从MySQL数据库检索数据

mysql_cursor = mysql_conn.cursor() mysql_cursor.execute("SELECT * FROM mytable")

遍历结果集并处理每个行。

for row in mysql_cursor: # 将一条记录转换成你的MongoDB文档,然后将其添加到缓冲列表。 
doc = { "myfield": row[0], "anotherfield": row[1], "yetanotherfield": row[2] } bulk_data.append(doc) bulk_count += 1
# 如果我们达到了10000,请在集合中批量插入缓冲数据。
if bulk_count == 10000:
    mongo_collection.insert_many(bulk_data)
    # 重置计数器并清除缓冲数据列表
    bulk_count = 0
    bulk_data.clear()

处理剩余的行,如果有任何事情需要处理。

if bulk_count > 0: mongo_collection.insert_many(bulk_data)

关闭MySQL连接。

mysql_conn.close()

import pymongo
import mysql.connector
# 连接MySQL数据库
mysql_conn = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="yourpassword",
  database="yourdatabase"
)
# 连接MongoDB数据库
mongo_client = pymongo.MongoClient("mongodb://localhost:27017/")
mongo_db = mongo_client["mydatabase"]
mongo_collection = mongo_db["mycollection"]
# 在MongoDB中为指定集合创建索引
mongo_collection.create_index([("myfield", pymongo.ASCENDING)])
# 缓冲列表和计数器以在每10000行处理后进行批处理
bulk_data = []
bulk_count = 0
# 创建游标对象并从MySQL数据库检索数据
mysql_cursor = mysql_conn.cursor()
mysql_cursor.execute("SELECT * FROM mytable")
# 遍历结果集并处理每个行。
for row in mysql_cursor:
    # 将一条记录转换成你的MongoDB文档,然后将其添加到缓冲列表。
    doc = {
        "myfield": row[0],
        "anotherfield": row[1],
        "yetanotherfield": row[2]
    }
    bulk_data.append(doc)
    bulk_count += 1
    # 如果我们达到了10000,请在集合中批量插入缓冲数据。
    if bulk_count == 10000:
        mongo_collection.insert_many(bulk_data)
        # 重置计数器并清除缓冲数据列表
        bulk_count = 0
        bulk_data.clear()
# 处理剩余的行,如果有任何事情需要处理。
if bulk_count > 0:
    mongo_collection.insert_many(bulk_data)
# 关闭MySQL连接。
mysql_conn.close()

到此这篇关于MySQL实现批量推送数据到Mongo的文章就介绍到这了,更多相关MySQL推送数据到Mongo内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 将MySQL从MyISAM转换成InnoDB错误和解决办法

    将MySQL从MyISAM转换成InnoDB错误和解决办法

    原来自己用的是为了装的, 所以在设置database usage(如下图1)的时候按照discuz官方的建议,选的都是Non-Transactional Database Only(只支持MyISAM数据引擎的非事务数据库),用MyISAM数据库,还没涉及到需要InnoDB,因此打算直接不加载INNODB引擎。
    2011-09-09
  • 各个系统如何寻找数据库的my.ini并进行修改方法详解

    各个系统如何寻找数据库的my.ini并进行修改方法详解

    通过编辑my.ini文件,可以对MySQL数据库服务器进行各种配置,比如设置监听的IP地址、指定端口号、设定字符集、配置缓冲区大小等等,这篇文章主要介绍了各个系统如何寻找数据库的my.ini并进行修改的相关资料,需要的朋友可以参考下
    2025-04-04
  • SQL实现数据过滤流程详解

    SQL实现数据过滤流程详解

    这篇文章主要介绍了SQL实现数据过滤流程,当我们在SQL中查询数据时,肯定是有一些数据是我们不需要的,所以我们此时就要对数据进行过滤,以筛选出我们仅需要的数据
    2023-01-01
  • MySQL数据库之事务简析

    MySQL数据库之事务简析

    这篇文章主要介绍了MySQL数据库之事务简析,MySQL数据库中的事务是一组数据库操作,它们被视为一个整体,要么全部执行成功,要么全部失败回滚,MySQL支持四种事务隔离级别,其中默认的事务隔离级别是REPEATABLE READ,需要的朋友可以参考下
    2023-09-09
  • MySQL正确修改最大连接数的3种方案

    MySQL正确修改最大连接数的3种方案

    这篇文章主要给大家介绍了关于MySQL正确修改最大连接数的3种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 解决重置Mysql root用户账号密码问题

    解决重置Mysql root用户账号密码问题

    这篇文章主要介绍了解决重置Mysql root用户账号密码问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • mysql order by 排序原理解析

    mysql order by 排序原理解析

    当涉及到大量数据时,对于 ORDER BY 操作,可以考虑为相应的列添加索引,如果不使用索引,mysql会使用filesort来进行排序,这篇文章主要介绍了mysql order by 排序原理,需要的朋友可以参考下
    2024-02-02
  • MySQL执行外部sql脚本文件的命令

    MySQL执行外部sql脚本文件的命令

    sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中,然后通过相关的命令执行这个sql脚本文件,本文就详细的介绍一下,感兴趣的朋友可以了解一下
    2021-12-12
  • MySql 8.0.11-Winxp64(免安装版)配置教程

    MySql 8.0.11-Winxp64(免安装版)配置教程

    这篇文章主要介绍了MySql 8.0.11-Winxp64(免安装版)配置教程,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • 关于Mysql隔离级别、锁与MVCC介绍

    关于Mysql隔离级别、锁与MVCC介绍

    本篇文章给大家详细介绍了一下关于Mysql隔离级别、锁与MVCC的相关知识,有这方面兴趣的朋友参考下。
    2018-01-01

最新评论