发行说明:本功能纳入1.0.0-rc.1企业本地协作候选,schema61。下方开发阶段记录与合成截图保留原版本背景;实际交付范围及上线准入以交付包《1.0交付说明》和《1.0发布验证记录.json》为准。
2026-11-01,候选源码 0.5.2-dev。新增 query_v1 受控查询模板,覆盖筛选、多维分组和多指标统计;不接收 SQL 文本、脚本或任意算法。原有 count、sum、group_count 继续兼容。
本轮是单企业连接器侧的明文统计增强。不是多方联合 SQL、PSI、MPC 或 TEE。原8090及20261031客户交付包未更新;使用本功能需要配套平台、门户、连接器和可选 worker 的候选版本。开发与定向验证分别记录,不将标准35项整体改为已验收。
现在可以完成什么业务查询
例如:筛选 ready 状态且发生时间早于2026年2月1日的订单,按区域和季度分组,同时计算金额合计、平均金额及客户标识去重数。一次任务可输出多项指标,每组还会输出匹配条数。
| 能力 | 范围 |
|---|---|
| 条件筛选 | 文本、有限数值及带时区 RFC3339 时间;支持等于、不等于、范围比较和列表匹配 |
| 条件组合 | 最多8个,全部同时满足;文本不支持大小排序,不提供 OR 或任意表达式 |
| 时间范围 | 使用含时区时间值;例如大于等于起点、小于终点,不自动提取月份或季度 |
| 分组 | 最多3个已有字段;没有分组时输出一行汇总 |
| 指标 | 计数、求和、平均值、最小值、最大值、去重计数;最多4个 |
| 授权 | 筛选字段、分组字段及指标字段均须在产品和合约授权范围内 |
| 输出 | 最多1000行且服从合约更小的上限;JSON结果最多480 KiB |
去重按字段原始文本值判断,空文本也是一个值;不自动去除空白、识别真实客户或企业。数值使用有限 float64 和补偿求和,不提供精确财务十进制保证;非数值、无效时间、NaN、无穷大及溢出会拒绝任务。数据准备仍需明确单位、记录含义与质量规则。
使用方拟定合约
- 在数据目录选择提供方产品,点击「申请使用」。
- 在「计算配置方式」选择「受控查询模板」。
- 确认授权字段,选择最多3个分组维度。
- 添加所需统计指标,选择字段并填写互不重复的结果列名称。
- 添加筛选条件,选择字段、值类型、比较方式和固定值。列表每行一个,最多20个;时间必须带时区。
- 查看模板摘要,核对使用次数、有效期、最小分组和结果行数后创建待签合约。
合约内固定整个查询模板,而不是只授权一个 query_v1 操作名。任一筛选值、分组、指标或别名变化均须修订并重新签署,不允许在任务提交时改变条件。
提供方核对与双方签署
在合约详情核对授权字段、全部筛选值、分组、统计指标和结果列名称。筛选可能缩小记录范围,最小分组是否适合该业务需要双方确认。完整签署文档包含模板,模板随合约版本进入摘要与双方签名。
当前最小分组约束是按匹配记录数判断,不是按不同企业或不同客户数判断,也不等于差分隐私。特别敏感的字段和允许输出的最小/最大值仍需按业务授权审查。
执行与交付
- 使用方打开已生效合约,点击「提交计算」。模板为只读,不提供可临时修改的筛选参数。
- 任务沿用现有幂等标识、额度预占、租约、取消和终止规则。
- 支持 aggregate.query.v1 的连接器执行;旧连接器不会领取新查询任务。若只有旧连接器,任务会等待,管理员应更新配套连接器,或由使用方取消任务释放额度。
- 无匹配记录或任一分组低于阈值时整批失败,不返回已经计算出的其他分组。超过分组行数或资源预算同样拒绝,不截断交付。
- 执行完成后,使用方仍不能直接读取结果;提供方审核通过后,使用方才可查看或按合约导出。
结果中的 __rows 在门户显示为「匹配条数」。受控查询的 inputCount 与 matchedCount 均表示匹配后的记录数,不披露被筛选排除的记录总数;完整源文件字节仍纳入输入 SHA-256。计数、去重和其他指标都按筛选后的组计算。
数据来源与配套部署
支持原有企业白名单 CSV 和内容寻址的数据集快照。dataset:摘要 引用将源内容与签约产品版本固定绑定;普通白名单文件由执行时读取的内容摘要与回执绑定,不代表文件内容已在签约时固定。建议对需要重复复核的协作使用固定数据集版本。
执行器最多读取64 MiB、100万行;既有快照采集流程另有10万行上限,不能把执行上限当成采集容量。去重计数在一次查询的全部组及指标间共用50000个不同值的内存预算。
可选隔离执行沿用企业配置的独立 worker 和资源限制。新查询使用独立请求版本,旧 worker 会拒绝;必须同步更新 worker 并重新固定其二进制摘要。协议与真实本地子进程测试不代替物理 Linux cgroup、生产规模或任意代码沙箱验收。
通过现有任务 API 调用
此功能已接入现有合约和异步任务 HTTP API,不新增绕过审核的同步结果接口:
- POST /api/contracts:policy.operations 仅含 query_v1,policy.queryTemplate 携带完整模板。
- POST /api/contracts/{id}/jobs:提交 operation=query_v1 和与已签合约完全一致的 plan,并提供既有 Idempotency-Key;登录、CSRF及权限要求不变。
- 后续沿用任务读取、提供方结果审核和获准导出流程。
模板示例:
{
"version": "datanous-controlled-query-v1",
"filters": [
{"field":"status","type":"text","operator":"eq","value":"ready"},
{"field":"created","type":"timestamp","operator":"lt","value":"2026-02-01T00:00:00Z"}
],
"groupBy": ["region","quarter"],
"measures": [
{"operation":"sum","field":"amount","alias":"金额合计"},
{"operation":"avg","field":"amount","alias":"平均金额"},
{"operation":"count_distinct","field":"customer","alias":"客户去重数"}
]
}
后续首期已补充独立API服务定义、应用凭据与受理计量,使用固定合约口径和异步审核交付,见API数据服务与应用接入操作说明。同步计算管理、动态参数和独立机器身份仍未实现;这与此前仅有异步任务HTTP入口的阶段分开记录。
验证与后续范围
定向检查覆盖实际查询结果、时间时区、筛选和分组授权、模板替换拒绝、输入/去重预算、子进程协议、新旧能力协商、结果结构、签名回执、审核交付、终止拒绝与旧合约签名兼容。测试使用独立数据库,不操作8090数据。
本地定向竞态回归28个顶层及36个子测试通过,前端模板解析2项检查通过,根模块全部包编译、相关包静态检查与私有构建通过。初轮平台测试夹具误用方法名已修正;更新配置声明后构建门禁要求重生成清单,已按提示执行。初次门户夹具误指向私有源码目录,改为私有 dist 后继续检查,均未修改线上目录。
隔离门户另已实跑多维草稿配置、已签模板提交、真实连接器HTTP协商与计算、提供方审核以及使用方获准读取;初轮产生2个完成任务。390像素手机复核发现的结果表格撑宽已修复,宽表在内部滚动,并保留旧单指标表格的适配方式。
平台只校验结果结构、计数一致性及签名/摘要绑定,不能独立重算企业源数据;签名不证明源数据真实或执行环境未被替换,真实远程证明仍需对应环境。
完整客户部署、真实业务口径、大规模性能、物理资源隔离及后续 API 数据产品范围仍需分别验证。源码完成状态为 implemented_pending_verification,不改变已有标准验收结论。
各角色操作截图(隔离合成数据)
使用方先配置查询模板;提供方核对字段、筛选和披露阈值后签署。下图展示已创建草稿的模板摘要。

提供方在计算任务中检查聚合结果,再决定是否准许交付;未准许前使用方看不到结果行。

获准后,使用方可查看并导出聚合结果。示例按区域和季度分组,同时计算金额合计、平均金额与客户原始值去重数。

手机端可配置模板;多列结果在表格内部横向滚动,页面本身不横向撑宽。本轮390像素复核通过,仍需客户设备场景验证。


开发与定向检查汇总见同目录《受控查询模板首期开发记录.json》。截图均来自一次性隔离空间,不是8090或客户业务数据。