data-warehouse 域的 duckdb-local 参考平台上(无 provider 的单机引擎,是
tpc-ds 套件的兄弟)。通过 params.mode 选择两种模式:
reference(默认)—— 单流跑一遍 22 条查询,对每个结果取摘要,产出queries.json+summary.json。便宜的 CI/离线路径,由official-tpch-evaluator评分。official—— 完整官方全流程(Load → Power 含 RF1/RF2 → 多流 Throughput → ACID), 产出official.json,由official-tpch-qphh-evaluator算出官方QphH@Size复合分。
官方模式的数字复现官方 TPC-H 公式,但未经审计:无 TPC 会员、无审计、无带报价的完整披露报告。
RF1/RF2 刷新集由 clousight 生成。每个分数都会在
notes 里注明。运行参考模式(无需云账号)
运行官方模式(QphH@Size)
官方模式需显式选择其 evaluator(两个 evaluator 都支持tpc-h,默认选参考那个):
规模放大
params.scale_factor 决定数据规模(QphH 按 @Size 报告),params.streams 决定并发
Throughput 查询流数,默认取该 scale factor 的官方最小值(SF1 → 2、SF10 → 3、SF30 → 4、
SF100 → 5、…)。三个复合分都随 SF 线性放大,Throughput@Size 随流数增长。
查询流排列由 params.query_order 决定:
official 在请求流数超过内置 Appendix A 表覆盖时直接报错,绝不静默替换成非官方排列。
用 query_order: generated 突破 S = 2(每个流仍跑全部 22 条查询,故吞吐指标正确;只有与已发布
结果的严格可比才需要精确的 Appendix A 序列)。所选排列会记入 official.json 的 ordering_source,
并折入本次运行的 dataset digest。官方模式测量的维度
official-tpch-qphh-evaluator 产出这些 tpc-h.* 测量:
官方模式不做正确性声明:Power 测试的查询跑在 RF1 刷新数据之后,结果与
pristine 数据参考天然不同——硬比会把正确行为误判为失败。正确性(对官方答案已验证)
归
reference 模式。
ACID Durability 报为 n/a(嵌入式 DuckDB 无崩溃/恢复夹具),故不进入测量集。ACID 是独立的
pass/fail 门,不参与 QphH@Size 复合分。
所有测量都带 official=True —— 这是一个溯源标记(“由套件公认的 evaluator 产出”),并非审计声明;
是否会漂移由 reproducibility_class 承载。
正确性:官方答案已验证
SF 1、0.1、0.01 三份 pinned 参考在捕获时均与 DuckDB 官方tpch_answers()
答案集逐单元验证(22 条全过;数值按共享的 2 位小数舍入、行序无关)——这些
SF 下的 queries_passed 会在 notes 中注明。其它 SF 在你捕获参考前不做正确性
声明(scripts/capture_tpch_reference.py --sf <sf>);仍非经审计的 TPC 结果。
性价比(price/QphH)
通过定价 feed 提供你的系统报价,pricing enricher 即产出官方风格的性价比复合数
(unaudited——报价是你自己的输入,例如 3 年 TCO 或包月价):
tpc-h.qphh_at_size 匹配(以及可选的 provider/region 过滤)后,记录获得
extensions.pricing.price_performance[],其中 price_per_unit_perf = price / QphH。
内置种子 feed 不含任何系统报价——性价比数字绝不来自发明的数据,且永远改变不了
判定(enricher 契约上只做叠加)。
暂不在范围内
真实 SUT 的config-connect 引擎(目前仅
duckdb-local)、以及把官方 Appendix A 排列表扩展到 streams 0–2 以外(在此之前用
query_order: generated 放大)。很大的 scale factor 受单机 DuckDB 内存/磁盘限制。嵌入式
DuckDB 不测 Durability 崩溃恢复。