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 格式不需要这些条件。
另一方面,该工具不会查看以下内容:
- 数据集导入
- 属性和属性引用
- 概念扩展