本文档介绍了数据所有者在创建 DSPL 数据集并将这些数据集上传到 Public Data Explorer 时最常遇到的问题。
目录
常见问题
什么是 DSPL?
DSPL 是“Dataset Publishing Language”(数据集发布语言)的缩写。它是一种表示格式,适用于数据集元数据(有关数据集的信息,例如其名称和提供程序,及其包含和显示的概念)和实际的数据集数据。元数据以 XML 格式指定,而数据以 CSV 格式提供。
使用 DSPL 的主要优势有哪些?
DSPL 完全是专为实现丰富数据可视化而设计的,例如 Public Data Explorer 中的呈现效果。创建这些数据集需要有关切片、维度和指标的详细元数据,这些实体在其他数据集格式中并未得到很好的支持。
DSPL 还支持数据集导入、概念层次结构(例如“country”是“大洲”的子项)、地理编码数据以及许多其他可增强数据探索体验的独特特征。
DSPL 可以替代用于数据交换和/或分析的其他格式吗?
通常不会。如之前的回答所述,DSPL 专为交互式可视化和探索而设计。而非通用的通用数据交换或分析格式。
归根结底,我们将 DSPL 视为与其他广告格式的补充。用户应该能够从其他来源创建 DSPL 数据集,以便创建丰富的交互式数据可视化内容。
如何使用 DSPL 数据集?
您可以将这些数据导入到公共数据浏览器中并发布这些数据,以及允许其他人通过丰富的交互式可视化图表来探索数据。已发布的数据集还可以包含在公共数据目录中,以便感兴趣的用户可以找到它们。
目前,这是唯一使用 DSPL 的应用。不过,我们建议人们将其用于其他应用,并且预计采用率将随着时间的推移而增长。
哪些类型的数据集最适合 DSPL?
DSPL 格式支持任意表集合,因此适用于多种数据集类型。但是,只有一部分 DSPL 数据集会在 Public Data Explorer 中生成有趣的可视化效果。特别是后一种产品,最适合以下数据:
- 定量:每个数据点都有一个或多个与之关联的数字指标(例如,“人口”、“流感病例数”、“收入”)。
- 分类:数据可以整理为有限数量的文本可描述类别(例如,“国家/地区”、“性别”、“年龄段”)。
- 时间序列:对于每个类别,数据指标会随着时间的推移而变化,并且相邻的点之间至少相隔一天(公开数据浏览器无法直观呈现小于一天的时间增量)。
- 汇总:对于每个时间 / 类别 / 指标组合,都只有一个数据点,而不是事件或事实列表。
我创建了一个 DSPL 数据集,并希望它显示在 Google Public Data Directory 中,以便其他人可以找到它。应该与谁联系?
请填写 此表单,并提供指向您的数据集的链接。
我在使用 DSPL 时遇到了问题。我可以从哪里获取帮助?
请将您的问题发布到 DSPL 论坛上。
DSPL 数据集文件
应如何对 XML 和 CSV 文件进行编码?
所有 XML 和 CSV 文件都需要采用 UTF-8 编码。请注意,ASCII(有时称为“纯文本”)是 UTF-8 的子集,因此采用该格式的数据集也应该运行正常。
我应使用什么软件来创建和修改数据集文件?
若要修改 XML 文件,建议使用具备语法突出显示功能以提高可读性功能的纯文本编辑器;如需了解一些针对具体平台的建议,请参阅这篇文章。我们建议您不要使用功能齐全的通用文字处理器,因为它们往往会在 XML 中插入额外的格式标记,从而导致导入错误。
电子表格通常是创建和修改数据文件的最简单方法。只需确保以正确的格式(CSV/逗号分隔值)保存它们即可。
我有 Excel、SPSS、SAS 或其他系统中的数据。我可以将这些文件直接导入到 Public Data Explorer 中吗?
不,目前还不行。您需要先将数据导出为 CSV 格式,添加相应的 XML 元数据,然后将符合 DSPL 标准的数据集上传到公开数据资源管理器中。
文件的名称有影响吗?
数据集 XML 文件的名称应以 .xml
结尾。关联的 CSV 数据文件可以具有任何名称,只要它们与 XML 元数据的 <file>
标记中指定的名称一致即可。用于打包数据集并将其导入公共数据资源管理器的 ZIP 文件也可以有任何名称。
我应该对 CSV 文件进行排序吗?
是。您应该按非时间维度(按任意顺序或方向)对 CSV 文件的内容进行排序,然后视需要按任何其他列(例如时间)进行排序。
因此,例如,如果您的 CSV 文件包含列 date
、dimension1
、dimension2
、metric1
和 metric2
,则应按 dimension1
和 dimension2
(按任意顺序)排序。如果您还想按日期/时间列排序,则排序应是最后排序。
以这种方式排序可将每个时间序列的观察结果归为一组,从而大幅提高 DSPL 导入过程的效率。
XML 模型和语法
如何确定指标和维度分别应该是什么?
维度是用于细分或过滤数据的实体。另一方面,指标描述与每个数据点关联的一个或多个观察值。
通常,维度是分类的,而指标是不分类且随时间变化的数值。上述两种方法的典型示例如下:
- 维度:国家/地区、州/省/自治区/直辖市、郡/县、区域、年份、月份、性别、年龄段、行业细分
- 指标:人口、GDP、失业率、识字率、收入、成本、价格
属性和属性之间有什么区别?
属性会附加到概念的每个实例。例如,洲属性对于不同的国家/地区将具有不同的值。另一方面,属性与整个概念相关联。例如:对于所有大洲,isParent
属性均为 true。
标记的顺序重要吗?
是。按照代码在开发者指南中的显示顺序添加代码。例如,在概念定义中,<topic>
应出现在 <type>
之前。
大写有影响吗?
是的,XML 标记和属性名称的大小写形式需要与开发者指南中显示的方式相同。例如,在 property
标记中使用 isparent
(而非 isParent
)会导致导入错误。
一个概念可以有两个父级吗?
不可以。每个概念只能有一个 isParent
引用。
概念是否可以指代自身?
是。如需查看自引用概念层次结构的示例,请参阅美国零售销售数据集。
数据格式设置
如何设置日期格式?
日期可以采用
Joda DateTime 标准可描述的任何格式编写。Joda 格式设置代码应存储在相应表格列元素内的 format
属性中。
下面列出了一些热门日期格式的 Joda 格式设置代码:
日期示例 | Joda 格式 |
---|---|
2010 | yyyy |
2010 年 5 月 | MMM yyyy |
2010/05/21 | MM/dd/yyyy |
2010-21-05 | dd/MM/yyyy |
2010-05-21 | yyyy-MM-dd |
尤其要注意,月份字符的 Joda 代码是 M
,而不是 m
(表示分钟)。
我可以使用小于一天的时间单位吗?
Joda DateTime 格式以及 DSPL 支持精确到毫秒的时间值。不过,Public Data Explorer(目前)还无法直观呈现小于一天的任何时间粒度。
使用规范概念
什么是“规范概念”?它们有何作用?
术语“规范概念”是指 Google 创建的一组概念,这些概念在其他数据集中用作基本“构建块”。这些概念本身在六个 DSPL 数据集中定义,这些数据集将前一个数据集划分为“时间”“地理位置”等类别。要访问这些概念,只需在 DSPL XML 文件的开头导入相应的父数据集即可。
规范概念非常有用,因为它们有助于节省时间(例如,让您不必为世界上的每个国家/地区手动输入纬度和经度值),而且还可以指示数据的可视化方式。例如,公共数据资源管理器使用 time:...
概念来设置折线图 x 轴的格式,使用 entity:entity
概念的 name
属性为维度选择器界面生成字符串,使用 geo:location
的 latitude
和 longitude
属性在地图可视化图表中显示数据,等等。
Public Data Explorer 理解所有规范概念吗?
虽然 Public Data Explorer 可以理解所提供的大多数规范概念,但也有些概念(尚未)可直观呈现。下面列出了这些问题以及一些建议的解决方法:
概念 | 临时解决方法 |
---|---|
quantity:index |
请改用 quantity:ratio 或 quantity:magnitude 。 |
time:quarter |
按照 DSPL 实战宝典中的说明使用 time:month 。 |
time:week |
按照 DSPL 实战宝典中的说明使用 time:day 。 |
我们将来为这些概念提供更好的支持,敬请期待。
如何在数据集中使用规范概念?
如需了解您要使用的具体概念,请参阅相关文档;另外,您还可以查看 DSPL 实战宝典,其中提供了对最常见概念的详细分步说明。
导入并直观呈现数据集
为什么我无法成功导入数据集?
Public Data Explorer 的上传界面将扫描您的 DSPL 数据集,并在检测到任何错误时阻止其导入。导入程序对 XML 文件中的拼写、大小写和标记顺序 / 位置以及 CSV 文件中数据的布局和排序非常敏感,因此可能需要几次才能正确完成这些内容并成功导入数据集。
解决这些问题的第一步是查看界面中提供的错误消息并采取适当的纠正措施。 由于这些消息并不总是最容易理解(我们正努力改进这一点),因此我们编译了一个表格,对最常见的消息进行了说明:
错误 | 解释 |
---|---|
重复键:... | 概念的定义表中含有重复的 ID 值(即列中与概念名称相同的值)。这些值用于唯一标识概念的各个实例,因此不允许出现重复项。 |
从来源解析数据行时出现的异常,原因是属性 [...] 组合出现在数据中的多个不同的行中。 | 您的 CSV 未正确排序。如需了解如何执行此操作,请参阅上文的讨论。 |
由无效格式导致的从源中解析数据行时出现异常:“...”在“...”处格式不正确 | CSV 中此值(通常为日期)的格式与 XML 文件中指定的格式不一致。请更改格式或值,使其匹配。 |
因行 (...) 中的元素数 (...) 与行 [...] 的指定属性数 (...) 不匹配,从源解析数据行时出现异常 | CSV 文件中某一行的值过多或过少。请修正此行的格式。 |
从源中解析数据行时,由以下输入字符串引起异常:“...” | CSV 文件中的某个值(通常为整数或浮点数)包含非数字字符(例如,美元符号、百分号等),导致该值无法得到正确解析。请移除这些多余的字符。 |
从切片“...”的属性“...”的数据值“...”中,解析来源中的数据行时出现异常,该异常不是所引用的概念“...”的键值。 | 您的其中一个切片包含无法识别的维度值(即某个不在相应概念的所有可能值列表中的项)。请返回到维度概念定义表,并视需要添加相应的值。 |
数据中的标题“...”是表中的常量属性 | CSV 中的列标题与 XML 表定义中定义的列 ID 不匹配。请更改其中一项,使其保持一致。 |
XML 解析错误...发现以元素“...”开头的无效内容。应为“{...}”、“{...}”或“...”中的一个。 | 引用的 XML 元素的位置不正确。请检查以确保顺序正确,且该元素具有正确的父项(例如,info (针对 name )。 |
XML 解析错误...元素“...”中不允许出现属性“...”。 | 此 XML 标记属性的拼写、大小写或位置不正确。如需了解适当的用法,请参阅相关文档。 |
XML 解析错误。...元素“...”不能包含字符 [children],因为该类型的内容类型仅包含元素。 | 您的 XML 文件中存在一些离散文本(可能是由标记缺少 < 或 > 引起的)。请修正这些文本,然后重试。 |
如果您无法理解上方列表中未列出的消息,请在 DSPL 论坛中发帖,我们将尽力为您提供帮助。
我的数据集已成功导入,但无法在 Public Data Explorer 中显示任何可视化图表。 这是怎么回事?
如果您的数据集是有效的 DSPL,但未包含在可在 Public Data Explorer 中可视化的 DSPL 子集中,就会出现此问题。导致此问题的原因可能有很多,最常见的包括:
- 在没有表格的情况下定义维度概念:如果没有这些信息,公开数据浏览器就无法确定要在界面中显示哪些选项。
- 创建仅包含指标的数据集:公共数据浏览器需要至少一个在数据集内某个位置定义的分类(即非时间)维度,才能正确构建可视化界面的结构。
- 未在切片中包含时间维度:公开数据浏览器只能直观呈现时间序列。产品会忽略非时间片。
- 使用规范的
time:...
时间维度以外的时间维度:公开数据浏览器使用规范的time
概念来布局产品中的各种可视化效果并为其添加动画效果;它不理解其他时间概念,例如在您自己的数据集内创建的概念。 - 使用过大或过小的时间值:Public Data Explorer 尚未直观呈现时间粒度小于一天的数据集。另一方面,该工具无法处理非常大的年份值(例如,数万个)。我们希望将来能使这些粒度更加灵活。
如何将可视化数据集集成到我的网站中?
请参阅公开数据浏览器帮助中心的这篇文章。如下文所述,您可以通过手动调整嵌入网址来获取“完整嵌入”(即包含探索控件的嵌入)。