- Goal: Create faster-scanning Parquet mirrors without replacing authoritative NDJSON evidence.
- Risk: Derived local mutation and external DuckDB process.
- Environment: macOS terminal, valid Lake, DuckDB CLI
1.5.x. - Preconditions: Sufficient free disk for a second representation; no other compaction writes the same derived directory.
- Inputs: Existing runtime/date NDJSON partitions under
LAKE_DATA/events. - Artifacts and side effects: Rebuilds one Parquet file per runtime under
LAKE_DATA/parquet/runtime=<runtime>. Reports source and output sizes and never deletes NDJSON. - Steps:
sh
LAKE="/absolute/operator-owned/lake"
transcript-lake --data-dir "$LAKE" status
transcript-lake --data-dir "$LAKE" compact --source codex --json
transcript-lake --data-dir "$LAKE" paths
transcript-lake --data-dir "$LAKE" clean --target parquet- Observable result: The report lists each runtime with source partitions, output path, source bytes, and Parquet bytes. Authoritative partitions remain unchanged.
- Failure path: Missing DuckDB, insufficient disk, malformed source rows, or output failure exits non-zero and preserves NDJSON.
- Cleanup:
clean --target parquetpreviews path and bytes;--applyremoves only derived Parquet. - Related operation: Use DuckDB directly against the derived files or query canonical views.