2.0 KiB
2.0 KiB
Assumptions and pending decisions
Implemented assumptions
- The source directory contains seven expected source types for each complete hour.
- The newest usable hour is the newest 16-digit filename window for which all seven types exist. A newer incomplete hour is logged and skipped.
- Each ZIP contains exactly one XLSX member. The member is selected by extension because the two 700M ZIP series use a legacy filename encoding.
- Only
Sheet0is converted and merged. The指标(计数器)sheet is metadata and is not included in the summary. - NR CGI is derived as
{gNBplmn}-{gNBId}-{cellId}. - 4G CGI is derived as
460-00-{eNodeBID}-{小区ID}, using the equivalent node and cell column names in each source schema. - Only history CSV files uploaded to Metrix Storage use GBK without a UTF-8 BOM. Local converted and summary CSV files remain UTF-8 with BOM;
manifest.jsonremains UTF-8 JSON. - Source files are read-only. The script writes only below its configured output directory.
- MySQL is the scheduled-run output. The table uses one
metric_time DATETIMEcolumn containing the source KPI start time. - A successful run transactionally refreshes the selected hour and deletes rows for all other hours. A selected hour older than the newest database hour is rejected to prevent data rollback.
Pending user decisions
- Whether the seven converted full CSV files must be retained after successful database import.
- Whether the
指标(计数器)metadata sheet must also be stored. - Schedule minute and expected source-file arrival delay. A safe initial suggestion is hourly at minute 20.
- Historical backfill range and retention policy for generated CSV files.
- Whether an incomplete newest hour should only warn, fail the run, or wait and retry.
Mock boundary
Automated tests generate seven in-memory XLSX/ZIP sources plus a newer incomplete hour. The mock verifies both CGI rules, complete-hour fallback, schema validation, CSV conversion, summary merging, cross-midnight windows, transactional latest-hour replacement, and database rollback protection.