Nanosai Studio数据源
为了使Nanosai Studio分析和可视化数据,它必须从数据源获取该数据。在本文中,我们将看到Nanosai Studio可以使用什么类型的数据源,以及Nanosai Studio可以理解的数据格式。
数据源位置
Nanosai Studio当前可以通过以下位置连接到数据源:
- 在本地文件中
- URL标识的远程Web服务。
我们打算将来增加更多的数据源位置。如果我们需要Nanosai Studio不支持的数据源位置,请联系Nanosai。也许我们可以为我们提供帮助。
数据流
Nanosai Studio认为数据源提供的数据是记录,对象或者消息的流。数据流中的每个记录都必须有一个索引。 Nanosai Studio使用此索引来跟踪已分析的流数量。因此,下一次当Nanosai Studio连接到数据源时,它将仅使用提供的索引比使用的最新记录的索引高的数据。这是一个例子:
如果Nanosai Studio正在连接到本地文件,并且不时将新记录添加到该文件,则Nanosai Studio可以检测到该文件中尚未分析的部分。例如,如果读取了文件并且文件的最后一个索引为99,则Nanosai Studio将在下次读取文件时尝试从索引100开始。如果该文件具有索引从100到100或者更高的记录,则将分析这些记录,并记录该文件的最新索引,以供下次重新读取该文件时使用。
资料格式
当数据源将数据返回到Nanosai Studio时,它不需要每次都提供总流中的所有数据。数据源可能仅返回总数据流的一部分,通常是自上次与数据源的连接以来新的数据。总数据流的一部分称为流间隔。有时,流间隔也称为记录的"块","批"或者"窗口"。数据源返回的数据必须描述其返回的时间间隔的边界。
当前,Nanosai Studio仅支持一种数据格式,这就是我们所说的" CSV流"格式。 CSV流的格式如下:
0,4,0 a,0,95 a,1,100 a,2,103 a,3,115 a,4,110
CSV流的这一小间隔包括一个流信息行(第一行)和N条记录行。每个部分将在以下各节中进行描述。
流媒体信息
第一行是流信息行。这条线描述了数据源返回的记录间隔的边界。流信息行包含三个值:
- 第一个索引:CSV流中数据中第一个记录的全局索引。
- 最后一个索引:CSV流中数据中最后一个记录的全局索引。
- 索引方案。
第一个索引必须是数据源返回的时间间隔内第一个记录的全局索引。在上面的示例中,第一条记录的索引为0。如果Nanosai Studio已经使用了100条全局索引从0到99的记录,那么第一条记录的全局索引将为100。
最后索引必须是数据源返回的时间间隔中最后一条记录的全局索引。在上面的示例中,最后一个索引是4.
索引方案值可以采用三个可能的值0、1或者2. 下面将说明这些值。
索引方案值0表示"隐式索引方案"。这意味着,每个记录不包含显式索引,但是索引从第一个索引开始,并针对每个记录递增(例如0、1、2、3等)。
标引方案值1表示"相对标引方案"。这意味着,每个记录的首个值(在CSV数据的每一行上)是一个相对于数据间隔的第一个索引的索引。看这个例子:
20,24,1 0,a,0,95 1,a,1,100 2,a,2,103 3,a,3,115 4,a,4,110
请注意,每个数据记录(在第一行之后,即流信息行之后)都包含一个索引。还要注意,流信息行中的索引方案值设置为1. 这意味着,每个记录的索引都应解释为相对于流信息行中指定的第一个索引值。因此,第一条记录的索引为0表示20 + 0 =20。第二条记录的索引为1表示20 + 1 = 21,依此类推。
标引方案值2表示"绝对标引方案"。这意味着每个记录都有一个显式索引,并且该值是该记录的实际全局索引。这是一个例子:
20,24,2 20,a,0,95 21,a,1,100 22,a,2,103 23,a,3,115 24,a,4,110
数据记录
数据记录的确切含义取决于CSV流的语义。 Nanosai Studio理解以下记录语义:
[index,] data series ID, x value, y value
[index,] data series ID, value
第一个记录结构用于X,Y型图表(例如折线图)。数据系列ID指定给定记录所属的行。因此,可以通过为记录指定不同的数据系列ID值来在同一条线图中显示多条线。
第二个记录结构用于饼图。汇总每个数据系列ID的值,并将其可视化为饼图的一部分。
第二种记录结构也可以用于条形图,但是我们可能必须重新设计条形图的记录结构,因此请记住这一点。