什么是数据质量检查?规则、指标和示例

什么是数据质量检查?

Scrapeless Web Unlocker 获取 Web 内容,使您的应用程序可以在将提取的记录接受到数据集中之前对其进行检查和验证。

什么是数据质量检查?

数据质量检查是对数据是否满足其预期用途要求所进行的显式测试。该要求可能涉及某个字段、记录之间的关系,或整个数据集的覆盖情况。检查会生成证据:运行了哪条规则、评估了哪个输入、观察到了什么,以及结果是否满足接受条件。

对于一个被抓取的目录,字段检查可能需要产品标识符。关系检查可能要求每条观测都引用一个已知产品。数据集检查可能要求每个已批准的类别都有记录在案的采集结果。通过第一个检查对另外两个检查没有任何说明。质量是一组与用途相关的决策,而不是一个单一的通用分数。

摘要

  • 质量检查需要具名的需求。 没有归属或缺乏后果的规则很难执行。
  • 有效性并不能证明准确性。 一个数值价格可以在形式上完全正确,却仍然描述了错误的商品。
  • You didn’t include the English text to translate. Please provide the content, and I’ll translate it to Chinese while preserving the existing Markdown/HTML structure and any placeholder tokens. 已完全填充的行无法显示从未收集过的页面。
  • 失败的记录需要明确的处置。 在不悄然改变其含义的前提下,将其隔离、排除或进行调查。

你可以测试哪些质量维度?

质量维度描述了数据无法满足其用途的不同方式。完整性关注所需信息是否存在。有效性关注某个值是否遵循约定的结构或规则。一致性关注相关表示之间是否相互一致。唯一性关注预期的键是否按预期出现。时效性关注数据是否在有用的时间范围内可用。准确性关注该值是否与其声称要描述的对象相对应。

这些维度是有重叠的,但并不能互相替代。错误地址的完整列表并不准确。当前观测结果中可能包含无效的货币代码。唯一的产品键可能指向无关的图片。为这个维度命名,以便回答的人知道该检查能提供什么证据。

The 数据质量词汇 区分质量维度与衡量该维度的度量。就操作层面而言,完整性是关注点;在一个定义好的批次中,所需标识符的存在比例则是一项度量。阈值以及业务响应依然由数据集所有者来决定。

维度目录检查限制
完整性所需的产品密钥已存在无法证明已访问所有源页面
有效性金额和货币符合合同规定无法确认已选择所宣传的优惠
独特性没有重复的 observation 键取决于所选的观测粒度
及时性已接收的数据符合其新鲜度截止时间最近的集合可能包含旧的源内容
准确性所选记录与原始证据一致一个样本只支持其声明的范围

如何将需求转化为检查?

一个有用的检查会明确其适用范围、计算方法、接受条件和后果。先从一个简单的需求开始,例如:每一条被接受的价格观测都必须标明其产品和货币。接着定义哪些行符合条件、缺失值如何表示,以及哪些字段构成观测的键。

范围控制着分母。如果某个字段仅对正在出售的商品是必填项,那么已下架的商品不应自动计为失败。反过来,若将所有困难的行都从分母中移除,可能会让该指标看起来健康,却降低数据集的实用性。请将适用范围规则与结果一同呈现。

阈值需要理由。对必需的主键字段的要求,可能足以证明拒绝任何受影响的记录是合理的。对于可选图片覆盖率中较小的变化,则可能只需要进行调查,而不是停止整个加载过程。将严格的合同违规定义与异常信号区分开,并记录清楚谁有权批准例外情况。

结果应标识规则版本和输入边界。当阈值发生变化时,历史结果应保持可解释性。否则,表面上的改进可能反映的是更宽松的规则,而不是更好的数据。

在抓取工作流中,检查应当运行在什么位置?

在可能出现错误解读扩散之前放置检查点。在收集阶段,验证目标页面或响应是否存在。在抽取阶段,验证候选记录是否包含预期的标识符和内容。在归一化阶段,验证类型、单位和枚举值。在交付前,验证键、关系以及批次覆盖范围。

无爬取网页解锁器 支持页面访问阶段;它不会取代你的业务验收规则。它 网页内容收集功能 帮助检索要检查的材料。您的应用程序仍然必须区分目录与同意屏幕、源记录与导航卡片,以及缺失值与解析器失败。

对于文本数据集, 为检索管线清洗网页文本 说明了为什么成功检索页面只是一个开始。菜单和访问提示都是有效文本。但当它们被当作目标文章来处理时,就会变成糟糕的训练或检索材料。

示例性的质量审查是什么样子的?

