Nei repo dataset clonati dal template, i notebook non dovrebbero ricostruire la logica della pipeline. Dovrebbero leggere gli output reali e i metadata stabili prodotti dal toolkit.
Contratto stabile:
- RAW:
root/data/raw/<dataset>/<year>/ - CLEAN:
root/data/clean/<dataset>/<year>/ - MART:
root/data/mart/<dataset>/<year>/ - run records:
root/data/_runs/<dataset>/<year>/
File utili:
- RAW:
manifest.json,metadata.json,raw_validation.json - CLEAN:
<dataset>_<year>_clean.parquet,manifest.json,metadata.json - MART:
<table>.parquet,manifest.json,metadata.json
Ruoli dei file:
metadata.json: payload ricco del layer. Contiene input, output,config_hashe campi specifici del layer.manifest.json: summary stabile del layer. Punta a metadata e validation e riassumeok/errors_count/warnings_count.- run record in
data/_runs/...: stato del run (run_id, layer, validations, status), utile perstatuseresume. inspect paths --json: helper read-only per notebook e script locali; restituisce i path assoluti utili del runtime, inclusolatest_run.
Per evitare duplicazione di path logic nei notebook:
- leggi
dataset.yml - usa
toolkit inspect paths --config dataset.yml --year <year> --json - poi apri parquet, metadata, manifest, validation e run record dai path restituiti
Nota pratica:
inspect pathsrestituisce path assoluti della macchina locale: e' pensato per notebook e script nello stesso ambiente, non come formato portabile tra macchine diverse.
inspect paths e' il comando da usare quando il problema e':
- trovare i path runtime gia` risolti dal toolkit
- evitare di ricostruire a mano
root/data/... - leggere l'ultimo run disponibile per un anno
- recuperare i principali hint RAW senza aprire a mano i metadata
Input minimo:
--config dataset.yml- opzionale
--yearper restringere il payload a un solo anno
Output garantito in --json:
dataset,year,config_path,rootpaths.rawcondir,manifest,metadata,validationpaths.cleancondir,output,manifest,metadata,validationpaths.martcondir,outputs,manifest,metadata,validationpaths.run_dirraw_hintscon:primary_output_filesuggested_read_pathsuggested_read_existsencodingdelimdecimalskipwarnings
latest_run
Regola pratica:
- notebook e script locali: usa sempre
inspect paths --json - CI che deve validare
effective_rooto path contract: usainspect paths --json - se non passi
--year, il payload puo` essere una lista multi-anno
inspect schema-diff non e' un helper per notebook.
Serve invece quando vuoi:
- confrontare schema e hints RAW tra anni configurati
- capire se una fonte multi-anno ha drift di colonne o profile hints
- decidere se
clean.reado una nota metodologica devono esplicitare un caveat
In breve:
inspect paths: "dove sono gli artefatti e quale runtime path contract posso usare?"inspect schema-diff: "il RAW cambia tra anni e quanto cambia?"
Regola pratica:
- il toolkit produce
- i notebook ispezionano
dataset.ymlresta la fonte di verita` per root, dataset, anni e path relativi