Executando verificação de segurança...
1

[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

Carregando publicação patrocinada...