Advertisement
Guest User

Untitled

a guest
Mar 6th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. import pymysql.cursors
  2. import pyodbc
  3. import pandas as pd
  4. from sqlalchemy import create_engine
  5.  
  6. # Função para trazer os dados do Sql e jogar em um dataframe
  7. def get_vendas_sqlserver():
  8. #Conexão com SQL Server
  9. connection = pyodbc.connect("DSN=SQLServer") #autocommit=True
  10. try:
  11. # O metodo do pandas retorna o resultado do select
  12. df = pd.read_sql_query("SELECT * FROM dw.dbo.vW_Vendateste123",connection,index_col=None,coerce_float=True, parse_dates= 'DataBaseContrato')
  13. return df
  14. finally:
  15. connection.close()
  16.  
  17. # jogando a função do sql dentro de uma variavel
  18. sqlvendas = get_vendas_sqlserver()
  19. print(sqlvendas)
  20.  
  21. # Função para trazer os dados do mysql e jogar em um dataframe
  22. def get_vendas_mysql():
  23. #Conexão Mysql
  24. cnxmysql = pymysql.connect(host='reveka',
  25. user='carga',
  26. password='carga',
  27. db='dw')
  28. try:
  29. # O metodo do pandas retorna o resultado do select
  30. df = pd.read_sql_query("SELECT * FROM ft_venda_copy", cnxmysql, index_col=None, coerce_float=True,
  31. parse_dates='DataBaseContrato')
  32. return df
  33. finally:
  34. cnxmysql.close()
  35.  
  36. # jogando a função do mysql dentro de uma variavel
  37. """mysqlvendas = get_vendas_mysql()
  38. print(mysqlvendas)"""
  39.  
  40. # Comparando os dois dataframes
  41.  
  42. df1 = get_vendas_sqlserver()
  43. df2 = get_vendas_mysql()
  44. #criando um dataframe vazio para guardar o resultado
  45. df_result = pd.DataFrame()
  46.  
  47. cnx = create_engine('mysql+pymysql://teste:teste@teste/dw')
  48.  
  49. for index, row in df1.iterrows():
  50. # verifica se este registro existe no DF do MySQL
  51. if row["IdContrato"] in df2["IdContrato"]:
  52. print("Contrato {0} encontrada no Mysql".format(row["Idcontrato"]))
  53. else:
  54. print("Contrato {0} nao encontrada no Mysql".format(row["IdContrato"]))
  55. # adiciona o registro num novo DF que vai ser usado para gravar no banco adiante
  56. df_result.append(row)
  57. #carregar_resultados(df_result)
  58. df_result.to_sql(con=cnx, name='ft_venda_copy', if_exists='append', index=False, )
  59. print('dados Carregados')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement