注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

批量变换数据与变换表

概述

变换表是一个用于对对象或从对象派生的表格数据进行批量分析的容器。变换表允许用户基于输入对象(包括时间序列)的属性派生列,并为对象数据提供合并和分组功能。

由于这些操作的计算强度,变换表最多允许50,000行

示例变换表

变换表允许您:

  • 合并和聚合 对象;
  • 从对象属性派生新列
  • 通过创建或编辑值来丰富数据
  • 批量对时间序列列进行变换;以及
  • 以多种方式绘制操作的输出

添加变换

变换表搜索窗口,可通过变换表中的添加变换按钮访问,显示了按变换操作类型分组的所有可用变换,例如编辑列、筛选、时间序列操作或空值/出错处理。尽管大多数变换会添加各自类型的新列,但有些会更改表的形状(例如,当合并其他对象类型或将表分组为类别以聚合行时)。

变换表搜索窗口

变换表变换也可以直接从下一步操作菜单中通过选择变换类别和一个变换进行添加。此操作将添加一个变换表卡片到分析中,并将所选变换应用到表上。

变换类别搜索窗口

变换也可以应用于单个支持的输入,而不是在变换表中批量操作。

要将变换卡片添加到分析中,只需使用位于顶部菜单栏中的搜索窗口搜索即可。

变换表输入

变换表可以接受五类输入:对象集、分类图表、时间序列图表、时间序列绘图和表格(数据透视表或其他变换表)。

了解时间序列图表与时间序列绘图之间的差异。

要将变换表添加到您的分析中,请在顶部表格菜单中选择变换表。这将打开编辑器面板,您可以在其中选择现有的符合您分析要求的输入。

变换表编辑器面板

输入:对象集

对象集是变换表中最常见的输入。

您可以通过在下一步操作菜单中选择转换 > 变换表,从您的分析中的任何对象集中创建一个变换表。

从对象集的下一步操作中添加变换表

请注意,每个变换表限制为50,000行(无论是起始还是合并生成的),因此您只能创建少于50,000个对象的变换表。

当从对象集中创建变换表时,它将为集中每个对象设置一行,一个代表每个对象唯一ID的主键列,以及每个对象的重要属性的列(如在Ontology中定义的),或者如果没有重要属性,则为对象上的第一个属性(最多20个)。

通过单击表右下角的属性按钮,添加或删除属性列以及任何链接的传感器对象到对象集中。拖动列以重新排序表中的列。

您可以为变换表的每个变换步骤设置不同的列配置。了解更多关于格式化变换表的信息,请参阅下面的部分。

变换表:添加新列

输入:分类图表

柱状图、折线图和散点图都可以作为变换表的输入。使用这些输入将显示图表上的类别和值,而不会提取底层数据。要提取底层数据,您应使用创建图表时使用的对象集。您可以通过选择图表,单击下一步操作菜单,然后选择表格 > 变换表,从分类图表创建变换表。

输入:时间序列绘图

时间序列绘图可以作为表的输入,将时间序列数据转换为可操作、可编辑或可丰富的表格格式。

要从时间序列绘图创建变换表,请从图表中选择一个特定的时间序列绘图。然后,在时间序列图表底部的下一步操作菜单中选择表格 > 变换表

从时间序列创建变换表

然后,从变换编辑器面板中可用的范围选项中选择:

  • 使用输入时间序列的完整时间范围(默认)。
  • 指定要导入的时间范围,可以通过手动输入起始和结束时间戳或引用范围参数完成。

由于性能原因,变换表限制为50,000行;变换表将数据拉入前端以进行操作,而不是将数据推送到后端服务。因此,时间序列数据可能需要采样(分桶)以适应。

您可以在数据选项中选择如何将时间序列数据转换为表格格式:

  • 在“采样”设置中,表格将显示每个桶的边界时间戳和值(最早和最新,最小和最大),平均值和点计数。您可以调整采样桶的数量。
  • 在“未采样”设置中,表格将显示原始未采样数据(“tick数据”)并有三列:主键、时间戳和数值。
从时间序列绘图创建变换表

时间戳系列数据默认显示为UTC。可以在变换表编辑器的列设置中将时间戳时区更改为用户的时区或其他静态时区。

变换表列时区设置

输入:时间序列图表

时间序列图表可以作为表的输入,将图表中的每个时间序列绘图打开为表中的一行。

要从时间序列图表创建变换表,请选择时间序列图表(而不是特定的时间序列绘图)。然后,在时间序列图表底部的下一步操作菜单中选择表格 > 来自图表时间序列的表格

从时间序列图表创建变换表

输入:表格

