[Resolvido][Script][Python3] Buscando dados de um banco e inserindo em outro. SQL Server > MySQL
Script Python
Olá desenvolvedores, venho compartilhar sobre um script de leitura e escrita de dados entre dois bancos de dados.
O problema inicial que tive foi o seguinte, tenho dois bancos de dados, um é SQL Server e o outro é um MySQL. Os bancos estão localizados em máquinas diferentes e precisava enviar os dados do banco da máquina 1 para a máquina 2. A versão do SQL Server na máquina 1 é a Express, logo não possui a função de "Roteamento de Dados", foi necessário criar um script de execução continua na máquina 2.
Solução
Foi desenvolvido um script em python3 para conectar e realizar o select no banco1, criando assim um DataFrame, logo bastou apenas inserir esses dados no banco local da máquina2. Segue o código:
#Code
Caso estiverem com algum problema semelhante, basta apenas substituir os atributos de login e conexão do código abaixo:
Ex: Backup de bancos em tempo real.
import pymssql
import pandas as pd
import time
import pymysql
import mysql.connector
from sqlalchemy import create_engine
i = 0
engine = create_engine('mysql+mysqlconnector://usuário:senha@end_IP:porta/nome_do_banco', echo=False)
cnx = engine.raw_connection()
conn2 = pymssql.connect(
host=r'end_IP',
user=r'usuário',
password=r'senha',
database='nome_do_banco'
)
cursor = conn2.cursor(as_dict=True)
while i == 0:
time.sleep(1)
cursor.execute('''
SELECT tal, tal, tal
FROM tal
''')
data = cursor.fetchall()
data_df = pd.DataFrame(data)
data_df.to_sql(name='Nome_da_tabela', con=engine, if_exists = 'append', index=False)
cursor.close()
Algumas configurações de inserção de dados podem ser encontradas aqui:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html