data-warehouse(数据仓库)
域上的第一个——benchmark_suite / evaluator 契约由此从 agent 套件(SWE-bench)
泛化到了 OLAP/数据领域。首个平台是 duckdb-local:一个无云、单机的参考引擎
(相当于 agent-runtime 的 local-sim),完全离线运行。
运行(无需云账号)
params.scale_factor 默认 1;params.query_ids 默认全部 99 条。省略
query_ids 即跑全集(SF1 下约 1.3s,另有一次性约 6s 的数据生成)。
测量什么
official-tpcds-evaluator 产出三个 tpc-ds.* 测量:
三者都带
official=True——在本框架里这是溯源标志(“由套件的官方评估器产出”),
并非审计声明;数字是否漂移由 reproducibility_class 承载。
正确性:固化的 SF1 参考
DuckDB 的tpcds_answers() 不可用(无参、默认 SF10),因此正确性用固化 SF1 参考
比对:每条查询归一化后的结果摘要,对照一次性固化(钉住 DuckDB + 扩展版本)的参考
(suites/tpc_ds/fixtures/reference/sf1_digests.json,由
scripts/capture_tpcds_reference.py 生成)。这是针对一个公认实现的确定性
复现/回归校验——不是经外部审计的 TPC 答案——且仅在 scale factor 1 时产出
(参考只有 SF1)。摘要归一化对数值定精度、对行排序,跨平台稳定;真实运行会在 CI 里
复现固化的参考。
本切片的刻意边界
- 正确性仅限 SF1;更高 scale factor 只报性能。
- 审计级 QphDS 数从不声称。unaudited 的官方公式复合分是存在的:
params.mode: official运行完整序列(load + power + 并发 throughput 流 + data maintenance + ACID 门)并计算 QphDS@SF——见下文的官方模式一节。 - 大数据规模与分布式引擎(EMR 上的 Spark、云数仓)属后续阶段,作为同一套件下的
更多
data-warehouse平台加入。
姊妹套件:TPC-H
TPC-H 是同一data-warehouse 域、同一 duckdb-local 平台上的第二个 OLAP 套件
——证明新套件能低成本挂上契约。它与 TPC-DS 形态相同(离线 mock + 真实 DuckDB、
老实的每查询延迟),只是改用 DuckDB 的 tpch 扩展(dbgen + 22 条查询经
PRAGMA tpch(n))——并在正确性与复合分上走得更远:SF 1 / 0.1 / 0.01 三档按 SF
键控的已验证参考(每档都在捕获时逐单元格对照 DuckDB 官方 tpch_answers()
验证过),以及自己的官方公式 QphH@Size 模式。见 TPC-H 套件。
tpc-h.queries_passed / tpc-h.geomean_latency_ms /
tpc-h.total_runtime_ms。真实路径需 [tpch] extra。与 TPC-DS 不同,DuckDB 自带
可用的 tpch_answers() 官方答案,因此 TPC-H 的正确性是已验证的,而不只是固化:
scripts/capture_tpch_reference.py 在捕获时逐条对照官方答案验证每个参考条目并盖上
verified_official 戳——随包提供的三个 scale factor(1、0.1、0.01)各 22/22 全部
验证通过。
官方模式(QphDS@SF)
params.mode: official 运行 TPC-DS 官方序列——Load → Power(99 查询单流)→
Throughput Test 1 → Data Maintenance 1 → Throughput Test 2 → Data Maintenance 2 →
ACID 门——由 official-tpcds-qphds-evaluator 计算官方复合分:
official-tpcds-qphds-evaluator 产出:
params.streams 默认取官方最小值(4)。运行同时产出 OTel 原生 trace
(trajectory.jsonl)——viewer waterfall 展示 Power 查询、两轮吞吐测试的并发流泳道
与 DM 窗口。
Unaudited,替代项如实声明:DuckDB 的
tpcds 扩展没有 LF_* 维护函数,数据维护
为 clousight 生成的 store_sales 插入+删除往返;未内置官方排列表,查询排序始终是
确定性的 clousight generated 排序(记入 ordering_source 并折入 dataset digest);
ACID 通用探针只测原子性/隔离性——一致性与持久性为 n/a。每个复合分的 notes 都带
这些声明。