sql_query.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. import pandas as pd
  2. from sqlalchemy import create_engine
  3. from database import conn_string
  4. cfg = {
  5. 'clients': ['deop01', 'deop02', 'deop03', 'deop04', 'deop05', 'deop06', 'deop07', 'deop08', 'deop09', 'deop10',
  6. 'deop11', 'deop12', 'deop13', 'deop14', 'deop15', 'deop16', 'deop17', 'deop18', 'deop19', 'deop20',
  7. 'deop21', 'deop22', 'deop23', 'deop24', 'deop25', 'deop26', 'deop27', 'deop28', 'deop29', 'deho02', 'deni02'],
  8. 'date_filter': "'2019-01-01'",
  9. 'source_dsn': {'user': 'sa', 'pass': 'Mffu3011#', 'server': 'GC-SERVER1\\GLOBALCUBE', 'database': 'desk01', 'driver': 'mssql'},
  10. 'source_schema': 'dbo',
  11. 'source_query': 'Belege_Planung_Ist_FC.sql',
  12. 'source_header': ['Datenbank', 'Betrieb_Nr', 'Marke', 'Konto_Nr', 'Bookkeep_Period', 'Betrag', 'Menge'],
  13. 'target_csv': 'Belege_Planung_Ist_FC.csv'
  14. }
  15. def db_import(select_query, source_db, current_table, target_db, target_schema):
  16. pd.read_sql(select_query, source_db).to_sql(current_table['target'], target_db, schema=target_schema, index=False, if_exists='append')
  17. source_db = create_engine(conn_string(cfg['source_dsn']))
  18. with open(cfg['source_query'], 'r') as f:
  19. select_query = f.read()
  20. with open(cfg['target_csv'], 'w') as f:
  21. f.write(';'.join(cfg['source_header']) + '\n')
  22. for current_client in cfg['clients']:
  23. current_query = select_query.replace('desk01', current_client)
  24. pd.read_sql(current_query, source_db).to_csv(cfg['target_csv'], sep=';', decimal=',', encoding='latin-1',
  25. index=False, header=False, mode='a')
  26. print(current_client)