40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
"""重跑 DWS_ASSISTANT_DAILY (全量) + DWS_ASSISTANT_MONTHLY 验证 SCD2 修复"""
|
||
import subprocess
|
||
import sys
|
||
|
||
# 第一步:全量重跑 daily(覆盖历史数据,修复 NULL level_name)
|
||
steps = [
|
||
{
|
||
"task": "DWS_ASSISTANT_DAILY",
|
||
"extra_args": ["--force-full", "--window-start", "2025-01-01", "--window-end", "2026-02-27", "--force-window-override"],
|
||
},
|
||
{
|
||
"task": "DWS_ASSISTANT_MONTHLY",
|
||
"extra_args": ["--force-full", "--window-start", "2025-01-01", "--window-end", "2026-02-27", "--force-window-override"],
|
||
},
|
||
]
|
||
|
||
for step in steps:
|
||
task = step["task"]
|
||
print(f"\n{'='*60}")
|
||
print(f"重跑 {task}")
|
||
print(f"{'='*60}")
|
||
cmd = [
|
||
sys.executable, "-m", "cli.main",
|
||
"--tasks", task,
|
||
] + step.get("extra_args", [])
|
||
result = subprocess.run(
|
||
cmd,
|
||
cwd="apps/etl/connectors/feiqiu",
|
||
capture_output=True,
|
||
text=True,
|
||
)
|
||
print(result.stdout[-3000:] if len(result.stdout) > 3000 else result.stdout)
|
||
if result.stderr:
|
||
print("STDERR:", result.stderr[-2000:] if len(result.stderr) > 2000 else result.stderr)
|
||
if result.returncode != 0:
|
||
print(f"❌ {task} 失败 (exit={result.returncode})")
|
||
break
|
||
else:
|
||
print(f"✅ {task} 完成")
|