Environment: Azure Container Apps Job (D32-benchmark, 16 vCPU / 32 GiB), westus3 ClickHouse Cloud Production Scale (2 replicas × 4 CPU × ~8 GiB) Connection: HTTPS, Compression=true, set_async_insert=1, set_wait_for_async_insert=0 PBP sink: clickhouse (direct bulk-copy to play_by_play table) Job execution: oc-exp-1k-p32-9m3t8xw Schema: play_by_play PARTITION BY season_id (was game_id; changed due to max_partitions_per_insert_block=100 locked by Cloud) Backend: clickhouse, Scale: 1000 worlds, Environment: local Streaming mode: totalWorlds=1000, chunkSize=100 [parallel=32] PBP sink: clickhouse at ./pbp-parquet Streaming Run Report -------------------- Total wall time: 303.98 s Simulation time: 22.91 s OC write time: 20.73 s PBP write time: 239.47 s Merge time: 14.76 s Peak working set: 17489.9 MB Chunks completed: 10 OC rows (merged): 244,799 PBP rows (written): 41,993,241 Notes: - First validation run of the PBP→ClickHouse direct path after the ParquetPlayByPlayBatchWriter on ephemeral container disk proved pathologically slow (10K stalled at >1h 40m and had to be cancelled). - PBP throughput: 41.99M rows in 239.47s = 175K rows/sec. Serial PBP writes via bulk-copy per chunk; parallelism added later.