[Como fazer] Uma API python que busca dados de um banco e insere em outro 'in real time'?

Caros amigos programadores,

Tenho uma solução para descobrir, a quest é a seguinte: tenho dois bancos de dados, de um lado, Máquina 1, tenho um SQL Server Express(que não possui a ferramenta Wizard integrada para enviar os dados para o banco receptor), e de outro lado, máquina 2, tenho um MongoDB ou um Mysql(não preciso que o banco seja especificamente relacional), as duas máquinas se encontram na rede. A máquina 1 gera os dados e armazena em local, preciso enviar esses dados para outro banco para armazenamento de dados e acessibilidade, dessa forma a máquina 1 terá seus dados apagados e será armazenando na máquina 2. Dito isso, com os dados salvos na máquina 2, os usúarios poderam acessar o banco para realizar alguns selects. Estou com dúvida de como realizar essa conexão entre os 2 bancos, talvez uma API poderia resolver, ou existe outra solução mais simples?

Fala Lucas, beleza?

Acho que um script para atualizar o banco 2 seria o caminho que eu seguiria. Colocaria um script rodando na máquina do banco 2 que faria uma busca nos novos dados (em 1) e faria um update no mesmo. Você pode fazer isso com python, faria uma query no banco 1 e 2 usando bibliotecas como o sqlalchemy, psycopg2, etc. Faz essa automação do script usando um cron mesmo

Show, consegui desembolar algo parecido na tarde de hoje, achei uma forma de puxar os dados em tempo real através de script no python. Puxa e cria um DataFrame a cada segundo, agora preciso que esse DataFrame seja inserido no Banco2, através de algum estudo em cima do sqlalchemy encontrei algo como to_sql para jogar através de um "INSER INTO" no Banco2, amanhã tentarei terminar o script, logo disponibilizarei por inteiro aqui. O script de consulta ficou assim: ` #Deixei alguns prints no meio do caminho para poder observar a execução. import pymssql import pandas as pd import time i = 0 conn = pymssql.connect( host=r'endereço_ip:porta', user=r'usuário', password=r'senha', database='Nome_do_Banco' ) #Estabelecendo conexão... print('Conectou!') cursor = conn.cursor(as_dict=True) print('Iniciando SELECT no banco 1!') while i == 0: time.sleep(1) #O loop com sleep é para realizar a busca a cada segundo. cursor.execute(''' SELECT tal, tal, tal FROM tal, tal, tal ''') print('SELECT realizado com sucesso!') data = cursor.fetchall() data_df = pd.DataFrame(data) print(data_df) cursor.close() #Através disso, busco e atualizo o DataFrame do pandas a cada segundo. `

Resolvido! Segue o script, valeu amigos!!

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()