有很多从事海外业务的公司,都不止上架一两个马甲包,而是会同时上架十几个甚至几十个产品,当我们在提取数据时,明明需要用到查询的sql是一样的,但每次都要一个一个数据库的查,这样十分耗费时间,这时可以选用python,写个通用查询脚本,一次性查询出所有内容并且整合到一起。
基本思路:1、将数据库连接封装到同一个类下;
2、查询时依次调用相应的数据库,返回结果合并到一个DataFrame中。
类的封装可以参考下面的代码(有些数据库是通过ssh连的,这里也给出案例):
from sqlalchemy import create_engine
import pandas as pd
import pymysql
import time
from sshtunnel import SSHTunnelForwarder
class MySQLTool(object):
def __init__(self,con):
self.con = con
self.con_post = create_engine('mysql+pymysql://read:post001@post.cshgrltcl1da.ap-south-1.rds.amazonaws.com:3306/post?charset=utf8')
self.con_zest = create_engine('mysql+pymysql://read:zest001@zest.c8g4xu1qjzu8.ap-south-1.rds.amazonaws.com:3306/zest?charset=utf8')
self.con_kin = create_engine('mys