透视数据可以作为变换表的输入,使您能够使用公式对数据透视表列进行操作。与图表一样,从数据透视表创建变换表不会引入其输入数据,而是引入透视数据本身。 变换表还可以作为变换表的输入。这在您希望将变换逻辑拆分为“块”逻辑步骤,或分离数据变换和数据格式化的情况下非常有用。 您可以通过在表卡底部的下一步操作菜单中选择表格来从另一个表格创建变换表。 透视数据可以作为表的输入,使您能够使用公式对数据透视表的列进行操作。与图表一样,从数据透视表创建变换表不会引入其输入数据,而是引入透视数据本身。您可以通过选择表格,单击下一步操作菜单,然后选择表格 > 变换表来从数据透视表创建变换表。

变换表输出

变换表有四个主要类别的输出:时间序列、图表、表格和值。 变换表输出可以通过表底部的下一步操作菜单添加。

变换表:输出界面

输出:时间序列

有几种方法可以从变换表输出时间序列数据:

  • 当鼠标悬停在时间序列表格单元格上时,将出现一个“弹出”按钮。点击它可以在新的时间序列图表中绘制时间序列。
变换表:弹出单元格
  • 通过在表底部的下一步操作菜单中选择时间序列 > 分组时间序列绘图,在单个时间序列图表上绘制时间序列列。选择表中的输入列和页面大小以配置要叠加的时间序列数量。
变换表:下一步操作分组时间序列绘图 变换表:分组时间序列绘图
  • 将表格格式(时间戳和数值)的时间序列数据转换为时间序列绘图,以使用Quiver中可用的整个时间序列可视化和变换范围。在表底部的下一步操作菜单中选择时间序列 > 表格时间序列。从变换表中选择时间戳(日期/时间)和数值(数字)列,并可选择设置单位。请注意,如果表格数据每个时间戳包含多个值点,则仅绘制该时间戳的第一个点。
变换表:表格时间序列下一步操作 变换表:表格时间序列配置

输出:图表

您可以从变换表数据创建折线图、分类散点图、柱状图或Vega图。这些图表可以在Quiver中用于任何以图表为输入的功能,例如分类公式图或叠加图。

输出:表格

您可以从现有的变换表开始一个新变换表,以提供一个可以与基础数据分开格式化和组织的视图。

输出:值

您可以汇总变换表的列,并将这些列输出为指标卡上的数字或数组。这些指标可以在Quiver中用于任何以数字或数组为输入的功能。

计算新列

要添加计算列,选择添加变换,然后选择对应于您要创建的数据类型的选项卡:数字、日期/时间、字符串、布尔值、数组或时间序列。

添加新列的动画

有关可用于创建列的完整变换列表,请参阅变换表变换索引

合并

合并到链接对象

当变换表的输入为对象集时,您可以使用Ontology将链接的对象合并到表中。此变换称为合并到链接对象,可在变换菜单的表格选项卡中找到。

合并到链接对象

当您将对象集合并到其他链接对象时,系统会提示您选择链接类型,这就是起始对象和传入对象之间的连接。生成的表将有一个新的合并主键;这是您起始集主键和传入集主键的组合。新的合并主键将在每个现有行上添加传入对象的属性,从而增加列数。

选择链接类型

如果您的起始对象仅连接到一个传入对象(即,“一对一”或“多对一”链接类型),则行数不会增加。如果每个起始对象有多个传入对象(换句话说,“一对多”链接类型),则表中的行数将增加。

在下面的示例中,我们从一个公司对象集开始一个变换表。最初此表有505行(每个对象1行)。然后我们添加一个合并到链接对象变换,以添加链接的股票事件对象。现在,表有11,149行,主键是两个对象主键的组合,并且添加了股票事件对象的列。

合并到链接对象的示例动画

合并

合并变换可以在变换菜单的表格选项卡中找到。类似于SQL合并操作,它允许您在指定匹配条件的同时合并两个变换表(在下图中由绿色框标示)。

要执行合并:

  1. 选择要合并的表。
  2. 设置合并类型(左、内或全)。
  3. 配置匹配条件:匹配样式(所有、任意)以及来自输入表和合并表的一对或多对列用于比较。
  4. 选择要保留的输入表的列。
  5. 选择要添加到输入表的合并表的列。如果输入表已包含与要添加的列同名的列,则将添加合并列的前缀

合并变换表

交叉合并

交叉合并变换允许您通过执行笛卡尔积 ↗合并两个变换表。交叉合并会为第一个表的每一行与第二个表的每一行的组合生成一行。它不会基于特定列进行合并。

分组

分组是指在某个预定义窗口或桶上聚合一组值的操作。在变换表中有两种方式可以做到这一点:

分组依据

分组依据中,您为分组依据列中的每个属性创建一个类别。对于每个类别,所有关联的基于时间、数字和时间序列的列都会成为值的数组(也称为组)。可以对这些数组(组)执行数组变换和聚合。

例如,下面的变换表显示了一组具有不同海拔值的全球气象站。我们可以通过它们所在的国家对这些站点进行分组,以创建每个国家的海拔值数组。

