目录 / 文档-技术白皮书 / 16-EFT.WP.Methods.Cleaning v1.0
一句话目标:对 SRef 标准数据执行去重、实体关联与参照完整性校核,输出无重复、无孤儿、可追溯且可审计的 D_link 与 manifest.relation。
I. 范围与对象
- 处理对象
- 输入:经第3–8章处理后的数据集 D_clean.pre_link,包含键与索引字段 pk, rid, uid, sid, tid, pid, idx_k,以及业务键 k_biz、外键集合 FK = {fk_i}。
- 时间与路径:ts, tau_mono, ell;质量与不确定度:q_score, u(x);到达时口径:T_arr, delta_form。
- 目标产物
输出:D_link = D_clean.pre_link ⊕ {equiv_map, fk_repair, assoc},同时产出 report_link 与 manifest.relation(含策略、阈值、影响面)。
II. 名词与变量(记忆锚点)
- 记录与键
- 主键:pk;业务键:k_biz;候选键:K_cand = {k_1,...,k_m};外键:fk : child → parent.pk。
- 阻塞键:b(x)(构造候选对的 blocking 规则)。
- 等价与代表
- 相似度:sim(x_i, x_j) ∈ [0,1];阈值:tau_sim ∈ (0,1]。
- 等价关系:E = {x | x ≡ x*},代表元:rep(E);合并算子:merge(E, policy)。
- 等价映射:equiv_map : pk_old → pk_new = rep(E).pk。
- 关联与参照
- 关联表:assoc(A,B)(多对多桥表)主键 pk_assoc = hash_sha256( A.pk || B.pk || role )。
- 孤儿:orphan(child) = 1_{ ¬∃ parent : child.fk = parent.pk }。
III. 公设(P109-*)
- P109-01 唯一性公设
unique(pk) 必须成立;去重后 unique(k_biz) 在声明范围内成立。 - P109-02 无静默丢弃公设
任何去重与参照修复都需在 equiv_map 与 fk_repair 中显式记录;禁止无记录删除。 - P109-03 可复现与确定性公设
给定相同输入与 policy,deduplicate 与 rekey_children 的输出确定。 - P109-04 时基与路径守恒公设
合并不破坏 non_decreasing(ts)、non_decreasing(ell);到达时口径保持一致,delta_form 在合并后重新评估并不得放宽阈值。 - P109-05 量纲与单位守恒公设
合并后的度量字段满足 check_dim( y - f(x) );单位不发生隐式变化。
IV. 最小方程(S109-*)
- S109-01 候选对生成(阻塞)
pair_cand = { (i,j) | b(x_i) = b(x_j) ∧ |tau_mono_i - tau_mono_j| ≤ Delta_t } - S109-02 加权相似度
sim_w(i,j) = ( sum_f w_f * s_f(i,j) ) / ( sum_f w_f )
其中:- 字符字段:s_str = Jaccard( tokens(i), tokens(j) ) 或 s_str = 1 - Hamming / len
- 数值字段:s_num = max( 0 , 1 - |x_i - x_j| / tol_f )
- 分类字段:s_cat = 1_{x_i = x_j}
- S109-03 重复判定
dup(i,j) = ( sim_w(i,j) ≥ tau_sim ) ∧ key_compat(i,j)
key_compat 要求在 K_cand 上不冲突(如同源 sid、同角色 role)。 - S109-04 等价类与代表
使用连通分量得到 E_k;代表选择:
rep(E_k) = argmax_{x ∈ E_k} ( q_score(x) , -u(x) , recency(ts) )(词典序)。 - S109-05 字段合并策略
- 数值:merge_num = mean_w( {x_t}, w_t = 1 / u(x_t)^2 ) 或 median(稳健)。
- 文本:merge_str = longest_nonempty 或 tfidf_merge。
- 时间:ts_min = min(ts_t);ts_max = max(ts_t);发布 ts = ts_max。
- 质量:q_score' = max( q_score_t ) * penalty(conflict)。
- S109-06 外键重映射
fk_new(child) = equiv_map( fk_old(child) )(若 fk_old 被合并)。
参照断言:∀ child, ∃ parent : fk_new(child) = parent.pk. - S109-07 孤儿检测
orphan_rate = mean( 1_{ orphan(child)=true } );orphan = ( fk_new ∉ Parent.pk )。 - S109-08 桥表去重
dup_assoc = 1_{ set( A.pk , B.pk , role ) 已出现 };保留最早 tau_mono 或最高 q_score 的条目。
V. 清洗流程(M10-9 去重、关联与参照完整性)
- 载入约束与策略
从 DataSpec 读取键空间、FK 拓扑与允许的 k_biz 唯一域;设定 b(x)、Delta_t、tau_sim、merge.policy。 - 生成候选与打分
依据 b(x) 与 Delta_t 生成 pair_cand;计算 sim_w 与 dup(i,j) 标记。 - 等价类构建与代表选择
在 dup 图上求连通分量得到 {E_k};按 S109-04 选 rep(E_k);形成 equiv_map。 - 合并与字段决议
对每个 E_k 按 S109-05 合并;保持 tau_mono 单调;更新 q_score' 与不确定度传播。 - 外键重映射与孤儿处置
policy = {drop|quarantine|link_placeholder};若 link_placeholder,创建 parent_stub 并标注 m=1、q_score 降权。对所有子表应用 S109-06;计算 orphan: - 桥表与多对多去重
在 assoc(A,B) 上按 S109-08 去重并校核对称性与自环禁止规则(如需)。 - 契约校核与回退
执行 unique(pk)、unique(k_biz)、assert_fk;失败则回退至前一快照或降级策略(仅标注不发布)。 - 落盘与审计
写入 manifest.relation = {b, Delta_t, tau_sim, merge.policy, equiv_map_digest, fk_repair_stats};产出 report_link 与 signature、hash_sha256(blob)。
VI. 契约与断言
- 唯一性
unique(pk) = true;在声明域内 unique(k_biz) = true。 - 参照完整性
fk_valid = mean( 1_{ fk_new ∈ Parent.pk } ) = 1;orphan_rate = 0(或 ≤ tol_orphan 且已隔离)。 - 去重一致性
∀ pk_old ∈ equiv_map, equiv_map(pk_old) ≠ pk_old 且映射无环。 - 量纲守恒
check_dim( merged_fields ) = true。 - 时间与路径守恒
non_decreasing(ts)、non_decreasing(ell) 仍成立;delta_form 重新计算后满足 delta_form ≤ tol_Tarr。 - 审计完备
exists(manifest.relation) 且包含 equiv_map_digest 与 fk_repair_stats。
VII. 实现绑定(I10-9)
- 接口原型
- deduplicate(ds, keys, semantics) -> ds', equiv_map, report
- resolve_conflicts(ds, equiv_map, policy) -> ds''
- rekey_children(ds_child, equiv_map, fk) -> ds_child'
- assert_fk(ds_parent, ds_child, fk) -> report_fk
- drop_orphan(ds_child, fk, policy) -> ds_child', orphan_report
- dedup_assoc(assoc, rule) -> assoc'
- 前置条件
第3章完成模式绑定;第4章量纲一致;第5章时基对齐;第7–8章完成缺失显式与异常标注。 - 不变量与后置
不改变 pk 的类型与语义;equiv_map 与 fk_repair 可重放;子表 ts/ell 单调性保持。 - 失败语义
E_FK_CYCLE(外键回写导致环)、E_UNIQUE_BREACH、E_POLICY_CONFLICT、E_PLACEHOLDER_FORBIDDEN。
VIII. 交叉引用
- 模式与键空间:见第3章。
- 单位与量纲守恒:见第4章。
- 时基与到达时校核:见第5–6章。
- 缺失与异常的降权合并:见第7–8章。
- 发布闸门与契约:见第10章。
- 流式幂等与背压:见第11章。
IX. 质量度量与风控
- 指标
- dup_rate = 1 - |unique(pk_before)| / |pk_before|
- biz_dup_rate = violation_rate(k_biz)
- orphan_rate,fk_repair_share
- mapping_entropy(等价类大小分布)
- record_churn = |changed_rows| / |rows|
- P99(rekey_latency) 与 idempotency_fail_rate
- 告警护栏
- dup_rate > tol_dup → 收紧 tau_sim 或增强 b(x);
- orphan_rate > 0 → 触发 assert_fk 阶梯告警与回退;
- record_churn > tol_churn → 政策审计与人工复核。
X. 边界与特例
- 跨源同物多键
使用复合键 pk_src = hash_sha256( source || pk_native ),在汇聚层再去重映射至全局 pk。 - 迟到与重排序
late_record 触发增量去重:仅在滑窗 W_inc 内更新 equiv_map 并记录版本。 - 时态外键
若外键具有效期 [t_from, t_to),则参照断言为
fk_valid = 1_{ ∃ parent : fk=parent.pk ∧ ts ∈ [t_from,t_to) }。 - 合法重复
对声明为允许重复的 k_biz 域,仅做标注不去重:tag = legit_duplicate。
XI. 审计与面板字段
- dup_rate, biz_dup_rate, equiv_classes_{p50,p95,max}
- fk_violation_count, orphan_rate, fk_repair_share
- record_churn, rekey_latency_p99, idempotency_fail_rate
- equiv_map_digest, policy_version, signature, hash_sha256(blob)
小结
本章给出去重、关联与参照完整性的统一框架:以阻塞与相似度形成等价类,按质量与不确定度选择代表并执行可复现的合并;随后对外键进行确定性重映射与孤儿处置;最后以契约断言与面板指标保障唯一性、参照完备与可审计可回放,为第10章发布冻结提供合规输入。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/