lhm-report-summary
Gets the overview statistics of a specified LHM data validation batch, including task name, validation template, table-level pass/fail counts, pass rate, difference rate, etc.
Steps
- Parse the command-line arguments (batch-id, region, etc.).
- Call
build_client_from_config()to build the LHM client (the network layer goes through the aliyun CLI, read from data_validation_config.yaml, with CLI arguments taking precedence). - Call
summarize_batch()to get the batch overview; redirectsys.stdoutto capture the log prints inside the common functions and avoid polluting stdout. - Add
"ok": trueto the returned dict and output the JSON to stdout. - On any exception output JSON to stderr and exit(1).
Pitfalls
- The batch must have finished executing (exec_status=4), otherwise
GetDataCheckReportOverviewmay return incomplete data. --batch-idis a required argument; missing it triggers an argparse error.- Credentials are resolved through the default credential chain (environment variables / RAM Role /
~/.alibabacloud/credentials); the script never accepts AK/SK as command-line arguments. - The common functions may use
printinternally for logs; the script captures them viaio.StringIOand writes them to stderr, so stdout contains only the final JSON.
Verification
-
For a valid batch, stdout should output something like:
{ "ok": true, "task_name": "逐表数据量校验", "template": "MIX", "total_tables": 13, "pass_tables": 11, "fail_tables": 2, "pass_rate": "84.62%", "column_pass_rate": 0.95, "diff_rate": "15.38%", "exec_status": 4, "check_result": 2 } -
Running
python -m py_compile atomic-skills/lhm-report-summary/scripts/run.pyproduces no syntax errors.
Input/Output Examples
python atomic-skills/lhm-report-summary/scripts/run.py \
--batch-id 67890 \
--region hangzhou
Successful output:
{"ok": true, "task_name": "逐表数据量校验", "template": "MIX", "total_tables": 13, "pass_tables": 11, "fail_tables": 2, "pass_rate": "84.62%", "column_pass_rate": 0.95, "diff_rate": "15.38%", "exec_status": 4, "check_result": 2}