质量评估将观察到的失败与具体的消费者风险联系起来。以一个示例性的价格比较数据集为例,而不是实际测量的服务结果。每条记录都包含商品来源标识、金额、货币、可用性以及观测情境。消费者在同一市场中比较同一商品的不同报价。

第一个审查会询问身份在多次采集运行中是否保持稳定。下一个则检查金额是否为数值且货币是否明确。一个跨字段规则会将高于常规金额的销售金额标记出来进行检查,如果这与约定的来源解释相矛盾。覆盖检查会将批准的类别与记录的遍历结果进行核对。

假设某个类别没有产生任何记录。将其视为未解决的结果,直到证据能区分该类别确实为空、响应被阻止或选择器已更改。不要仅仅因为抽取器返回了空列表就填入一个看似正常的零。零计数是关于来源的断言;抽取失败则是关于工作流程的断言。

最后,在允许保留的情况下,将选定记录与已保留的证据进行比对。自动化约束可以检测不可能出现的形态,但它们无法单独判断该金额属于主产品、推荐商品,还是分期付款。将在解析器契约中记录这种解释性的区分。

架构检查与业务检查有何不同?

模式检查评估允许的结构和类型,而业务检查评估在用例中的含义。一条记录可能满足模式要求的字符串产品键和数值金额,却将来自不同产品的字段组合在一起。该记录通过结构验证但未通过业务解释。

键和关系约束提供了另一层。 表格式数据模型的验证规则 描述诸如主键重复和未解析的外键引用之类的错误。当提取的行被组装成关联表时,这些规则非常有价值,但它们依赖于选择正确的粒度和参考数据。

对于图数据集, SHACL 形状验证 可以对节点及其属性表达约束。符合规范的图满足被测试的形状;符合性并不能证明每个陈述都是真实的。同样的界限也适用于表格验证器和 API 模式。

应如何处理和报告故障?

失败的检查应导致一项能够保护目标消费者的记录决策。当其余记录仍然有效且消费者可以接受部分覆盖时,应隔离受影响的记录。当缺失的覆盖会使比较产生误导时,应冻结整个分区。保留失败原因,以防下游系统将排除误解为源数据缺失。

隔离存储需要独立的控制措施。被拒绝的内容可能包含不必要的个人信息,或是从输入中意外捕获的机密。只保留调查所需的内容,限制访问权限,并制定删除策略。质量诊断不应演变成对每个源响应的不受限制的完整拷贝。

报告应显示已评估记录、受影响记录、规则标识、来源范围和处理结果。没有分母的百分比会隐藏规模。没有覆盖范围说明的绿色仪表板会隐藏缺失的输入。保持已接受、已排除、未解决和不可用结果的区分。

随着时间推移,应按来源和规则跟踪变化,而不是仅依赖整体平均值。整体汇总在某一类别增长时,可能会掩盖另一个类别中的问题。在增加收集量之前,先指定负责人并制定审查路径。

如何让检查套件保持有用?

当检查套件的规则符合真实的使用方需求且其信号保持可解释时,它才是有用的。移除多余的警报;当源行为发生变化时修订假设;并使用经过认可且最小化的示例,将有意义的失败保留为回归用例。对规则本身及其处置路径都进行测试。

收集成本只是运营全貌的一部分。 无抓取定价 有助于估算访问成本,而审核时间和被拒输出会影响每条被接受记录的成本。严格的接受规则使这种比较成为可能,因为分母代表的是有用的数据。

结论

从会改变消费者决策的错误开始。将每个错误表达为有范围的规则,收集证据,并在加载运行之前确定失败意味着什么。当新的失效模式证明有必要新增检查时,扩展测试套件。

将集合层付诸实践

选择与您的来源相匹配的 Scrapeless 集合功能,然后应用上述验证和操作决策。

立即注册即可获得 5 美元的免费额度 — 无需信用卡.

领取您的 $5 额度 →

常见问题解答

模式验证能保证数据准确吗?

否。模式验证只确认已测试的结构性要求。准确性还取决于选择正确的源值,并将它们匹配到正确的现实世界实体。

每一次检查失败都应该停止流水线吗?

不一定。后果取决于消费者风险和规则范围。破坏身份契约可能足以证明扣留货物是合理的,而可选字段的异常则可能只足以证明进行审核。

空数据集算是质量问题吗?

一个空数据集需要针对其来源给出专门的解释。它可能代表一个确实为空的来源、被排除的范围或采集问题;这些结果在记录时应该处于不同的状态。

profiling 和 checking 有什么区别?

Profiling 描述观测到的特征,而 checking 则根据某项需求来评估这些特征。Profile 可以揭示意外的空值率,而 check 则决定该空值率是否可接受。

参考文献