second commit
This commit is contained in:
@@ -428,37 +428,40 @@ def verify(expected: int, target_date: date) -> bool:
|
||||
|
||||
# ── Main ──────────────────────────────────────────────────────────────────────
|
||||
def main() -> None:
|
||||
target_date = date.today() - timedelta(days=1)
|
||||
log.info(f"=== Coverage KPI ETL | date={target_date} ===")
|
||||
#target_date = date.today() - timedelta(days=1)
|
||||
for i in range(1, 10):
|
||||
target_date = date(2023, 3, 9) + timedelta(days=i)
|
||||
print(target_date)
|
||||
log.info(f"=== Coverage KPI ETL | date={target_date} ===")
|
||||
|
||||
# Build the SQLAlchemy engine once — shared across all steps
|
||||
engine = build_engine()
|
||||
# Build the SQLAlchemy engine once — shared across all steps
|
||||
engine = build_engine()
|
||||
|
||||
# Collect which MIDs need processing
|
||||
mids = collect_mids(engine, target_date)
|
||||
if not mids:
|
||||
log.info("No MIDs for yesterday. Nothing to do.")
|
||||
sys.exit(0)
|
||||
# Collect which MIDs need processing
|
||||
mids = collect_mids(engine, target_date)
|
||||
if not mids:
|
||||
log.info("No MIDs for yesterday. Nothing to do.")
|
||||
sys.exit(0)
|
||||
|
||||
# Fetch raw data using pl.read_database()
|
||||
df_raw = fetch_coverage_data(engine, mids)
|
||||
engine.dispose() # return all pooled connections to OS cleanly
|
||||
# Fetch raw data using pl.read_database()
|
||||
df_raw = fetch_coverage_data(engine, mids)
|
||||
engine.dispose() # return all pooled connections to OS cleanly
|
||||
|
||||
if df_raw.is_empty():
|
||||
log.warning("Empty result set. Exiting.")
|
||||
sys.exit(0)
|
||||
if df_raw.is_empty():
|
||||
log.warning("Empty result set. Exiting.")
|
||||
sys.exit(0)
|
||||
|
||||
# Transform
|
||||
df_clean = transform(df_raw)
|
||||
# Transform
|
||||
df_clean = transform(df_raw)
|
||||
|
||||
# Load
|
||||
rows_inserted, inserted_date = load_to_clickhouse(df_clean)
|
||||
# Load
|
||||
rows_inserted, inserted_date = load_to_clickhouse(df_clean)
|
||||
|
||||
# Verify
|
||||
if not verify(rows_inserted, inserted_date):
|
||||
sys.exit(2)
|
||||
# Verify
|
||||
if not verify(rows_inserted, inserted_date):
|
||||
sys.exit(2)
|
||||
|
||||
log.info(f"=== Done. {rows_inserted:,} rows loaded for {inserted_date} ===")
|
||||
log.info(f"=== Done. {rows_inserted:,} rows loaded for {inserted_date} ===")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user