DSPL 检查

DSPL 检查是一款根据多种标准验证 DSPL 数据集的实用程序,其中包括遵守官方 DSPL 架构、内部参考一致性以及 CSV 文件结构。该实用程序可以捕获许多导致 DSPL 导入错误的问题,从而帮助您在开始输入过程之前快速检测并解决这些问题。

请注意,该实用程序目前(尚未)检查您的 DSPL 数据集是否存在所有可能的问题。不过,它可以捕获最常见的问题,因此,如果该工具成功验证您的数据集,就很有可能在公共数据资源管理器中导入和直观呈现您的数据集。如需了解详情,请参阅下面的检查详情部分。

运行 DSPL 检查

基础知识

注意:以下说明假定您已按照 DSPL 工具页面提供的安装说明操作。

如需运行 DSPL 检查,请进入系统上的终端 / 提示符并输入以下内容:

python dsplcheck.py [path to dataset XML or zip file]

用括号括起来的术语替换为数据集 XML 文件或压缩 DSPL 捆绑包的相对路径。

如果数据集有效,该工具将输出“验证成功”的消息。否则,它会输出一条或多条错误消息,说明验证失败的原因。如果发生了这种情况,请按照说明修复数据集,然后再次运行该工具。

检查等级

默认情况下,DSPL 检查会检查整个数据集,包括从主 DSPL XML 文件引用的 CSV。此过程适用于中小型数据集,但在非常大(即数百兆字节或更大)的数据集上可能会卡顿或耗尽内存。

为了解决这些情况,该工具具有检查级别选项,可让您根据需要设置检查范围并提升性能。如需使用数据集数据集,请在数据集路径前插入 --checking_level=[...],此时用英文括号括起来的术语将被替换为下列值之一:

  • schema_only:根据官方 DSPL 架构验证数据集 XML 文件,然后停止。
  • schema_and_model:执行架构和基本模型验证,但忽略标题行后面的 CSV 内容。
  • full:执行架构、模型和数据验证(默认)。

检查详情

DSPL Check 会按以下顺序进行验证:

  • XML 架构验证:验证数据集元数据文件是否是有效的 XML,并且是否符合官方 DSPL 架构
  • CSV 存在:检查数据集中引用的所有 CSV 文件是否存在,以及是否可加载。
  • 概念检查:对数据集中每个概念进行各种检查,包括:
    • 数据集至少有一个概念*
    • 所有主题引用均有效
    • 如果将概念用作非时间维度,则会存在表引用*
    • 表引用有效(如果存在)
    • 引用的表包含与概念 ID 对应的列
  • 切片检查:对数据集中的每个切片进行各种检查,包括:
    • 数据集包含至少一个切片*
    • 至少有一个切片引用了非时间维度*
    • Slice 至少有一个指标和一个维度
    • 只有一个维度引用了 time 规范概念*
    • 每个切片都有唯一的维度组合
    • 对本地概念的所有引用均有效
    • 表引用已存在
    • 表引用有效
    • “引用”表中的列中的每个维度和指标都有一列
    • 引用表中的列类型与切片中使用的概念类型匹配
  • 表检查:对数据集中的每个表进行各种检查,包括:
    • 数据集至少有一个表*
    • CSV 文件中的列数与表格的列数相同
    • CSV 标题字符串与列 ID 匹配
    • 所有日期列都有 format 属性
    • 日期格式与大致的时间概念大致一致,例如,time:year 列的格式应至少包含一个 y 字符*
  • CSV 数据检查:对数据集 XML 文件引用的 CSV 数据文件进行各种检查,包括:
    • 每个 CSV 行的列数都与标题相同
    • 在概念定义 CSV 中,每个概念 ID 不超过一行
    • Slice CSV 的每个维度组合最多只能有一行
    • CSV 切片中引用的维度值有效
    • Slice CSV 已正确排序
    • 整数和浮点 CSV 值的格式正确

以 * 标记的条件对于在公共数据资源管理器中直观呈现是必需条件,但从技术上来讲,DSPL 格式不需要这些条件。

另一方面,该工具不会查看以下内容:

  • 数据集导入
  • 属性和属性引用
  • 概念扩展