分组依据示例

如果我们想对这些海拔值进行聚合,例如计算每个国家的平均海拔,我们可以使用数字组聚合变换,它将添加一列到表中,返回我们选择的输入列(这里是elevation_array)的平均值。

数字组聚合

合并分组依据

合并分组依据在您想要计算某个窗口化和聚合的量(例如上面每个类别的平均屋顶高度)时很有用,但希望在表中保持相同的行数(每个建筑物一行)同时为聚合指标添加新列。

执行合并分组依据变换将为不属于分组依据类别的对象的每个属性添加一个值的数组列(在下图中由绿色框标示)。然后,您需要添加一个聚合变换以对这些数组计算值(在下图中由红色框标示)。

合并分组依据

时间序列

变换表旨在启用时间序列的批量分析。这意味着诸如筛选、导数或累积聚合等变换现在可以同时应用于多个时间序列。

有关包含的各个时间序列变换的更多信息,请参阅变换表变换索引

根据待变换数据的类别,有三种方法可以将时间序列列添加到变换表中;这些方法是:

从时间序列对象集显示时间序列折线图(火花线)

默认情况下(出于性能原因),除非您明确添加,否则不会显示时间序列数据的火花线。如果您创建的变换表包括时间序列或传感器对象,您可以通过添加时间序列对象变换并选择时间序列对象的主键来包含它们。

从根对象添加传感器对象

Ontology中标记为根对象并与其连接的时间序列对象,可以仅通过添加链接传感器列来显示其链接的序列。要执行此操作,请选择链接时间序列传感器并选择父对象的主键。

从一组时间戳和数值创建时间序列

变换表允许将一组日期或时间转换为时间序列,就像可以在变换表外将对象的柱状图或折线图转换为时间序列一样。要执行此操作,首先选择分组依据以创建日期组和数字值组。然后,选择组到时间序列,并选择日期/时间组作为日期组属性,数字/值组作为数字组属性

例如,下面的变换表显示了一组股票股息事件和不同的股息值。如果我们想使用这些股息值创建时间序列,可以执行以下操作:

  1. 首先,将这些事件按它们对应的股票代码进行分组,以创建每个事件的股息值数组和每个事件发生日期的数组。
  2. 然后,使用组到时间序列变换,向表中添加一列,显示使用数字组属性(在这种情况下为amount_array)绘制在日期组属性(start_ts_array)上的时间序列图。

组到时间序列

格式化变换表

变换表的列可以通过自定义宽度和高度进行格式化,单个值本身也可以进行格式化。所有格式化发生在变换表的显示选项卡中。

列格式化

所有列,无论是否为数字列,都包含用于静态设置列宽度和最小高度的格式选项。

列格式化 列格式化(续)

可以通过从变换菜单中添加一个重命名列变换来重命名列。

重命名列

值的条件格式化

此外,数字列具有值和条件格式选项,具有以下控件:

  1. **D3/视觉格式:**这些数字格式化选项类似于在Quiver中用于格式化指标卡或其他数字数据的选项。了解更多关于D3格式化的信息。↗
  2. **对齐:**这些选项控制数字在单元格中的放置;提供左、中央和右对齐设置。
  3. **条件着色:**这些选项允许基于阈值对值进行条件着色。阈值可以静态设置,也可以配置为提取Quiver分析中的任何其他数值。您可以选择着色文本或单元格的背景。
条件格式化选项 条件着色

常见问题

我可以使用变换表创建分组依据时间序列吗?

可以。分组依据时间序列(从柱状图创建时间序列,然后将其分割为多个时间序列的功能)可以通过变换表实现。您可以使用日期或时间组和值组的组到时间序列函数创建分组依据时间序列。

有关更多信息,请参阅变换表中的时间序列

我可以格式化变换表吗?

可以,您可以使用参数或手动输入值以根据用户定义的逻辑规则格式化表格的单元格。

有关更多信息,请参阅格式化变换表的文档

变换表的规模限制是什么?

由于性能原因,变换表限制为50,000行,因为变换表将数据拉入前端进行操作,而不是将数据推送到后端服务。

我可以绘制变换表中的值吗?

可以。变换表有四个输出:时间序列、表格、图表和值(指标卡)。 有关更多信息,请参阅变换表输出的文档

对象集是变换表的唯一允许输入吗?

不是。虽然在变换表中使用对象很常见,但您也可以使用变换表来操作时间序列数据、图表数据或表格,如数据透视表或其他变换表。 请注意,当处理图表数据或数据透视表时,行将失去与底层对象的连接,您将能够在汇总上进行操作,但无法链接回底层数据。这为在数据透视表上执行列操作以及在表格形式中创建和操作图形数据打开了可能性。

有关更多信息,请参阅变换表输入的文档