Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pymysql.cursors
- import pyodbc
- import pandas as pd
- from sqlalchemy import create_engine
- # Função para trazer os dados do Sql e jogar em um dataframe
- def get_vendas_sqlserver():
- #Conexão com SQL Server
- connection = pyodbc.connect("DSN=SQLServer") #autocommit=True
- try:
- # O metodo do pandas retorna o resultado do select
- df = pd.read_sql_query("SELECT * FROM dw.dbo.vW_Vendateste123",connection,index_col=None,coerce_float=True, parse_dates= 'DataBaseContrato')
- return df
- finally:
- connection.close()
- # jogando a função do sql dentro de uma variavel
- sqlvendas = get_vendas_sqlserver()
- print(sqlvendas)
- # Função para trazer os dados do mysql e jogar em um dataframe
- def get_vendas_mysql():
- #Conexão Mysql
- cnxmysql = pymysql.connect(host='reveka',
- user='carga',
- password='carga',
- db='dw')
- try:
- # O metodo do pandas retorna o resultado do select
- df = pd.read_sql_query("SELECT * FROM ft_venda_copy", cnxmysql, index_col=None, coerce_float=True,
- parse_dates='DataBaseContrato')
- return df
- finally:
- cnxmysql.close()
- # jogando a função do mysql dentro de uma variavel
- """mysqlvendas = get_vendas_mysql()
- print(mysqlvendas)"""
- # Comparando os dois dataframes
- df1 = get_vendas_sqlserver()
- df2 = get_vendas_mysql()
- #criando um dataframe vazio para guardar o resultado
- df_result = pd.DataFrame()
- cnx = create_engine('mysql+pymysql://teste:teste@teste/dw')
- for index, row in df1.iterrows():
- # verifica se este registro existe no DF do MySQL
- if row["IdContrato"] in df2["IdContrato"]:
- print("Contrato {0} encontrada no Mysql".format(row["Idcontrato"]))
- else:
- print("Contrato {0} nao encontrada no Mysql".format(row["IdContrato"]))
- # adiciona o registro num novo DF que vai ser usado para gravar no banco adiante
- df_result.append(row)
- #carregar_resultados(df_result)
- df_result.to_sql(con=cnx, name='ft_venda_copy', if_exists='append', index=False, )
- print('dados Carregados')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement