一种时序数据流的处理方法、设备及存储介质与流程
未命名
07-23
阅读:98
评论:0
1.本技术涉及数据处理技术领域,尤其涉及一种时序数据流的处理方法、设备及存储介质。
背景技术:
2.时序数据流,又称时间序列数据,是带有时间戳的数据序列。这个序列中的单个数据也称为数据点(data point),一个数据点通常是一个(时间戳timestamp,值value)对。
3.在工业场景中,为了精细化及自动化管理,通常会部署若干传感器用于对各种设备属性进行监测,在此基础上,可利用实时计算系统对工业场景中的产生的时序数据流进行实时计算。
4.例如,在一些典型的应用场景中,可能需要对多种设备属性下分别产生的时序数据流进行联合计算,这种情况下,用户需要按照多流连接join的方式编写非常复杂的查询语句,通常需要上百行语句才能实现联合计算,导致实现门槛过高。
技术实现要素:
5.本技术的多个方面提供一种时序数据流的处理方法、设备及存储介质,用以更加便捷地实现对多条时序数据流的联合计算。
6.本技术实施例提供一种时序数据流的处理方法,包括:
7.响应于实时计算请求,获取指定的多条时序数据流;
8.根据预置的构建规则,为所述多条时序数据流构建时序宽表,所述时序宽表为关系型数据表且其中的单条数据记录用于描述多个数据点,所述多个数据点位于不同的时序数据流中;
9.按照所述实时计算请求中包含的关系型查询逻辑,在所述时序宽表上执行数据点查询操作,以生成所述实时计算请求对应的计算结果。
10.本技术实施例还提供一种宽表的处理方法,包括:
11.获取待处理宽表;
12.在所述待处理宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为所述目标数据值创建第一状态码,否则为所述目标数据值创建第二状态码;
13.在所述待处理宽表中,为所述目标数据列创建状态列,所述状态列中包含所述目标数据列下各个数据值各自对应的状态码;
14.其中,所述目标数据列为所述待处理宽表中的任意一个数据列,所述第一状态码用于表征其标识的数据值是复制出的数据值,所述第二状态码用于表征其标识的数据值不是复制出的数据值。
15.本技术实施例还提供一种计算设备,包括存储器、处理器和通信组件;
16.所述存储器用于存储一条或多条计算机指令;
17.所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机
指令,以用于执行前述的时序数据流的处理方法或前述的宽表的处理方法。
18.本技术实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的时序数据流的处理方法或前述的宽表的处理方法。
19.在本技术实施例中,可响应于实时计算请求,获取指定的多条时序数据流;根据预置的构建规则,为所述多条时序数据流构建时序宽表;按照所述实时计算请求中包含的查询逻辑,在所述时序宽表上执行数据点查询操作,以生成所述实时计算请求对应的计算结果。作为一种关系型数据表,时序宽表中的单条数据记录可用于描述多个数据点且所述多个数据点位于不同的时序数据流中。这样,在实时计算过程中,用户不再需要按照多流连接join的方式编写复杂的查询语句,而是可基于这种关系型数据表使用简单的关系型查询语句实现对多条时序数据流的联合计算。
附图说明
20.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1为本技术一示例性实施例提供的一种时序数据流的处理方法的流程示意图;
22.图2为本技术一示例性实施例提供的一种时序数据流的处理方法的逻辑示意图;
23.图3为本技术一示例性实施例提供的一种宽表配置界面的示意图;
24.图4为本技术一示例性实施例提供的一种宽表的处理方法;
25.图5为本技术另一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
26.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.目前,用户需要按照多流连接join的方式编写非常复杂的查询语句,通常需要上百行语句才能实现联合计算,导致实现门槛过高。为此,本技术的一些实施例中:可响应于实时计算请求,获取指定的多条时序数据流;根据预置的构建规则,为所述多条时序数据流构建时序宽表;按照所述实时计算请求中包含的查询逻辑,在所述时序宽表上执行数据点查询操作,以生成所述实时计算请求对应的计算结果。作为一种关系型数据表,时序宽表中的单条数据记录可用于描述多个数据点且所述多个数据点位于不同的时序数据流中。这样,在实时计算过程中,用户不再需要按照多流连接join的方式编写复杂的查询语句,而是可基于这种关系型数据表使用简单的关系型查询语句实现对多条时序数据流的联合计算。
28.以下结合附图,详细说明本技术各实施例提供的技术方案。
29.图1为本技术一示例性实施例提供的一种时序数据流的处理方法的流程示意图,图2为本技术一示例性实施例提供的一种时序数据流的处理方法的逻辑示意图。该方法可由数据处理装置执行,该数据处理装置可实现为软件、硬件或软件与硬件的结合,该数据处理装置可集成在计算设备中。参考图1,该方法可包括:
30.步骤100、响应于实时计算请求,获取指定的多条时序数据流;
31.步骤101、根据预置的构建规则,为多条时序数据流构建时序宽表,时序宽表为关系型数据表且其中的单条数据记录用于描述多个数据点,多个数据点位于不同的时序数据流中;
32.步骤102、按照实时计算请求中包含的关系型查询逻辑,在时序宽表上执行数据点查询操作,以生成实时计算请求对应的计算结果。
33.本实施例提供的时序数据流的处理方法可用于对时序数据流进行实时计算,尤其是对多条时序数据流进行联合计算。其中,本实施例提供的技术方案可应用于各种需要对时序数据流进行实时计算的场景中,例如,工业监测、日志监测或风险监测等场景,本实施例对应用场景不做限定。在不同的应用场景中,时序数据流中包含的数据点的含义不同。例如,在工业监测场景中,时序数据流中的数据点可用于表征工业设备在某个时刻的监测数据。又例如,在日志监测场景中,时序数据流中的数据点可用于表征被监测应用程序或服务在某个时刻的运行状态数据等。在此不做更多举例。
34.实际应用中,在前述工业监测场景中,工厂车间设备运行会产生大量的数据,为了减少数据上云的数据量或提高数据处理实时性,本实施例提出,可在靠近数据产生的地方进行数据分析处理。为此,本实施例提出,可在边缘节点上部署本实施例提供的时序数据流的处理方案,从而可在边缘节点上完成对时序数据流的实时计算后,再将计算结果上报至云端,这可极大降低上行数据带宽要求。其中,边缘节点是边缘云中的概念,边缘节点通常距离数据产生的地方更近,从而可更高效地获取到时序数据流。当然,本实施例中,可根据应用场景中的实际需求,为本实施例提供的技术方案确定部署位置,本实施例对部署位置不做限定。
35.参考图1,在步骤100中,可响应于实时计算请求,获取指定的多条时序数据流。其中,用户可根据自身需求而指定多条时序数据流或工厂信息系统(erp、mes、wms、mom等)数据。举例来说,在工业监测场景中,多条时序数据流可以为对工业设备进行属性监测而产生的时序数据流。例如,用户的自身需求为统计设备生产出的产品合格率,则用户可指定两条时序数据流:合格产品量数据流和不合格产品量数据流。指定的多条时序数据流将作为其实时计算的源数据。
36.在一种优选的实现方案中:可向用户展示宽表配置界面,宽表配置界面中展示用户拥有使用权限的时序数据流各自对应的操作控件;响应于用户对操作控件执行的选择操作,确定用户指定的多条时序数据流。
37.图3为本技术一示例性实施例提供的一种宽表配置界面的示意图。参考图3,在宽表配置界面中可至少包含用户操作区域,并在用户操作区域中展示用户拥有使用权限的时序数据流各自对应的操作控件,如图3所示,操作控件的用户交互ui界面可以显示时序数据流的名称并分别提供点选框,用户的选择操作可以是选中对应的点选框,从而可选中一条或多条时序数据流。当然,宽表配置界面中还可包含其它区域,例如,时序宽表展示区,查询逻辑编辑区等,本实施例对此不做限定,可根据实际需求进行宽表配置界面的ui设计。
38.这样,用户可非常方便地指定多条时序数据流,而且,还可支持用户按需灵活增减所指定的时序数据流。这种将指定权交给用户的处理机制,可在实时计算过程中使用户感受到高便捷性,高灵活性,高可控性的使用体验。
39.在此基础上,参考图1和图2,在步骤101中,可根据预置的构建规则,为多条时序数据流构建时序宽表。本实施例中,可支持各种预置的构建规则,在步骤101中,可灵活选择合适的构建规则,本实施例对构建规则中的具体规则内容不做限定,在此不做详述,示例性的规则内容将在后续实施例中进行说明。实际应用中,可向用户提供多种可选的构建规则,并可由用户按需指定所需的构建规则;也可根据应用场景,自动为确定出合适的构建规则,等。
40.时序宽表是本实施例中新提出的概念,在本实施例中,时序宽表可理解为基于时序数据流而构建出的且动态变化的宽表,时序宽表包含的单条数据记录可用于描述多个数据点。其中,由于时序数据流中的数据点是随时间不断增加的,因此,时序宽表中也将随时间而不断产生新的数据记录。
41.无论是那种构建规则,其共同的目标都是将多条时序数据流转换至同一关系型数据表中。也即是,在步骤101中生成的时序宽表为关系型数据表,且时序宽表中的单条数据记录用于描述多个数据点,多个数据点位于不同的时序数据流中。这样,从整个时序宽表来看,多条时序数据流的数据点均已按照关系型数据结构的形式包含在时序宽表中,这中关系型数据结构可为各种联合计算提供便利。
42.可知,本实施例中,可为指定的多条时序数据流构建时序宽表,从而可将多条时序数据流转换为关系型数据表,使得实时计算可在关系型数据表上进行,进而可有效提高实时计算的便捷性。
43.实际应用中,步骤101中可按指定的时间窗口执行构建时序宽表的操作。为此,可以多条时序数据流中位于该时间窗口内的数据点,作为构建时序宽表的基础,并按照预置的构建规则,将位于该时间窗口内的数据点按照关系型数据结构存储至该时间窗口对应的时序宽表中。另外,在单个时间窗口内,由于多条时序数据流中的数据点是按照增量的方式逐步产生的,因此,在该时间窗口内,也可按照增量的方式在时序宽表中逐步增加数据记录。在单个时间窗口结束后,可启动构建下一个时间窗口对应的时序宽表。这里的时间窗口可与实时计算所需的时间窗口一致,当然也可不一致,本实施例对此不做限定。
44.正如前文提及的,在步骤100中,支持用户按需灵活增减所指定的时序数据流。相应地,在步骤101中,可在指定的时序数据流发生增减的情况下,对时序宽表中的数据点进行相应的增减处理。承接前文中提供的宽表配置界面,可响应于用户在宽表配置界面中的时序数据流取消选择操作(例如,对已选中的点选框进行取消选中操作),从时序宽表中删除被取消时序数据流对应的数据点;响应于用户在宽表配置界面中的时序数据流新增操作(例如,对未选中的点选框进行选中操作),将新增的时序数据流中的数据点添加到时序宽表中。这里,在从时序宽表中删除被取消时序数据流对应的数据点的过程中,可按需在时序宽表中进行数据列的删除操作,例如,被取消时序数据流所在的数据列中仅包含时序数据流的数据点时,可删除该数据列。在将新增的时序数据流中的数据点添加到时序宽表的过程中,可按需在时序宽表汇总进行数据列的新增操作,例如,新增的时序数据流的数据点无法汇入现有的任何数据列中,则可为在时序宽表中为该时序数据流新增数据列,否则,可将时序数据流的数据点汇入已有数据列中。
45.可知,本实施例中,可在用户调整所指定的时序数据流的情况下,适应性地自动调整时序宽表的结构,从而可正确地按照关系型数据结构来描述调整后的时序数据流。这里
的调整对用户是透明的,并无需用户感知,这可大大降低用户的操作复杂性。
46.在此基础上,参考图1和图2,在步骤102中,可按照实时计算请求中包含的关系型查询逻辑,在时序宽表上执行数据点查询操作,以生成实时计算请求对应的计算结果。
47.实际应用中,在进行实时计算的过程中,步骤100中获取到的多条时序数据流可存储至执行本实施例提供的时序数据流的处理方法的计算设备的内存中,而在步骤101中构建出的时序宽表也可存储在该内存中,这样,在步骤102中,可直接从内存中访问时序宽表,从而高效地生成实时计算请求对应的计算结果。
48.正如前文提及的,时序宽表是关系型数据表,因此,用户可按照关系型查询语句来编写查询逻辑,这大大降低了用户编写查询逻辑时的门槛和复杂度。对于同一实时计算需求来说,按照多流连接join方式的编写语句的传统方案,可能需要上百行的语句;而本实施例中,基于时序宽表,用户仅需编写2-3行关系型查询语句即可,对复杂度的降低非常显著。
49.本实施例中,查询逻辑可包括但不限于四则运算逻辑、基于时间窗口的聚合运算逻辑或基于数据记录数量的聚合运算逻辑等。其中,聚合运算逻辑支持的函数种类可包括但不局限于max、min、count、avg、stat_if、stattime、statchange、delta、first_value、last_value、stat_failure_time等,且这些聚合函数还可与四则运算相结合,从而组成聚合运算逻辑,比如max(a)+max(b)、max(a)+min(b)+avg(c)等组合。四则运算逻辑则可包括加法、减法、乘法及除法等,并且对size运算逻辑中使用的数据点的数量不限制,可以支持任意数量的数据点进行联合计算。
50.另外,本实施例中,还可监测时序宽表的状态,在时序宽表发生增量的情况下,触发实时计算请求进行增量计算。实际应用中,可为步骤100中的实时计算请求创建两种任务:时序宽表构建任务和计算任务。这样,可通过对时序宽表构建任务中所构建出的时序宽表进行状态监测,识别到时序宽表发生的增量事件;将识别到的增量事件通知至计算任务,这样可通过事件触发的方式,触发计算任务进行增量计算,这样,可支持计算任务在时序宽表构建任务之后进行级联计算,也即是,计算任务可将时序宽表构建任务中产生的时序宽表作为计算分析的依据。其中,增量计算可以是指根据增量的时序宽表进行实时计算,本实施例可按需灵活设定增量计算的规则,在此不做限定。举例来说,在一个时间窗口结束后,可监测时序宽表构建任务是否接收到新的数据点,若是,则确定时序宽表发生增量,也即将继续进入下一个时间窗口,从而触发下一个时间窗口的实时计算任务。
51.可知,本实施例中,通过增加对时序宽表的变化数据捕获机制,可适配时序宽表的动态变化性,在时序宽表发生增量的情况下,及时触发增量计算,从而可有效提高实时计算的计算效率,提高实时性。
52.优选地,本实施例中,还可存储时序数据流中的历史数据点。基于此,本实施例中还提出回流查询机制:
53.响应于回流查询请求,确定多条待回流时序数据流及所需回流的历史时间段;
54.根据多条待回流时序数据流各自在历史时间段中的数据点,为多条待回流时序数据流创建用于回流查询的时序宽表;
55.按照回流查询请求中的查询逻辑,在用于回流查询的时序宽表上执行数据点查询操作,以生成回流查询请求对应的计算结果。
56.也即是,在回流查询机制下,可基于为时序数据流存储的历史数据点,并按照所需
的历史时段,重新构建起用于回流查询的时序宽表。尤其是在查询逻辑发生修改从而需要回流查询,或者因级联计算出现逻辑错误或异常而导致异常期间的数据丢失,为了进行数据找回而进行回流查询,等情况下,可对真实的历史数据点按照关系型数据表的方式进行回放,从而可实现高效且便捷地回流查询功能。其中,相关时序数据流中的历史数据点可存储在时序数据库中,本实施例对此不做限定。
57.而且,本实施例中,还可将步骤101中创建的时序宽表发送至外部数据库中进行存储,这些外部数据库可包括但不限于包括列式数据库管理系统clickhouse、关系型数据库管理系统mysql、实时数仓hologres或甲骨文数据库oracle等,也可以发送到消息队列中进行存储,这些消息队列可包括但不限于遥测传输协议队列mqtt或卡夫卡队列kafka等。经过存储后的时序宽表,可作为联机分析程序olap的依据,这可有效提高olap查询效率。
58.综上,本实施例中,可响应于实时计算请求,获取指定的多条时序数据流;根据预置的构建规则,为所述多条时序数据流构建时序宽表;按照所述实时计算请求中包含的查询逻辑,在所述时序宽表上执行数据点查询操作,以生成所述实时计算请求对应的计算结果。作为一种关系型数据表,时序宽表中的单条数据记录可用于描述多个数据点且所述多个数据点位于不同的时序数据流中。这样,在实时计算过程中,用户不再需要按照多流连接join的方式编写复杂的查询语句,而是可基于这种关系型数据表使用简单的关系型查询语句实现对多条时序数据流的联合计算。
59.在上述或下述实施例中,可支持按照各种构建规则为多条时序数据流构建时序宽表。
60.在一种可选的实现方式中,单条时序数据流关联有监测对象标识和属性标识,不同时序数据流所关联的监测对象标识和/或属性标识不同,基于此,可以多条时序数据流涉及到的属性标识作为列名称;将多条时序数据流分别置入对应的列名称下,以获得多个数据列;以监测对象标识和时间戳形成的组合信息作为对齐依据,对多条时序数据流进行数据点对齐操作,以获得多条数据记录;基于多条数据记录,生成时序宽表。
61.在该可选的实现方式中,为单条时序数据流配置了监测对象标识和属性标识两个维度的标识信息。其中,监测对象标识用于表征时序数据流所描述的监测对象,例如,在工业监测场景中,监测对象标识可以是一台工业设备的资产编码assetcode,用于唯一标识该工业设备。其中,属性标识用于表征时序数据流所描述的监测指标,例如,在工业监测场景中,属性标识可以是一台工业设备的温度、物料数量或撞针频率等。对于不同的时序数据流来说,它们各自所关联的监测对象标识和/或属性标识会存在不同。例如,同一工业设备的不同监测指标将对应不同的时序数据流,而不同工业设备的相同监测指标也将对应不同的时序数据流。
62.基于此,在该实现方式中,可将多条时序数据流所涉及到的属性标识作为列名称。这里存在一种特殊的情况下:不同时序数据流的属性标识可能相同。为了应对这种特殊情况,实际应用中,可对多条时序数据流所涉及到的属性标识进行去重,将保留下来的属性标识作为列名称。在此基础上,可将多条时序数据流分别置入对应的列名称下,从而获得多个数据列。应当理解的是,具有相同属性标识的不同时序数据流会被置于同一列名称下,从而汇合在同一数据列中。至此,可从列的角度完成对时序数据流的排列。
63.在该实现方式中,还可以监测对象标识和时间戳形成的组合信息作为对齐依据,
对多条时序数据流进行数据点对齐操作,以获得多条数据记录。这里,从行的角度对各条书序数据流中的数据点进行了排列。其中,对齐操作是指将对应有相同监测对象标识和时间戳的数据点放在同一数据行中。值得说明的是,这里从监测对象标识和时间戳两个维度进行了数据点的分行,可保证将不同监测对象对应的数据点分散在不同数据行中,并将不同时间戳的数据点分散在不同数据行中。实际应用中,这种对齐方式可更好地支持各种联合计算逻辑。
64.举例来说,用于描述设备el_c1的合格产品数量的时序数据流为【(2022-12-13 16:32:01,10)
…
】,用于描述设备el_c2的合格产品数量的时序数据流为【(2022-12-13 16:32:02,20)
…
】,用于描述设备el_c1的不合格产品数量的时序数据流为【(2022-12-13 16:32:01,5)
…
】,用于描述设备el_c2的合格产品数量的时序数据流为【(2022-12-13 16:32:02,3)
…
】,则根据上述实现方式所构建出的时序宽表为,表1:
[0065][0066]
发明人在研究过程中发现,不同时序数据流并不一定是像上一示例性中那样按照相同的采用频率生成数据点,这导致,在进行数据点对齐操作时,可能出现某些数据记录在某些列名称下存在数据值缺失。
[0067]
为此,在一种优选方案中,可根据多条数据记录,生成待处理宽表;若待处理宽表包含的目标数据记录在目标列名称下的数据值缺失,则根据目标列名称对应的属性标识和目标数据记录对应的监测对象标识,确定待查询时序数据流;将待查询时序数据流中位于目标数据记录对应的目标时间戳之前且距离目标时间戳最近的目标数据点的数据值,复制至目标数据记录中的目标列名称下;根据补齐数据值后的各条数据记录,生成时序宽表。
[0068]
举例来说,若上述的示例中用于描述设备el_c1的不合格产品数量的时序数据流为【(2022-12-13 16:32:08,5)
…
】,用于描述设备el_c2的合格产品数量的时序数据流为【(2022-12-13 16:32:09,3)
…
】,则生成的待处理时序宽表为,表2:
[0069][0070]
可以发现,待处理时序宽表中存在部分数据值缺失。按照上述优先方案,对于上述
缺失的数据值x,可根据监测对象标识el_c1和属性标识egoodcount,确定出待查询时序数据流为前述的【(2022-12-13 16:32:01,10)
…
】,因此,可在该时序数据流中查询到在时间戳2022-12-13 16:32:08之前且距离该时间戳最近的目标数据点为(2022-12-13 16:32:01,10),从而可将目标数据点中的数据值10复制到x处。同理,可确定出其它数据缺失位置上的数据值。则补齐数据值后,生成的时序宽表将为,表3:
[0071][0072]
其中,对于无在前时间戳的情况下,可直接在相应的数据值缺失位置上补充数据值0。
[0073]
通过上例可知,经过上述优先方案中进行的数据值补齐机制后,可保证时序宽表中的每条数据记录中不再存在数据值缺失问题,从而可保证每条数据记录均可完整描述时序宽表中包含的各个列名称对应的数据点。这样,构建出的时序宽表更利于从数据记录的维度进行多数据点的聚合计算。
[0074]
基于此,若查询逻辑指示查询时序宽表中的一条或多条数据记录,则可基于被查询数据记录所描述的多个数据点进行联合计算。由于被查询数据记录中包含完整的数据点,因此,通过被查询数据记录即可完成联合计算,而无需因数据值缺失而再查询时序宽表中的其它数据记录,可有效提高多数据点联合计算的效率,降低复杂度。
[0075]
值得说明的是,上述实现方式及实现方式中提供的优先方案等均是示例性的,本实施例中还可采用其它实现方式来实现构建时序宽表,也即是,预置的构建规则并不限于此。例如,在不区分监测对象进行多条时序数据流的联合计算场景中,可提供一种适配该场景的构建规则,在该种构建规则中可不再关注监测对象标识,而仅关注不同时序数据流关联的属性标识,相应地,在仅需数据点对齐操作时,可仅以属性标识作为对齐依据。当然,在另一些构建规则中,还可增加更多的关注维度,按照更细粒度的对齐依据进行数据点对齐操作等,在此不做穷举。
[0076]
可知,本实施例中,为多条时序数据流构建的时序宽表中,可能存在复制出的数据值。对此,在一种改进方案中,还提出:在时序宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为目标数据值创建第一状态码,否则为目标数据值创建第二状态码;在时序宽表中,为目标数据列创建状态列,状态列中包含目标数据列下各个数据值各自对应的状态码;其中,目标数据列为时序宽表中的任意一个数据列,第一状态码用于表征其标识的数据值是复制出的数据值,第二状态码用于表征其标识的数据值不是复制出的数据值。
[0077]
根据前述示例中的表3可以发现,在“合格产品数量egoodcount”这一数据列中,对数据点(2022-12-13 16:32:01,10)和数据点【(2022-12-13 16:32:02,20)进行了重复描
述,这种重复描述是由于前述对缺失数据值进行的补齐操作而产生的。这种重复描述导致在进行数据列层面的聚合计算时可能出现错误。在该进一步的优化方案中,创新性地提出了为时序宽表增加状态列的技术构思,通过状态列可准确描述各数据列中的各数据值是否是复制出的。这种描述可为数据列层面的聚合计算提供指导,从而避免计算错误。
[0078]
可选地,前述的第一状态码可取1,第二状态码可取0,基于此,增加状态列后的时序宽表将为,表4:
[0079][0080]
值得说明的是,本实施例中,对时序宽表中各个数据列之间的排布顺序不做限定,对除了与属性标识相对于的数据列之外的其它数据列可支持灵活增删,例如,表4中的监测对象标识对应的数据列中可放置在单独的数据表中,而在时序宽表中使用该单独的数据表中为相关监测对象标识配置的编码,例如,1、2等。
[0081]
基于此,若查询逻辑指示查询时序宽表中的一个或多个数据列,则根据被查询数据列对应的状态列,对被查询数据列进行数据点过滤;在过滤后的被查询数据列上执行数据点查询操作。参考表4,可在查询逻辑中指定只保留数据列中对应有第一状态码的数据值,而将对应有第二状态码的数据值过滤掉,进而可在过滤后的数据列上执行数据点查询操作。
[0082]
一条示例性的查询语句可以是:
[0083]
sum(case when c_egoodcount=1
ꢀꢀꢀꢀꢀꢀꢀ‑‑‑‑‑‑
当状态码为1时
[0084]
then egoodcount
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ‑‑‑‑‑‑
保留数据值
[0085]
else 0end)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ‑‑‑‑‑‑
当状态码为0时,过滤
[0086]
+sum(case when c_ebadcount=1
[0087]
then ebadcount
[0088]
else 0end)
[0089]
上述示例性的查询语句用于对表4中的两个数据列分别进行求和计算后,在对两个和值进行求和。可以理解的是,上述示例性的查询语句中,通过对状态码的限定,实现了对两个数据列的过滤,从而可获得正确的求和结果。
[0090]
据此,本实施例中,可分别从列的维度和从行的维度,对多条时序数据流中的数据
点进行排列,从而可将多条时序时间流按照关系型数据结构承载在时序宽表中,为联合计算提供便捷的查询基础。而且,还可在时序宽表中增加状态列,用于描述各数据列中各数据值是否为复制出的,从而可便于在对数据列进行聚合计算时快速且准确地进行数据过滤,保证聚合计算的准确性。
[0091]
图4为本技术一示例性实施例提供的一种宽表的处理方法。参考图4,该方法可包括:
[0092]
步骤400、获取待处理宽表;
[0093]
步骤401、在待处理宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为目标数据值创建第一状态码,否则为目标数据值创建第二状态码;
[0094]
步骤402、在待处理宽表中,为目标数据列创建状态列,状态列中包含目标数据列下各个数据值各自对应的状态码;
[0095]
其中,目标数据列为待处理宽表中的任意一个数据列,第一状态码用于表征其标识的数据值是复制出的数据值,第二状态码用于表征其标识的数据值不是复制出的数据值。
[0096]
其中,本实施例中的待处理宽表可以是前述实施例中为多条时序数据流构建的时序宽表,也可以是数据库中静态的宽表,数据库中静态的宽表同样可能存在对同一数据点进行重复记录的问题。
[0097]
在一可选实施例中,若查询逻辑指示查询时序宽表中的一个或多个数据列,则根据被查询数据列对应的状态列,对被查询数据列进行数据点过滤;在过滤后的被查询数据列上执行数据点查询操作。
[0098]
值得说明的是,上述关于宽表的处理方法各实施例中的技术细节,可参考前述的时序数据流的处理方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
[0099]
需要说明的是,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的状态码等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0100]
图5为本技术另一示例性实施例提供的一种计算设备的结构示意图。如图5所示,该计算设备包括:存储器50和处理器51。
[0101]
基于图5提供的计算设备,在一些可能的设计方案中,处理器51,与存储器50耦合,用于执行存储器50中的计算机程序,以用于:
[0102]
响应于实时计算请求,获取指定的多条时序数据流;
[0103]
根据预置的构建规则,为多条时序数据流构建时序宽表,时序宽表为关系型数据表且其中的单条数据记录用于描述多个数据点,多个数据点位于不同的时序数据流中;
[0104]
按照实时计算请求中包含的查询逻辑,在时序宽表上执行数据点查询操作,以生成实时计算请求对应的计算结果。
[0105]
在一可选实施例中,单条时序数据流关联有监测对象标识和属性标识,不同时序
数据流所关联的监测对象标识和/或属性标识不同,处理器51在为多条时序数据流构建时序宽表时,具体可用于:
[0106]
以多条时序数据流涉及到的属性标识作为列名称;
[0107]
将多条时序数据流分别置入对应的列名称下,以获得多个数据列;
[0108]
以监测对象标识和时间戳形成的组合信息作为对齐依据,对多条时序数据流进行数据点对齐操作,以获得多条数据记录;
[0109]
基于多条数据记录,生成时序宽表。
[0110]
在一可选实施例中,处理器51在基于多条数据记录,生成时序宽表时,具体可用于:
[0111]
根据多条数据记录,生成待处理宽表;
[0112]
若待处理宽表包含的目标数据记录在目标列名称下的数据值缺失,则根据目标列名称对应的属性标识和目标数据记录对应的监测对象标识,确定待查询时序数据流;
[0113]
将待查询时序数据流中位于目标数据记录对应的目标时间戳之前且距离目标时间戳最近的目标数据点的数据值,复制至目标数据记录中的目标列名称下;
[0114]
根据补齐数据值后的各条数据记录,生成时序宽表。
[0115]
在一可选实施例中,处理器51还可用于:
[0116]
在时序宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为目标数据值创建第一状态码,否则为目标数据值创建第二状态码;
[0117]
在时序宽表中,为目标数据列创建状态列,状态列中包含目标数据列下各个数据值各自对应的状态码;
[0118]
其中,目标数据列为时序宽表中的任意一个数据列,第一状态码用于表征其标识的数据值是复制出的数据值,第二状态码用于表征其标识的数据值不是复制出的数据值。
[0119]
在一可选实施例中,处理器51在按照实时计算请求中包含的查询逻辑,在时序宽表上执行数据点查询操作时,具体可用于:
[0120]
若查询逻辑指示查询时序宽表中的一个或多个数据列,则根据被查询数据列对应的状态列,对被查询数据列进行数据点过滤;
[0121]
在过滤后的被查询数据列上执行数据点查询操作。
[0122]
在一可选实施例中,处理器51在按照实时计算请求中包含的查询逻辑,在时序宽表上执行数据点查询操作时,具体可用于:
[0123]
若查询逻辑指示查询时序宽表中的一条或多条数据记录,则基于被查询数据记录所描述的多个数据点进行联合计算。
[0124]
在一可选实施例中,处理器51在响应于实时计算请求,获取指定的多条时序数据流时,具体可用于:
[0125]
向用户展示宽表配置界面,宽表配置界面中展示用户拥有使用权限的时序数据流各自对应的操作控件;
[0126]
响应于用户对操作控件执行的选择操作,确定用户指定的多条时序数据流。
[0127]
在一可选实施例中,处理器51还可用于:
[0128]
响应于用户在宽表配置界面中的时序数据流取消选择操作,从时序宽表中删除被取消时序数据流对应的数据点;
[0129]
响应于用户在宽表配置界面中的时序数据流新增操作,将新增的时序数据流中的数据点添加到时序宽表中。
[0130]
在一可选实施例中,处理器51还可用于:
[0131]
在时序宽表发生增量的情况下,触发实时计算请求进行增量计算。
[0132]
在一可选实施例中,处理器51还可用于:
[0133]
响应于回流查询请求,确定多条待回流时序数据流及所需回流的历史时间段;
[0134]
根据多条待回流时序数据流各自在历史时间段中的数据点,为多条待回流时序数据流创建用于回流查询的时序宽表;
[0135]
按照回流查询请求中的查询逻辑,在用于回流查询的时序宽表上执行数据点查询操作,以生成回流查询请求对应的计算结果。
[0136]
在一可选实施例中,多条时序数据流为对工业设备进行属性监测而产生的时序数据流;查询逻辑包括四则运算逻辑、基于时间窗口的聚合运算逻辑或基于数据记录数量的聚合运算逻辑中的一种或多种。
[0137]
基于图5提供的计算设备,在另一些可能的设计方案中,处理器51,与存储器50耦合,用于执行存储器50中的计算机程序,以用于:
[0138]
获取待处理宽表;
[0139]
在待处理宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为目标数据值创建第一状态码,否则为目标数据值创建第二状态码;
[0140]
在待处理宽表中,为目标数据列创建状态列,状态列中包含目标数据列下各个数据值各自对应的状态码;
[0141]
其中,目标数据列为待处理宽表中的任意一个数据列,第一状态码用于表征其标识的数据值是复制出的数据值,第二状态码用于表征其标识的数据值不是复制出的数据值。
[0142]
进一步,如图5所示,该计算设备还包括:通信组件52、电源组件53等其它组件。图5中仅示意性给出部分组件,并不意味着计算设备只包括图5所示组件。
[0143]
值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的系统实施例中关于第二类应用端的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
[0144]
相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中的各步骤。
[0145]
上述图5中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0146]
上述图5中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信
道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0147]
上述图5中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
[0148]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0149]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0150]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0151]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0152]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0153]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0154]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0155]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0156]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0157]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种时序数据流的处理方法,包括:响应于实时计算请求,获取指定的多条时序数据流;根据预置的构建规则,为所述多条时序数据流构建时序宽表,所述时序宽表为关系型数据表且其中的单条数据记录用于描述多个数据点,所述多个数据点位于不同的时序数据流中;按照所述实时计算请求中包含的关系型查询逻辑,在所述时序宽表上执行数据点查询操作,以生成所述实时计算请求对应的计算结果。2.根据权利要求1所述的方法,单条时序数据流关联有监测对象标识和属性标识,不同时序数据流所关联的监测对象标识和/或属性标识不同,为所述多条时序数据流构建时序宽表,包括:以所述多条时序数据流涉及到的属性标识作为列名称;将所述多条时序数据流分别置入对应的列名称下,以获得多个数据列;以监测对象标识和时间戳形成的组合信息作为对齐依据,对所述多条时序数据流进行数据点对齐操作,以获得多条数据记录;基于所述多条数据记录,生成所述时序宽表。3.根据权利要求2所述的方法,基于所述多条数据记录,生成所述时序宽表,包括:根据所述多条数据记录,生成待处理宽表;若所述待处理宽表包含的目标数据记录在目标列名称下的数据值缺失,则根据所述目标列名称对应的属性标识和所述目标数据记录对应的监测对象标识,确定待查询时序数据流;将所述待查询时序数据流中位于所述目标数据记录对应的目标时间戳之前且距离所述目标时间戳最近的目标数据点的数据值,复制至所述目标数据记录中的目标列名称下;根据补齐数据值后的各条数据记录,生成所述时序宽表。4.根据权利要求1或3所述的方法,还包括:在所述时序宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为所述目标数据值创建第一状态码,否则为所述目标数据值创建第二状态码;在所述时序宽表中,为所述目标数据列创建状态列,所述状态列中包含所述目标数据列下各个数据值各自对应的状态码;其中,所述目标数据列为所述时序宽表中的任意一个数据列,所述第一状态码用于表征其标识的数据值是复制出的数据值,所述第二状态码用于表征其标识的数据值不是复制出的数据值。5.根据权利要求4所述的方法,按照所述实时计算请求中包含的查询逻辑,在所述时序宽表上执行数据点查询操作,包括:若所述查询逻辑指示查询所述时序宽表中的一个或多个数据列,则根据被查询数据列对应的状态列,对所述被查询数据列进行数据点过滤;在过滤后的被查询数据列上执行所述数据点查询操作。6.根据权利要求1-5任一项所述的方法,按照所述实时计算请求中包含的查询逻辑,在所述时序宽表上执行数据点查询操作,包括:若所述查询逻辑指示查询所述时序宽表中的一条或多条数据记录,则基于被查询数据
记录所描述的多个数据点进行联合计算。7.根据权利要求1所述的方法,响应于实时计算请求,获取指定的多条时序数据流,包括:向用户展示宽表配置界面,所述宽表配置界面中展示所述用户拥有使用权限的时序数据流各自对应的操作控件;响应于所述用户对操作控件执行的选择操作,确定所述用户指定的多条时序数据流。8.根据权利要求7所述的方法,还包括:响应于所述用户在所述宽表配置界面中的时序数据流取消选择操作,从所述时序宽表中删除被取消时序数据流对应的数据点;响应于所述用户在所述宽表配置界面中的时序数据流新增操作,将新增的时序数据流中的数据点添加到所述时序宽表中。9.根据权利要求1所述的方法,还包括:在所述时序宽表发生增量的情况下,触发所述实时计算请求进行增量计算。10.根据权利要求1所述的方法,还包括:响应于回流查询请求,确定多条待回流时序数据流及所需回流的历史时间段;根据所述多条待回流时序数据流各自在所述历史时间段中的数据点,为所述多条待回流时序数据流创建用于回流查询的时序宽表;按照所述回流查询请求中的查询逻辑,在所述用于回流查询的时序宽表上执行数据点查询操作,以生成所述回流查询请求对应的计算结果。11.根据权利要求1所述的方法,所述多条时序数据流为对工业设备进行属性监测而产生的时序数据流;所述查询逻辑包括四则运算逻辑、基于时间窗口的聚合运算逻辑或基于数据记录数量的聚合运算逻辑中的一种或多种。12.一种宽表的处理方法,包括:获取待处理宽表;在所述待处理宽表中,若确定目标数据列下的目标数据值为复制出的数据值,则为所述目标数据值创建第一状态码,否则为所述目标数据值创建第二状态码;在所述待处理宽表中,为所述目标数据列创建状态列,所述状态列中包含所述目标数据列下各个数据值各自对应的状态码;其中,所述目标数据列为所述待处理宽表中的任意一个数据列,所述第一状态码用于表征其标识的数据值是复制出的数据值,所述第二状态码用于表征其标识的数据值不是复制出的数据值。13.一种计算设备,包括存储器、处理器和通信组件;所述存储器用于存储一条或多条计算机指令;所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于执行权利要求1-11任一项所述的时序数据流的处理方法或权利要求12所述的宽表的处理方法。14.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-11任一项所述的时序数据流的处理方法或权利要求12所述的宽表的处理方法。
技术总结
本申请实施例提供一种时序数据流的处理方法、设备及存储介质。可响应于实时计算请求,获取指定的多条时序数据流;根据预置的构建规则,为所述多条时序数据流构建时序宽表;按照所述实时计算请求中包含的查询逻辑,在所述时序宽表上执行数据点查询操作,以生成所述实时计算请求对应的计算结果。作为一种关系型数据表,时序宽表中的单条数据记录可用于描述多个数据点且所述多个数据点位于不同的时序数据流中。这样,在实时计算过程中,用户不再需要按照多流连接JOIN的方式编写复杂的查询语句,而是可基于这种关系型数据表使用简单的关系型查询语句实现对多条时序数据流的联合计算。查询语句实现对多条时序数据流的联合计算。查询语句实现对多条时序数据流的联合计算。
技术研发人员:尹晓磊 陈新新
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.03.29
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
