欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)Mysql全量數(shù)據(jù)同步的腳本分享

 更新時(shí)間:2023年06月19日 16:43:29   作者:一夜奈何梁山  
這篇文章主要為大家詳細(xì)介紹了基于Python如何實(shí)現(xiàn)Mysql全量數(shù)據(jù)同步的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下

一: 需求

線(xiàn)上數(shù)據(jù)全量同步到測(cè)試環(huán)境。

二:腳本

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
import datetime
import pymysql
import os

CUR_PATH = os.path.dirname(os.path.abspath(__file__))

# 需要同步的表
table_names = ['table_name_1', 'table_name_2']

source_db_config = {
    'db_host': 'XXXXX',
    'db_user': 'XXXX',
    'db_pwd': 'XXXX',
    'db': 'XCXXXCX',
    'db_port': 3306,
}

out_db_config = {
    'db_host': 'XXXX',
    'db_user': 'XXXX',
    'db_pwd': 'XXXX',
    'db': 'XXXXX',
    'db_port': 3306,
}


def get_datas(table_name):
    """源數(shù)據(jù)庫(kù),獲取全量數(shù)據(jù)"""
    db = pymysql.connect(source_db_config['db_host'], source_db_config['db_user'], source_db_config['db_pwd'],
                         source_db_config['db'], source_db_config['dp_port'], charset='utf8')
    cursor = db.cursor(pymysql.cursors.DictCursor)
    readsql = '''select * from {}'''.format(table_name)
    cursor.execute(readsql)
    results = cursor.fetchall()
    for data in results:
        yield data
    cursor.close()
    db.close()


def format_data(data):
    """數(shù)據(jù)格式化"""
    for k, v in data.items():
        if type(v) == datetime.datetime:
            data[k] = "'{}'".format(v.strftime('%Y-%m-%d %H:%M:%S'))
        elif type(v) == type(v) == datetime.date:
            data[k] = "'{}'".format(v.strftime('%Y-%m-%d'))
        elif type(v) == unicode:
            data[k] = "'{}'".format(v.encode('utf-8'))
    return data


def out_put_data(table_name):
    write = pymysql.connect(out_db_config['db_host'], out_db_config['db_user'], out_db_config['db_pwd'],
                            out_db_config['db'], out_db_config['dp_port'], charset='utf8')
    for data in get_datas(table_name):
        write_cursor = write.cursor()
        data = format_data(data)
        sql = ','.join(['{}=%s'.format(item) for item in data.keys()])
        temp = sql % (tuple(data.values()))

        write_sql = '''insert  into  %s set %s on  duplicate key update %s''' % (table_name, temp, temp)
        try:
            write_cursor.execute(write_sql)
            write.commit()
        except Exception as e:
            print("insert error, err_msg is {}".format(e))
            write.rollback()
        finally:
            write_cursor.close()
    write.close()


if __name__ == "__main__":
    start_time = time.time()
    for table_name in table_names:
        out_put_data(table_name=table_name)
    end_time = time.time()
    cost_time = end_time - start_time
    print("cost_time is {}".format(cost_time))

到此這篇關(guān)于Python實(shí)現(xiàn)Mysql全量數(shù)據(jù)同步的腳本分享的文章就介紹到這了,更多相關(guān)Python Mysql數(shù)據(jù)同步內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas刪除重復(fù)數(shù)據(jù)簡(jiǎn)單方法

    pandas刪除重復(fù)數(shù)據(jù)簡(jiǎn)單方法

    這篇文章主要給大家介紹了關(guān)于pandas刪除重復(fù)數(shù)據(jù)的簡(jiǎn)單方法,在數(shù)據(jù)處理過(guò)程中常常會(huì)遇到重復(fù)的問(wèn)題,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • selenium+python自動(dòng)化測(cè)試環(huán)境搭建步驟

    selenium+python自動(dòng)化測(cè)試環(huán)境搭建步驟

    在本文中小編給大家分享了關(guān)于selenium+python自動(dòng)化測(cè)試環(huán)境搭建的相關(guān)步驟以及知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考學(xué)習(xí)下。
    2019-06-06
  • 分享一下Python數(shù)據(jù)分析常用的8款工具

    分享一下Python數(shù)據(jù)分析常用的8款工具

    Python是數(shù)據(jù)處理常用工具,可以處理數(shù)量級(jí)從幾K至幾T不等的數(shù)據(jù),具有較高的開(kāi)發(fā)效率和可維護(hù)性,還具有較強(qiáng)的通用性和跨平臺(tái)性,這里就為大家分享幾個(gè)不錯(cuò)的數(shù)據(jù)分析工具,需要的朋友可以參考下
    2018-04-04
  • 一篇文章帶你了解python標(biāo)準(zhǔn)庫(kù)--os模塊

    一篇文章帶你了解python標(biāo)準(zhǔn)庫(kù)--os模塊

    在本篇內(nèi)容里小編給大家整理的是關(guān)于Python中os模塊及用法相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以學(xué)習(xí)下,希望能給你帶來(lái)幫助
    2021-08-08
  • python繪制神器五角星+小黃人+櫻花

    python繪制神器五角星+小黃人+櫻花

    這篇文章主要介紹了python繪制神器五角星+小黃人+櫻花,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • 在樹(shù)莓派2或樹(shù)莓派B+上安裝Python和OpenCV的教程

    在樹(shù)莓派2或樹(shù)莓派B+上安裝Python和OpenCV的教程

    這篇文章主要介紹了在樹(shù)莓派2或樹(shù)莓派B+上安裝Python和OpenCV的教程,主要基于GTK庫(kù),并以Python2.7和OpenCV 2.4.X版本的安裝作為示例,需要的朋友可以參考下
    2015-03-03
  • Python借助with語(yǔ)句實(shí)現(xiàn)代碼段只執(zhí)行有限次

    Python借助with語(yǔ)句實(shí)現(xiàn)代碼段只執(zhí)行有限次

    這篇文章主要介紹了Python借助with語(yǔ)句實(shí)現(xiàn)代碼段只執(zhí)行有限次,首先要定義一個(gè)能夠在with語(yǔ)句中使用的類(lèi)實(shí)現(xiàn)enter和exit,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-03-03
  • pandas實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)的四種方式

    pandas實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)的四種方式

    這篇文章主要介紹了pandas實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)的四種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python下載的庫(kù)包存放路徑

    python下載的庫(kù)包存放路徑

    在本篇文章里小編給大家整理的是一篇關(guān)于python下載的庫(kù)包存放路徑,需要的朋友們可以參考學(xué)習(xí)下。
    2020-07-07
  • Python中單下劃線(xiàn)和雙下劃線(xiàn)的使用詳解

    Python中單下劃線(xiàn)和雙下劃線(xiàn)的使用詳解

    在Python編程中,我們經(jīng)常會(huì)遇到單下劃線(xiàn)(_)和雙下劃線(xiàn)(__)的使用,本文就來(lái)和大家詳細(xì)講講單下劃線(xiàn)和雙下劃線(xiàn)的含義和用法,希望對(duì)大家有所幫助
    2023-06-06

最新評(píng)論