美文网首页SQL
mysql数据转存到mongodb

mysql数据转存到mongodb

作者: FilesFan | 来源:发表于2019-04-15 17:27 被阅读274次

    概述

    现在比较推荐的数据存储方式是sql+nosql,而这个搭配方式中mysql+mongodb是比较流行的,所以就出现一个问题,2种数据库之间的转存如何实现,为了解决这个问题,编写了简单的转存脚本来实现。

    实现思路

    这个思路也很简单,就是将mysql的数据提取出来,转换成字典类型,然后存储到mongodb中。
    这里推荐是一个个数据提取,如果一次性把数据全部取出,如果数据很大的话,对于内存的要求比较高。

    代码实现

    首先要定义一个生成器函数,来实现将mysql中的数据库提取出来并转换成字典

    def mysql_info(sql):
        '''
            获取mysql数据的生成器
        '''
        try:
            cursor.execute(sql)
        except Exception as e:
            print(e)
            exit()
        else:
            while True:
                yield dict(zip([x[0] for x in cursor.description],[x for x in cursor.fetchone()]))
        finally:
            cursor.close()
            mysql_conn.close()
    

    这里说下dict(zip([x[0] for x in cursor.description],[x for x in cursor.fetchone()]))。通过dict和zip函数配合可以将数据合并成字典。
    cursor.description返回的是数据的表头信息。

    最后的逻辑实现也就很简单了。

    infos = mysql_info(mysql_command) #获取生成器
    while True:
        try:
            info = next(infos) #获取生成器信息
            print("insert [%s] to mongodb.."%info['name'])
            mycoll.insert(info) #写入到mongodb中
        except:
            print('Done.')
            break
    

    完整代码

    GitHub完整代码

    相关文章

      网友评论

        本文标题:mysql数据转存到mongodb

        本文链接:https://www.haomeiwen.com/subject/ojhpwqtx.html