"""Script for generating SQL and executing DELETE of Analytics Data""" import os import config cnx = config.credentials.cursor() DELETE_QUERIES_PATH = 'queries/delete_queries/' DELETE_STRING = "(thisrow_max_fact_processeddaytime = '{processeddaytime}' " \ "and storeid = '{storeid}') \n OR " def construct_delete_statement(dates_stores_to_reprocess_df): """Clean data & create SQL statement for dates/stores to delete Args: dates_stores_to_reprocess_df (dataframe): Trimmed Dataframe of dates/stores to either delete and or load Returns: Completed SQL Statement for delete """ dates_stores_to_delete = "" for index, row in dates_stores_to_reprocess_df.iterrows(): storeid = int(row['AGG_STOREID']) processeddaytime = row['AGG_PROCESSEDDAYTIME'] dates_stores_to_delete += DELETE_STRING \ .format(storeid=storeid, processeddaytime=processeddaytime) return dates_stores_to_delete[:-6] def delete_dates_stores(constructed_delete): """Execute deletions of dates/stores Args: constructed_delete: Formatted SQL string to input """ delete_queries = os.listdir(DELETE_QUERIES_PATH) for delete_query in delete_queries: print("\nNow running {delete_query}".format(delete_query=str(delete_query))) sql = config.load_query(delete_query, DELETE_QUERIES_PATH)\ .format(dates_stores_to_delete=constructed_delete) cnx.execute(sql)