Files
LMS-DB-ETL/src/orchestrator.py
2025-06-20 17:30:53 -04:00

43 lines
1.4 KiB
Python

import os
import sys
import extract
import transform
import load
import logging
from datetime import date, datetime
logger = logging.getLogger('orchestrator.py')
logging.basicConfig(filename=os.getenv('LOG_FILE'), level=logging.INFO)
today = date.today()
if __name__ == '__main__':
try:
logger.info(f'{datetime.now()}:Starting extract.py')
extract.start()
except Exception as err:
logger.error(f'{datetime.now()}:An error occurred with extraction: {err}')
sys.exit(1)
logger.info(f'{datetime.now()}:Extraction completed.')
try:
logger.info(f'{datetime.now()}:Starting transform.py')
transform.start()
except Exception as err:
logger.error(f'{datetime.now()}:An error occurred with transformation: {err}')
sys.exit(1)
logger.info(f'{datetime.now()}:Transformation completed.')
try:
logger.info(f'{datetime.now()}:Starting load.py')
load.start()
except Exception as err:
logger.error(f'{datetime.now()}:An error occurred with loading: {err}')
sys.exit(1)
logger.info(f'{datetime.now()}:Loading completed.')
os.remove(f'output/raw_google_books_{today}.json')
os.remove(f'output/raw_open_lib_books_{today}.json')
os.remove(f'output/transformed_{today}.json')
logger.info(f'{datetime.now()}:Orchestration complete. ETL Pipeline executed without errors.')