技术领域
[0001] 本发明涉及数字孪生技术领域,特别涉及一种孪生数据融合平台。
相关背景技术
[0002] 物联网、大数据、数字孪生等现代信息化技术的快速发展,能够帮助管理更加精细化、全面化和智能化,推动管理的发展。在这些信息化技术之中,数字孪生技术可以有效提高运维管理的信息化和智能化水平。数字孪生体是物理对象的一个数字化模型,它需要实时接受来自物理对象的数据,从而不断演化以保持与物理对象的一致。如,建筑数字孪生体记录了建筑在全生命周期各个活动中产生的信息(人的虚拟意识)和建成信息(建筑的物理实体)。但是,在运维数据从采集到映射至数字孪生体的过程中,仍旧面临着许多困难,如数据离散、存储分散,各个子系统的独立建设,使得子系统间难以进行数据通信和联动,甚至子系统间处于不同的网段,物理网络上都无法联通。同时,各运维子系统的独立性,使得子系统采集信息的方式、上传信息的协议各有不同。每个子系统的数据对接都需要定制化开发,工作量过大。项目周期长,数据采集、存储量极大,导致数据查询时效性差。数字孪生模型信息无法与运维数据连接,模型信息的缺乏使得运维数据映射到数字孪生体中的物理实体变得困难。
[0003] 在数据融合领域,在进行物理对象数据建模时,使用TSL语言描述抽象出的物理对象,牺牲普通用户的可用性以获取更精准的物理对象描述;在数字孪生模型信息的存储上,需要用户在可视化操作界面上逐个定义设备和它的层级关系,这与信息建模中所包含的设备层级关系信息重合,重复的建设浪费了人力、物力,数据接入时,在面对私有数据时,均要求该数据源转换为MQTT协议发布消息到指定服务中,这为各种协议的数据接入带来了大量的开发工作。导致数据融合方法缺少对于数字孪生模型信息的连接,在面对异构数据时需要对数据源开发代码处理,数据融合与数据可视化不够连贯。
具体实施方式
[0027] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028] 如图1所示,本发明提供了一种孪生数据融合平台,包括中央处理器、孪生数据采集模块、孪生数据融合子系统、显示模块,所述中央处理器分别连接所述孪生数据采集模块、孪生数据融合子系统、显示模块;
[0029] 所述孪生数据采集模块用于采集各个子系统的孪生数据,所述孪生数据采集模块包括各个子系统的数据采集方式和通信协议;
[0030] 所述孪生数据融合子系统包括流式计算引擎和联机分析处理OLAP引擎。
[0031] 所述流式计算引擎采用Kappa架构,用于对不同协议的数据源进行转换、对数据源中的数据结构进行转换、进行维度连接、保障有状态计算的一致性、利用窗口机制进行数据聚合,常见的流式计算引擎框架包括Storm、Spark、Streaming、Flink等,本发明选择Flink作为流式计算引擎的开发框架,流式计算引擎的上层为FlinkController,用于管理集群的计算资源,如进行任务调度、设置检查点、故障恢复、执行任务线程等,包括了Flink中的JobManager和TaskManager进程,所述流式计算引擎中的任务包括数据源层、数据转换层、数据沉淀层、数据维度层,即一个完整的数据接入流程;所述数据源层用于按照指定的协议接收其他系统的数据,并将接收的数据沉淀到Kafka服务中;所述数据转换层用于将数据连接到数据维度、利用窗口机制聚合数据、按关键词发布最新数据到Redis中、将数据源层的数据结构转换为数据仓库的数据立方体中定义的数据结构;所述数据沉淀层用于将数据转换层中处理好的数据写入数据仓库之中和发布实时计算的数据结果;所述数据维度层用于数据立方体中维度的持久化和维度发现。
[0032] 所述OLAP引擎实现数据存储、数据查询分析和数据可视化功能,采用ClickHouse作为数据存储服务,用以存放流式计算引擎计算、聚合之后的数据,采用对事实数据的聚合、切片、下钻用于进行数据查询分析,以供使用者在查询、分析数据时能规范、便捷的操作事实数据;利用MongoDB作为数据库存储数据立方体结构、维度结构、流式计算引擎的数据转换映射关系,实现服务的持久化部署。依托ECharts图表库创建数据可视化工具,以进行无代码配置图表,所述OLAP引擎包括实时数据接口和消息订阅接口,所述实时数据接口用于获取流式计算引擎数据转换层写入Redis的以数据立方体为基本单元的最新数据,所述消息订阅接口用于实时订阅所述数据沉淀层发布的计算数据;
[0033] 数据接入是数据融合的第一步,所述流式计算引擎在数据接入时建立流式服务,对批处理数据或流数据进行兼容,将不同协议、不同形式的数据转换成流数据,添加处理时间水印,最后将流数据沉淀到Kafka中;依托Flink框架提供的数据源层函数算子,实现了MQTT、MySQL数据库、Kafka流、RestfulApi等形式的数据接入。
[0034] MQTT协议的数据接入具体为:
[0035] 在MQTT协议的数据接入时,用户配置MQTT数据源的基础信息,包括名称、Broker地址、话题名称、服务质量等级,保存信息完成后,FlinkController在集群中启动数据源层任务,该任务首先读取持久化存储的MQTT源信息,然后通过EclipsePaho的软件开发工具包在相应MQTT服务订阅消息,利用数据源层函数算子收集订阅数据,再利用映射算子添加处理时间水印、数据源信息识别等信息,最后沉淀到Kafka流之中。为了提供一个开箱即用的消息队列服务,在Flink集群中部署了一个MosquittoMQTT服务。由于该服务与Flink集群处于同一环境中,因此集群中的数据源层任务可以简单地订阅该服务发布的消息。
[0036] 所述显示模块用于根据用户选择的不同显示方式显示所述孪生数据融合子系统融合后的数据;所述显示模块包括数据统计单元、数据分类单元和报表生成单元,所述数据统计单元用于对所述孪生数据融合子系统融合后的数据根据用户指令进行统计,所述数据分类单元用于对所述孪生数据融合子系统融合后的数据根据用户指令进行分类,所述报表生成单元用于对所述孪生数据融合子系统融合后的数据根据用户指令生成统计报表。
[0037] 本发明提供的孪生数据融合平台还包括数据报警模块,所述数据报警模块连接所述中央处理器,所述数据报警模块用于根据数据特点和数据采集方式定义报警规则以进行数据源异常或数据异常报警;所述报警规则包括空数据或数据中断报警、数值或增量异常报警、关键词报警,所述空数据或数据中断报警用于设定连续采集设定数量的空值或在设定时间内未收到新数据时进行报警消息推送,所述数值或增量异常报警用于当采集到的数据值超出设定范围或数据的增量小于设定值时进行报警消息推送,所述关键词报警用于设置多个关键词,当出现关键词时进行报警消息推送。
[0038] 数据转换和映射是数据融合过程中的核心步骤。在成功接入数据源之后,往往存在着很多问题,如数据源中的数据结构与OLAP数据立方体的数据结构不同;数据源中存在枚举值须要转换;数据源中的数据价值密度低,须要使用时间窗聚合数据;数据源中的数据须要过滤;数据源中的数据须要连接数字孪生模型的信息。因此,所述孪生数据融合子系统还包括数据结构转换规则,所述数据结构转换规则为数据源到OLAP数据立方体的数据结构转换规则,采用转换规则后,FlinkController在集群中启动数据转换任务,具体包括:
[0039] S1、依据数据转换映射规则从Kafka获取输入流;
[0040] S2、利用Flink的FlatMapFunction算子将数据结构转换为OLAP数据立方体中的数据结构;
[0041] S3、从数据维度流中获取数据立方体中定义的维度信息,利用CoProcessFunction算子,根据数据的key值,将维度信息连接到每一条数据中;
[0042] S4、采用RichSinkFunction算子,将最新数据更新到Redis中以供应用业务使用;
[0043] S5、检查该数据是否需要利用时间窗进行数据聚合,若需要,则根据定义的规则,利用ProcessWindowFunction算子开启时间窗聚合数据;
[0044] S6、输出数据流到数据沉淀层。
[0045] 考虑到每个子系统在进行数据映射时,都可能需要定义复杂的转换规则。因此,引入AviatorScript定义较为复杂的数据转换规则和数据过滤规则,并在上述步骤S2中将Aviator表达式的逻辑合并到FlatMapFunction算子,从而达到用户可自定义复杂数据转换、过滤规则的目的。
[0046] 所述孪生数据融合子系统中单个数据元数据的融合具体为:设计OLAP数据立方体和维度的数据结构,定义并配置数据报警规则,以完成数据准备,进而配置数据接入信息,数据源的数据被构建的数据融合系统接收,定义并配置数据转换和映射的规则,完成计算、聚合后的数据被存储到数据仓库,以供开发实用功能和数据可视化使用。
[0047] 本发明在数据准备、接入、转换和可视化方面基于Flink框架提出了数据融合路线,基于Flink框架的数据融合路线可以实现不同协议、不同形式的数据的接入,且在数据转换时引入AviatorScript解析工具可以满足用户自定义复杂数据转换和过滤规则的要求。在数据融合路线中将收集的信息与流式数据映射,依托自研的数据可视化引擎可以无代码地得出运维系统各数据的可视化效果,能够支持用户更自由地分析数据,挖掘数据价值。物理对象源源不断产生的数据,经过系统的融合,能低延迟地映射到数字孪生模型之中,以供模型演化与物理对象一致,而物理对象的历史状态,也在数据融合的过程中提高了数据价值密度,并进行了持久化存储。可进一步研究可视化编程在数据转换与映射时的应用,从而使得整个数据融合过程完全无代码,更好地保障数字孪生模型与物理对象的实时性、一致性。
[0048] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0049] 以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。