受控查询模板与业务统计

候选功能:条件筛选、多维分组和多指标聚合,模板进入双方合约签名,执行后仍需审核交付。

接入与资产 3859 字 ·约 10 分钟读完 ·更新于 2026-11-01

发行说明:本功能纳入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、无穷大及溢出会拒绝任务。数据准备仍需明确单位、记录含义与质量规则。

使用方拟定合约

  1. 在数据目录选择提供方产品,点击「申请使用」。
  2. 在「计算配置方式」选择「受控查询模板」。
  3. 确认授权字段,选择最多3个分组维度。
  4. 添加所需统计指标,选择字段并填写互不重复的结果列名称。
  5. 添加筛选条件,选择字段、值类型、比较方式和固定值。列表每行一个,最多20个;时间必须带时区。
  6. 查看模板摘要,核对使用次数、有效期、最小分组和结果行数后创建待签合约。

合约内固定整个查询模板,而不是只授权一个 query_v1 操作名。任一筛选值、分组、指标或别名变化均须修订并重新签署,不允许在任务提交时改变条件。

提供方核对与双方签署

在合约详情核对授权字段、全部筛选值、分组、统计指标和结果列名称。筛选可能缩小记录范围,最小分组是否适合该业务需要双方确认。完整签署文档包含模板,模板随合约版本进入摘要与双方签名。

当前最小分组约束是按匹配记录数判断,不是按不同企业或不同客户数判断,也不等于差分隐私。特别敏感的字段和允许输出的最小/最大值仍需按业务授权审查。

执行与交付

  1. 使用方打开已生效合约,点击「提交计算」。模板为只读,不提供可临时修改的筛选参数。
  2. 任务沿用现有幂等标识、额度预占、租约、取消和终止规则。
  3. 支持 aggregate.query.v1 的连接器执行;旧连接器不会领取新查询任务。若只有旧连接器,任务会等待,管理员应更新配套连接器,或由使用方取消任务释放额度。
  4. 无匹配记录或任一分组低于阈值时整批失败,不返回已经计算出的其他分组。超过分组行数或资源预算同样拒绝,不截断交付。
  5. 执行完成后,使用方仍不能直接读取结果;提供方审核通过后,使用方才可查看或按合约导出。

结果中的 __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或客户业务数据。

这一步卡住了?请通过首页客服微信沟通。 ← 返回文档中心