CN114385378A - 物联网设备的活跃数据处理方法、装置及存储介质 - Google Patents
物联网设备的活跃数据处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114385378A CN114385378A CN202111523668.0A CN202111523668A CN114385378A CN 114385378 A CN114385378 A CN 114385378A CN 202111523668 A CN202111523668 A CN 202111523668A CN 114385378 A CN114385378 A CN 114385378A
- Authority
- CN
- China
- Prior art keywords
- data
- equipment
- active
- cache
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了物联网设备的活跃数据处理方法、装置及存储介质,该方法包括:获取设备上报消息,并将设备上报消息推送至分布式的消息队列;设备上报消息包括消息类型;基于流计算服务在消息队列中构建设备上报消息的数据流;根据消息类型,对数据流进行清洗,获得仅包含设备活跃数据的数据流;根据数据流对缓存中的设备活跃数据进行处理;根据缓存中的设备活跃数据,对Hbase中的设备活跃数据进行处理;基于批处理服务对Hbase中的设备活跃数据进行批量处理,获得活跃基础统计数据并存入数据库。本申请通过流处理服务满足海量设备数据所产生的高并发需求,引入缓存作为缓冲,能够减少与Hbase之间的数据交互,提升数据处理性能。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种物联网设备的活跃数据处理方法、装置及存储介质。
背景技术
随着物联网技术的发展,物联网内的设备数量日益增多,而设备的活跃数据是物联网平台运营的重要指标和运营数据。由于物联网内的设备数量庞大,且设备形态差异不同,设备的行为表现千差万别,相关技术中采用传统的数据库采集和记录方式来采集设备的日活跃数据、月活跃数据等活跃数据的方案,已经难以满足海量设备所产生的数据高并发需求。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请提出一种物联网设备的活跃数据处理方法、装置及存储介质。
第一方面,本申请实施例提供了一种物联网设备的活跃数据处理方法,包括:获取设备上报消息,并将所述设备上报消息推送至分布式的消息队列;其中,所述设备上报消息包括消息类型;基于流计算服务,在所述消息队列中构建所述设备上报消息的数据流;根据所述消息类型,对所述数据流进行清洗,获得仅包含设备活跃数据的所述数据流;根据完成清洗后的所述数据流,对缓存中的所述设备活跃数据进行新增、修改或不处理;根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理;基于批处理服务,对所述Hbase中的所述设备活跃数据进行批量处理,获得活跃基础统计数据,并将所述活跃基础统计数据存入数据库。
可选地,所述设备活跃数据包括设备ID、设备的上下线日期和设备的上下线时间,所述根据完成清洗后的所述数据流,对缓存中的所述设备活跃数据进行新增、修改或不处理,包括:根据所述数据流中的所述设备ID和所述上下线日期,对所述缓存进行查询;当查询到所述数据流和所述缓存中不存在同一设备在同一日期内的所述设备活跃数据,根据所述数据流中的所述设备ID、所述上下线日期和所述上下线时间,在所述缓存中新增所述设备活跃数据;当查询到所述数据流和所述缓存中存在同一设备在同一日期内的所述设备活跃数据,根据所述上下线时间,对所述缓存中的所述设备活跃数据进行所述修改处理或不作处理。
可选地,所述当查询到所述数据流和所述缓存中存在同一设备在同一日期内的所述设备活跃数据,根据所述上下线时间,对所述缓存中的所述设备活跃数据进行所述修改处理或不作处理,包括:当所述数据流和所述缓存中存在同一设备在同一日期内的所述设备活跃数据,将所述数据流中的第一上下线时间和所述缓存中的第二上下线时间进行比较;当所述第一上下线时间晚于所述第二上下线时间,则将所述缓存中的所述第二上下线时间替换为所述第一上下线时间;当所述第一上下线时间早于或等于所述第二上下线时间,不作处理。
可选地,所述根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理,包括:根据业务需求,设置定时任务;所述定时任务包括操作间隔时长;每经过所述操作间隔时长,根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理。
可选地,所述根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理,包括:根据所述缓存中的所述设备ID,对所述Hbase进行查询;当所述缓存和所述Hbase中存在同一设备的所述设备活跃数据,将所述缓存中的第一上下线日期和所述Hbase中的第二上下线日期作比较;当所述第一上下线日期与所述第二上下线日期不相同,根据所述缓存中的所述设备ID、所述上下线日期和所述上下线时间,在所述Hbase中新增所述设备活跃数据;当所述第一上下线日期与所述第二上下线日期相同,且所述缓存中的第一上下线时间早于所述Hbase中的第二上下线时间,将所述Hbase中所述设备活跃数据替换为所述缓存中的所述设备活跃数据;当所述第一上下线日期与所述第二上下线日期相同,且所述缓存中的第一上下线时间晚于或者等于所述Hbase中的第二上下线时间,不作处理。
可选地,所述基于批处理服务,对所述Hbase中的所述设备活跃数据进行批量处理,获得活跃基础统计数据,并将所述活跃基础统计数据存入数据库,包括:基于所述批处理服务,批量获取所述Hbase中的所述设备活跃数据;对所述设备活跃数据作批量解析,获得所述设备活跃数据中的用户字段、产品字段以及设备字段;将解析后的所述设备活跃数据组装成上下线数据序列,所述上下线数据序列由多个单元数据组成;从所述上下线数据序列中的最后一个所述单元数据开始向前递归,根据所述单元数据判断设备在所述指定时段内的所述活跃情况;根据所述用户字段、所述产品字段、所述设备字段和所述指定时段,对所述活跃情况进行聚合计算,获得所述活跃基础统计数据,并将所述活跃基础统计数据存入所述数据库。
可选地,所述单元数据包括设备操作和操作时间;所述从所述上下线数据序列中的最后一个所述单元数据开始向前递归,根据所述单元数据判断设备在所述指定时段内的所述活跃情况,包括:当所述操作时间处于所述指定时段内,判断所述设备在所述指定时段内活跃;当所述操作时间晚于所述指定时段的结束时间,取前一个所述单元数据重新判断;当所述操作时间早于或等于所述指定时段的开始时间,且所述设备操作为上线,判断所述设备在所述指定时段内活跃;当所述操作时间早于或等于所述指定时段的开始时间,且所述设备操作为下线,判断所述设备在所述指定时段内非活跃。
第二方面,本申请实施例提供了一种物联网设备的活跃数据处理系统,包括:第一模块,用于获取设备上报消息,并将所述设备上报消息推送至分布式的消息队列;其中,所述设备上报消息包括消息类型;第二模块,用于基于流计算服务,在所述消息队列中构建所述设备上报消息的数据流;第三模块,用于根据所述消息类型,对所述数据流进行清洗,获得仅包含设备活跃数据的所述数据流;第四模块,用于根据完成清洗后的所述数据流,对缓存中的所述设备活跃数据进行新增、修改或不处理;第五模块,用于根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理;第六模块,用于基于批处理服务,对所述Hbase中的所述设备活跃数据进行批量处理,获得活跃基础统计数据,并将所述活跃基础统计数据存入数据库。
第三方面,本申请实施例提供了一种装置,包括:至少一个处理器;至少一个存储器,用于存储至少一个程序;当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如第一方面所述的物联网设备的活跃数据处理方法。
第四方面,本申请实施例提供了一种计算机存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由所述处理器执行时用于实现如第一方面所述的物联网设备的活跃数据处理方法。
本申请实施例的有益效果如下:首先获取设备上报消息,并将设备上报消息推送至分布式的消息队列;其中,设备上报消息包括消息类型;基于流计算服务,在消息队列中构建设备上报消息的数据流;根据消息类型,对数据流进行清洗,获得仅包含设备活跃数据的数据流;根据完成清洗后的数据流,对缓存中的设备活跃数据进行新增、修改或不处理;根据缓存中的设备活跃数据,对Hbase中的设备活跃数据进行新增、修改或不处理;基于批处理服务,对Hbase中的设备活跃数据进行批量处理,获得活跃基础统计数据,并将活跃基础统计数据存入数据库。本申请通过流处理服务对设备活跃数据进行处理,能够进一步满足海量设备数据所产生的高并发需求。并且本申请引入缓存作为设备活跃数据的缓冲,能够减少与Hbase之间的数据交互,减少大量磁盘I/O处理,从而进一步提升数据处理性能。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例提供的物联网设备的活跃数据处理方法的步骤流程图;
图2为本申请实施例提出的数据采集优化算法的实现流程图;
图3为本申请实施例提供的设备活跃数据从缓存到Hbase中的同步过程的步骤流程图;
图4为本申请实施例提供的物联网设备的活跃数据处理系统的示意图;
图5为本申请实施例提供的装置的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
下面结合附图,对本申请实施例作进一步阐述。
参考图1,图1为本申请实施例提供的物联网设备的活跃数据处理方法的步骤流程图,该方法包括但不限于步骤S100-S150:
S100、获取设备上报消息,并将设备上报消息推送至分布式的消息队列;其中,设备上报消息包括消息类型;
具体地,物联网平台通过MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),LWM2M(Lightweight Machine-To-Machine,轻量级M2M)等多种协议接入数量庞大、类型各异的物联网设备,在物联网的日常运营中,设备需要将自身的信息上报到物联网平台中,这些信息称为设备上报信息。因为设备上报信息往往数量庞大,因此物联网平台获取到这些设备上报信息后,会对设备上报消息进行简单解析,并推送至分布式的消息队列,由消息队列暂时存储。
可以理解的是,设备上报信息可以物联网设备在运行过程中各种情况,因此设备上报信息可能包括设备故障数据、设备耗能数据或者是设备活跃数据,通过设备上报信息的消息类型可以对多种类型的设备数据进行区分。
S110、基于流计算服务,在消息队列中构建设备上报消息的数据流;
具体地,基于流计算服务,构建数据源流对象,并指定分布式消息队列中需要消费的数据源,从而在消息队列中构建设备上报消息的数据流,并通过流计算引擎对消息队列中的消费数据(即设备上报消息)进行实时监听。
S120、根据消息类型,对数据流进行清洗,获得仅包含设备活跃数据的数据流;
具体地,上述内容中提到,通过设备上报信息的消息类型,可以将反映设备不同情况的设备上报消息进行区分。由于本申请实施例提出的是物联网设备的活跃数据处理方法,因此在本步骤中,根据设备上报消息的消息类型,对数据流进行清洗,具体是将数据流中如设备故障数据、设备耗能数据这样的非设备活跃数据清洗、过滤掉,获得仅包含设备活跃数据的数据流。
可以理解的是,由于设备处于活跃状态,一般是指设备处于上线状态;同理,设备处于非活跃状态,一般是指设备处于下线状态,因此设备活跃数据是能够体现设备上下线状态的数据。
更具体地,设备活跃数据包括但不限于设备ID、设备的上下线日期和设备的上下线时间,可以理解的是,上下线日期分为上线日期和下线日期,上下线时间分为上线时间和下线时间,设备上线或设备下线这个操作所对应的时间,就是设备的上线时间或下线时间。
S130、根据完成清洗后的数据流,对缓存中的设备活跃数据进行新增、修改或不处理;
具体地,本申请实施例在对物联网设备的活跃数据处理的流程中引入了缓存,该缓存为一个窗口汇聚数据库,设备活跃数据先从消息队列中进入缓存,在缓存中运行本申请实施例提出的数据采集优化算法,对设备活跃数据作进一步的筛选、整合,再将缓存中的数据整合到Hbase中,从而极大地减少进入Hbase中给的数据量,通过减少数据量来减少磁盘I/O处理,达到提升数据处理能力的目的。
上述内容中提到,设备活跃数据包括但不限于设备ID、设备的上下线日期和设备的上下线时间。本申请实施例提出的数据采集优化算法能够根据设备ID等数据,将数据流的设备活跃数据整合到缓存内的设备活跃数据中。下面阐述数据采集优化算法的具体流程。
参照图2,图2为本申请实施例提出的数据采集优化算法的实现流程图,该方法包括但不限于步骤S200-S250:
S200、根据数据流中的设备ID和上下线日期,对缓存进行查询;
具体地,以数据流中的设备ID和上下线日期作为key,在缓存中进行查询。
可以理解的是,当数据从数据流移动到缓存,或者从缓存移动到Hbase的过程中,可能需要进行一些存储格式方面的调整,导致数据流、缓存和Hbase中的设备活跃数据可能会有差异,但是数据流、缓存和Hbase中的设备活跃数据均包含设备ID、设备的上下线日期、设备的上下线时间等能够体现某个设备的活跃情况的信息,因此在本申请实施例中,将数据流、缓存和Hbase中存储的体现设备的活跃情况的数据都统称为设备活跃数据,并且可以将位于数据流、缓存和Hbase不同地方的设备活跃数据进行对比,从而确定后续的数据处理步骤。
S210、判断数据流和缓存中是否存在同一设备在同一日期内的设备活跃数据;
具体地,步骤S200通过设备ID和上下线日期这两个条件,对缓存内的设备活跃数据进行查询,若缓存中查询到数据流中的设备ID,说明数据流和缓存中存在同一设备的数据;若缓存中查询到该设备的上下线日期与数据流中的上下线信息相同,则说明数据流和缓存中存在同一设备在同一日期内的设备活跃数据。
因此,本步骤是对步骤S200实现的查询的结果进行判断,也就是判断数据流和缓存中是否存在同一设备在同一日期内的设备活跃数据,若否,跳转到步骤S220;若是,跳转到步骤S230。
S220、根据数据流中的设备ID、上下线日期和上下线时间,在缓存中新增设备活跃数据;
具体地,根据步骤S210判断确定数据流和缓存中不存在同一设备在同一日期内的设备活跃数据,则设备ID、上下线日期和上下线时间,在缓存中新增一条设备活跃数据。
S230、判断数据流中的第一上下线时间是否晚于缓存中的第二上下线时间;
具体地,根据步骤S210判断确定数据流和缓存中存在同一设备在同一日期内的设备活跃数据,则在本步骤中进行进一步的判断,将数据流中的第一上下线时间和缓存中的第二上下线时间进行比较判断。
上述内容中提到,上下线时间分为上线时间和下线时间,则可以理解的是,第一上下线时间和第二上下线时间进行比较时,应该是第一上下线时间中的上线时间和第二上下线时间中的上线时间对比,第一上下线时间中的下线时间和第二上下线时间中的下线时间。
根据上述对比方法,判断数据流中的第一上下线时间是否晚于缓存中的第二上下线时间,若否,跳转到步骤S240;若是,跳转到步骤S250。
S240、不对缓存中的设备活跃数据作处理;
具体地,根据步骤S230判断数据流中的第一上下线时间早于或等于缓存中的第二上下线时间,则不对缓存中的设备活跃数据作处理。
可以理解的是,第一上下线时间早于或等于第二上下线时间具体是指:第一上下线时间中的上线时间早于或等于第二上下线时间中的上线时间,且第一上下线时间中的下线时间早于或等于第二上下线时间中的下线时间。
S250、缓存中的第二上下线时间替换为第一上下线时间;
具体地,根据步骤S230判断数据流中的第一上下线时间晚于缓存中的第二上下线时间,将缓存中该设备ID对应的第二上下线时间替换为第一上下线时间。
可以理解的时间,第一上下线时间晚于第二上下线时间具体是指:第一上下线时间中的上线时间晚于第二上下线时间中的上线时间和/或第一上下线时间中的下线时间早于或等于第二上下线时间中的下线时间,则将第二上下线时间替换为第一上下线时间具体是指:用第一上下线时间中更晚的上线时间替换第二上下线时间中的上线时间和/或用第一上下线时间中更晚的下线时间替换第二上下线时间中的下线时间。
通过步骤S200-S250,本申请实施例提供了一种数据采集优化算法,对数据流运行该数据采集优化算法,能够极大程度地对设备活跃数据进行精简。以智慧社区电梯类设备上报频率为例,传统的设备日活存储的记录多达86400条一天,采用设备活跃优化采集算法计算日活仅需存储1条原始记录用于日活及月活计算。以智慧电力的电表类设备上报频率为例,传统的设备日活存储的记录多达96条一天,采用设备活跃优化采集算法计算日活仅需存储1条原始记录用于日活及月活计算。因此,本申请实施例中的数据采集优化算法有助于减少缓存内的数据存储量,有效规避了高频率上下线设备给系统带来的存储和计算压力。
步骤S130已经通过上述内容阐述完毕,下面开始阐述步骤S140。
S140、根据缓存中的设备活跃数据,对Hbase中的设备活跃数据进行新增、修改或不处理;
具体地,物联网中各种业务对时限的要求不一样,可以根据业务需求,设置定时任务;该定时任务包括操作间隔时长。每经过一段操作间隔时长,则根据缓存中的设备活跃数据,对Hbase中的设备活跃数据进行新增、修改或不处理,从而达到定时将缓存中的设备活跃数据同步到Hbase中的目的。
而在数据同步的过程中,可以对缓存中的数据进一步精简,进一步降低与Hbase中数据交互次数,从而提高数据处理的性能。下面阐述设备活跃数据从缓存到Hbase中的同步过程。
参照图3,图3为本申请实施例提供的设备活跃数据从缓存到Hbase中的同步过程的步骤流程图,该方法包括但不限于步骤S300-S370:
S300、根据缓存中的设备ID,对Hbase进行查询;
具体地,以缓存中的设备ID作为key,在Hbase进行查询。
S310、判断缓存和Hbase中是否存在同一设备的设备活跃数据;
具体地,若Hbase中存在与缓存中的设备ID相同的设备ID,则说明缓存和Hbase中存在同一设备的设备活跃数据。因此本步骤中,判断缓存和Hbase中是否存在同一设备的设备活跃数据,若否,跳转到步骤S320;若是,跳转到步骤S330。
S320、根据设备ID、上下线日期和上下线时间,在Hbase中新增设备活跃数据;
具体地,根据步骤S310判断缓存和Hbase中不存在同一设备的设备活跃数据,则根据设备ID、上下线日期和上下线时间,在Hbase中新增该设备ID所对应的设备活跃数据。可以理解的是,以后该设备ID所对应的设备活跃数据则记录在这个新建的设备ID下。
S330、判断缓存中的第一上下线日期和Hbase中的第二上下线日期是否相同;
具体地,根据步骤S310判断缓存和Hbase中存在同一设备的设备活跃数据,则进一步判断该设备ID对应的上下线日期。
可以理解的是,第一上下线日期中的上线日期与第二上下线日期中的上线日期相比,第一上下线日期中的下线日期与第二上下线日期中的下线日期相比。本步骤中,判断缓存中的第一上下线日期和Hbase中的第二上下线日期是否相同,若否,跳转到步骤S340;若是,跳转到步骤S350。
S340、在Hbase中新增设备活跃数据;
具体地,根据步骤S330判断,第一上下线日期和第二上下线日期不相同,也就是第一上下线日期中的上线日期与第二上下线日期中的上线日期不相同,且第一上下线日期中的下线日期与第二上下线日期中的下线日期不相同,则在Hbase中的该设备ID下,插入缓存中的设备活跃数。
S350、判断缓存中的第一上下线时间是否早于Hbase中的第二上下线时间;
具体地,根据步骤S330判断,第一上下线日期和第二上下线日期相同,也就是第一上下线日期中的上线日期与第二上下线日期中的上线日期不相同和/或第一上下线日期中的下线日期与第二上下线日期中的下线日期不相同,则进一步缓存中的第一上下线时间是否早于Hbase中的第二上下线时间,若否,跳转到步骤S360;若是跳转到步骤S370。
可以理解的是,第一上下线时间中的上线时间和第二上下线时间中的上线时间对比,第一上下线时间中的下线时间和第二上下线时间中的下线时间对比。
S360、舍弃当前数据流;
具体地,根据步骤S350判断,第一上下线时间晚于或等于Hbase中的第二上下线时间,也就是第一上下线时间中的上线时间晚于或等于第二上下线时间中的上线时间,且第一上下线时间中的下线时间晚于或等于第二上下线时间中的下线时间,则对Hbase不作处理,舍弃缓存中的当前数据流。
S370、将Hbase中设备活跃数据替换为缓存中的设备活跃数据;
具体地,根据步骤S350判断,第一上下线时间早于Hbase中的第二上下线时间,也就是第一上下线时间中的上线时间早于第二上下线时间中的上线时间和/或第一上下线时间中的下线时间早于第二上下线时间中的下线时间,则将Hbase中设备活跃数据替换为缓存中的设备活跃数据,具体是将Hbase中的设备活跃数据删除,并根据缓存中的设备活跃数据新增一条设备活跃数据。
通过步骤S300-S370,本申请实施例提供了一种设备活跃数据从缓存到Hbase中的同步过程,步骤S140已经阐述完毕,下面开始阐述步骤S150。
S150、基于批处理服务,对Hbase中的设备活跃数据进行批量处理,获得活跃基础统计数据,并将活跃基础统计数据存入数据库;
具体地,本申请实施例提出根据批处理引擎来建立批处理任务,从而对Hbase中的设备活跃数据进行批量处理,最终得到活跃基础统计数据,并将活跃基础统计数据存入数据库。后续当物联网平台需要进行用户级别、产品级别或平台级别的设备日活、月活统计,则可以直接调用数据库中的活跃基础统计数据进行统计。
在本申请实施例中,根据批处理引擎来处理Hbase中的设备活跃数据的方法包括:首先基于批处理服务,批量获取Hbase中的设备活跃数据;然后通过扩展批处理JobTask,对设备活跃数据作批量解析,获得设备活跃数据中的用户字段、产品字段以及设备字段,并且将解析后的设备活跃数据组装成由多个单元数据组成的上下线数据序列。然后,根据本申请实施例提出的活跃判定优化算法对上下线数据序列进行逻辑处理,也就是从上下线数据序列中的最后一个单元数据开始向前递归,根据单元数据判断设备在指定时段内的活跃情况。结束对上下线数据序列的处理后,根据解析得到用户字段、产品字段、设备字段,在指定时段内对活跃情况进行聚合计算,获得不同级别的活跃基础统计数据。例如可以计算得到同一个用户所对应的多个物联网设备在指定时段内的活跃基础统计数据,也可以计算得到所有相同产品(例如智慧社区中的所有摄像头、人脸门禁等等物联网设备)在指定时段内的活跃基础统计数据,还可以计算得到物联网平台内所有设备的活跃基础统计数据。最后,将计算得到的活跃基础统计数据存入数据库。
下面阐述本申请实施例提出的活跃判定优化算法的实现过程。首先确定上下线数据序列中最后一个单元数据,该单元数据包括设备操作和操作时间,设备操作是指设备上线或设备下线,操作时间是指设备上线的时间或设备下线的时间。以当前的单元数据为标准,当操作时间处于指定时段内,则判断设备在指定时段内活跃;当操作时间晚于指定时段的结束时间,则取上下线数据序列中的前一个单元数据,重新进行活跃判定;当操作时间早于或等于指定时段的开始时间,且设备操作为上线,判断设备在指定时段内活跃;当操作时间早于或等于指定时段的开始时间,且设备操作为下线,判断设备在指定时段内非活跃。
根据以上内容,对上下线数据序列运行活跃判定优化算法,最终确定活跃基础统计数据。
通过步骤S100-S150,本申请实施例提供了一种物联网设备的活跃数据处理方法,该方法包括:首先获取设备上报消息,并将设备上报消息推送至分布式的消息队列;其中,设备上报消息包括消息类型;基于流计算服务,在消息队列中构建设备上报消息的数据流;根据消息类型,对数据流进行清洗,获得仅包含设备活跃数据的数据流;根据完成清洗后的数据流,根据数据采集优化算法对缓存中的设备活跃数据进行新增、修改或不处理;根据缓存中的设备活跃数据,对Hbase中的设备活跃数据进行新增、修改或不处理;基于批处理服务,根据活跃判定优化算法对Hbase中的设备活跃数据进行批量处理,获得活跃基础统计数据,并将活跃基础统计数据存入数据库。本申请通过流处理服务对设备活跃数据进行处理,能够进一步满足海量设备数据所产生的高并发需求。并且本申请引入缓存作为设备活跃数据的缓冲,能够减少与Hbase之间的数据交互,减少大量磁盘I/O处理,从而进一步提升数据处理性能。
下面,结合上述多个实施例以及实际情况,阐述本申请实施例提供的物联网设备的活跃数据处理方法,具体步骤如下:
1)准备21台配置为16G内存、8核心CPU的虚拟机,在9台服务器上部署分布式实时流计算引擎Flink,每3台部署一个Flink集群(Flink集群1~3);在3台服务器上部署Redis缓存服务;在3台服务器上部署分布式消息队列Pulsar;3台服务器部署HBase数据库,3台服务器部署Mysql数据库。
2)在Pulsar上创建设备上报消息的推送队列,用于物联网平台接收海量设备上报的消息推送到指定队列中。
3)在其中第1-2的Flink集群上部署数据采集及储存的流计算服务,在第3Flink集群上部署海量设备活跃计算的批处理服务。
4)将Flink第1-2集群的流计算服务设置job task数量为30,最大同时支持30个数据流进行数据处理服务;设置数据采集及存储的流计算服务监听Pulsar集群的设备上报消息Topic队列。
5)流计算服务在获取设备上报消息后,首先进行消息清洗,将非设备上下线消息进行清洗过滤,之后将清洗后数据进行解析处理,识别出用户,产品,设备,操作时间,操作标识等信息,形成结构化数据。
6)对结构化数据做数据采集优化算法处理,具体处理方法参照上述步骤S200-S250:
7)将Flink第3集群的批处理计算服务设置job task数量为15个,最大同时支持15个数据流进行批处理数据服务。
8)物联网平台调度服务每晚00:05开始触发批处理服务计算当日平台海量设备的日活及月活状态。
9)批处理服务一次性加载Hbase中的海量设备上下线数据,并解析数据,形成结构化List。
10)对设备上下线数据List做活跃判定优化算法处理,具体处理方法参照上述步骤S150。若需要计算设备日活,则指定时段则为指定的某一天;若需要计算设备月活,则指定时段则为指定的某个月份。并且将判定活跃的设备标记为1,非活跃的设备标记为0。
11)对判定后设备数据从用户,产品和时间范围的维度进行聚合累加计算,生成活跃基础统计数据。
12)等15个job task计算完毕,将海量活跃基础统计数据做入库操作,插入mysql数据库中,做后续业务层数据统计处理。
13)当获得将海量设备活跃基础数据后,物联网平台可利用基础数据做用户设备日活月活统计,产品级设备日活月活统计或全平台级设备日活月活统计。
另外,参照图4,图4为本申请实施例提供的物联网设备的活跃数据处理系统的示意图,该系统400包括第一模块410、第二模块420、第三模块430、第四模块440、第五模块450和第六模块460。第一模块用于获取设备上报消息,并将设备上报消息推送至分布式的消息队列;其中,设备上报消息包括消息类型;第二模块用于基于流计算服务,在消息队列中构建设备上报消息的数据流;第三模块用于根据消息类型,对数据流进行清洗,获得仅包含设备活跃数据的数据流;第四模块用于根据完成清洗后的数据流,对缓存中的设备活跃数据进行新增、修改或不处理;第五模块用于根据缓存中的设备活跃数据,对Hbase中的设备活跃数据进行新增、修改或不处理;第六模块用于基于批处理服务,对Hbase中的设备活跃数据进行批量处理,获得活跃基础统计数据,并将活跃基础统计数据存入数据库。
参考图5,图5为本申请实施例提供的装置的示意图,该装置500包括至少一个处理器510,还包括至少一个存储器520,用于存储至少一个程序;图5中以一个处理器及一个存储器为例。
处理器和存储器可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请的另一个实施例还提供了一种装置,该装置可用于执行如上任意实施例中的控制方法,例如,执行以上描述的图1中的方法步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本申请实施例还公开了一种计算机存储介质,其中存储有处理器可执行的程序,其特征在于,处理器可执行的程序在由处理器执行时用于实现本申请提出的物联网设备的活跃数据处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种物联网设备的活跃数据处理方法,其特征在于,包括:
获取设备上报消息,并将所述设备上报消息推送至分布式的消息队列;其中,所述设备上报消息包括消息类型;
基于流计算服务,在所述消息队列中构建所述设备上报消息的数据流;
根据所述消息类型,对所述数据流进行清洗,获得仅包含设备活跃数据的所述数据流;
根据完成清洗后的所述数据流,对缓存中的所述设备活跃数据进行新增、修改或不处理;
根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理;
基于批处理服务,对所述Hbase中的所述设备活跃数据进行批量处理,获得活跃基础统计数据,并将所述活跃基础统计数据存入数据库。
2.根据权利要求1所述的物联网设备的活跃数据处理方法,其特征在于,所述设备活跃数据包括设备ID、设备的上下线日期和设备的上下线时间,所述根据完成清洗后的所述数据流,对缓存中的所述设备活跃数据进行新增、修改或不处理,包括:
根据所述数据流中的所述设备ID和所述上下线日期,对所述缓存进行查询;
当查询到所述数据流和所述缓存中不存在同一设备在同一日期内的所述设备活跃数据,根据所述数据流中的所述设备ID、所述上下线日期和所述上下线时间,在所述缓存中新增所述设备活跃数据;
当查询到所述数据流和所述缓存中存在同一设备在同一日期内的所述设备活跃数据,根据所述上下线时间,对所述缓存中的所述设备活跃数据进行所述修改处理或不作处理。
3.根据权利要求2所述的物联网设备的活跃数据处理方法,其特征在于,所述当查询到所述数据流和所述缓存中存在同一设备在同一日期内的所述设备活跃数据,根据所述上下线时间,对所述缓存中的所述设备活跃数据进行所述修改处理或不作处理,包括:
当所述数据流和所述缓存中存在同一设备在同一日期内的所述设备活跃数据,将所述数据流中的第一上下线时间和所述缓存中的第二上下线时间进行比较;
当所述第一上下线时间晚于所述第二上下线时间,则将所述缓存中的所述第二上下线时间替换为所述第一上下线时间;
当所述第一上下线时间早于或等于所述第二上下线时间,不作处理。
4.根据权利要求2所述的物联网设备的活跃数据处理方法,其特征在于,所述根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理,包括:
根据业务需求,设置定时任务;所述定时任务包括操作间隔时长;
每经过所述操作间隔时长,根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理。
5.根据权利要求2-4任一项所述的物联网设备的活跃数据处理方法,其特征在于,所述根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理,包括:
根据所述缓存中的所述设备ID,对所述Hbase进行查询;
当所述缓存和所述Hbase中存在同一设备的所述设备活跃数据,将所述缓存中的第一上下线日期和所述Hbase中的第二上下线日期作比较;
当所述第一上下线日期与所述第二上下线日期不相同,根据所述缓存中的所述设备ID、所述上下线日期和所述上下线时间,在所述Hbase中新增所述设备活跃数据;
当所述第一上下线日期与所述第二上下线日期相同,且所述缓存中的第一上下线时间早于所述Hbase中的第二上下线时间,将所述Hbase中所述设备活跃数据替换为所述缓存中的所述设备活跃数据;
当所述第一上下线日期与所述第二上下线日期相同,且所述缓存中的第一上下线时间晚于或者等于所述Hbase中的第二上下线时间,不作处理。
6.根据权利要求1所述的物联网设备的活跃数据处理方法,其特征在于,所述基于批处理服务,对所述Hbase中的所述设备活跃数据进行批量处理,获得活跃基础统计数据,并将所述活跃基础统计数据存入数据库,包括:
基于所述批处理服务,批量获取所述Hbase中的所述设备活跃数据;
对所述设备活跃数据作批量解析,获得所述设备活跃数据中的用户字段、产品字段以及设备字段;
将解析后的所述设备活跃数据组装成上下线数据序列,所述上下线数据序列由多个单元数据组成;
从所述上下线数据序列中的最后一个所述单元数据开始向前递归,根据所述单元数据判断设备在指定时段内的所述活跃情况;
根据所述用户字段、所述产品字段、所述设备字段和所述指定时段,对所述活跃情况进行聚合计算,获得所述活跃基础统计数据,并将所述活跃基础统计数据存入所述数据库。
7.根据权利要求6所述的物联网设备的活跃数据处理方法,其特征在于,所述单元数据包括设备操作和操作时间;所述从所述上下线数据序列中的最后一个所述单元数据开始向前递归,根据所述单元数据判断设备在所述指定时段内的所述活跃情况,包括:
当所述操作时间处于所述指定时段内,判断所述设备在所述指定时段内活跃;
当所述操作时间晚于所述指定时段的结束时间,取前一个所述单元数据重新判断;
当所述操作时间早于或等于所述指定时段的开始时间,且所述设备操作为上线,判断所述设备在所述指定时段内活跃;
当所述操作时间早于或等于所述指定时段的开始时间,且所述设备操作为下线,判断所述设备在所述指定时段内非活跃。
8.一种物联网设备的活跃数据处理系统,其特征在于,包括:
第一模块,用于获取设备上报消息,并将所述设备上报消息推送至分布式的消息队列;其中,所述设备上报消息包括消息类型;
第二模块,用于基于流计算服务,在所述消息队列中构建所述设备上报消息的数据流;
第三模块,用于根据所述消息类型,对所述数据流进行清洗,获得仅包含设备活跃数据的所述数据流;
第四模块,用于根据完成清洗后的所述数据流,对缓存中的所述设备活跃数据进行新增、修改或不处理;
第五模块,用于根据所述缓存中的所述设备活跃数据,对Hbase中的所述设备活跃数据进行新增、修改或不处理;
第六模块,用于基于批处理服务,对所述Hbase中的所述设备活跃数据进行批量处理,获得活跃基础统计数据,并将所述活跃基础统计数据存入数据库。
9.一种装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-7中任一项所述的物联网设备的活跃数据处理方法。
10.一种计算机存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由所述处理器执行时用于实现如权利要求1-7任一项所述的物联网设备的活跃数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111523668.0A CN114385378A (zh) | 2021-12-14 | 2021-12-14 | 物联网设备的活跃数据处理方法、装置及存储介质 |
PCT/CN2022/138668 WO2023109806A1 (zh) | 2021-12-14 | 2022-12-13 | 物联网设备的活跃数据处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111523668.0A CN114385378A (zh) | 2021-12-14 | 2021-12-14 | 物联网设备的活跃数据处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385378A true CN114385378A (zh) | 2022-04-22 |
Family
ID=81196015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111523668.0A Pending CN114385378A (zh) | 2021-12-14 | 2021-12-14 | 物联网设备的活跃数据处理方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114385378A (zh) |
WO (1) | WO2023109806A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706537A (zh) * | 2022-06-02 | 2022-07-05 | 深圳市迅犀数字科技有限公司 | 一种物联网设备的非活跃数据处理方法和处理系统 |
WO2023109806A1 (zh) * | 2021-12-14 | 2023-06-22 | 天翼物联科技有限公司 | 物联网设备的活跃数据处理方法、装置及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198298B2 (en) * | 2015-09-16 | 2019-02-05 | Salesforce.Com, Inc. | Handling multiple task sequences in a stream processing framework |
CN106873945A (zh) * | 2016-12-29 | 2017-06-20 | 中山大学 | 基于批处理和流式处理的数据处理架构及数据处理方法 |
US11334589B2 (en) * | 2018-03-27 | 2022-05-17 | Paypal, Inc. | System and platform for computing and analyzing big data |
CN109753531A (zh) * | 2018-12-26 | 2019-05-14 | 深圳市麦谷科技有限公司 | 一种大数据统计方法、系统、计算机设备及存储介质 |
CN109800129A (zh) * | 2019-01-17 | 2019-05-24 | 青岛特锐德电气股份有限公司 | 一种处理监控大数据的实时流计算监控系统及方法 |
CN110704484A (zh) * | 2019-09-09 | 2020-01-17 | 华迪计算机集团有限公司 | 一种对海量实时数据流进行处理的方法及系统 |
CN114385378A (zh) * | 2021-12-14 | 2022-04-22 | 天翼物联科技有限公司 | 物联网设备的活跃数据处理方法、装置及存储介质 |
-
2021
- 2021-12-14 CN CN202111523668.0A patent/CN114385378A/zh active Pending
-
2022
- 2022-12-13 WO PCT/CN2022/138668 patent/WO2023109806A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023109806A1 (zh) * | 2021-12-14 | 2023-06-22 | 天翼物联科技有限公司 | 物联网设备的活跃数据处理方法、装置及存储介质 |
CN114706537A (zh) * | 2022-06-02 | 2022-07-05 | 深圳市迅犀数字科技有限公司 | 一种物联网设备的非活跃数据处理方法和处理系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023109806A1 (zh) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222091B (zh) | 一种海量数据实时统计分析方法 | |
CN109558287B (zh) | 一种固态硬盘寿命预测方法、装置和系统 | |
CN105653425B (zh) | 基于复杂事件处理引擎的监控系统 | |
CN114385378A (zh) | 物联网设备的活跃数据处理方法、装置及存储介质 | |
CN109560989B (zh) | 一种链路监控系统 | |
CN111966289B (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN110990138A (zh) | 资源调度方法、装置、服务器及存储介质 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN105512910A (zh) | 一种目标用户筛选方法和装置 | |
CN112988679A (zh) | 日志采集控制方法、装置、存储介质及服务器 | |
CN110162563B (zh) | 一种数据入库方法、系统及电子设备和存储介质 | |
CN114205641A (zh) | 一种视频数据处理方法及装置 | |
CN107329832B (zh) | 一种数据接收方法及装置 | |
CN110308901A (zh) | 处理前端页面中数据变量方法、装置、设备和存储介质 | |
CN111309442B (zh) | 微服务容器数量的调整方法、装置、系统、介质及设备 | |
CN111082956A (zh) | 一种事件流处理方法、电子设备和可读存储介质 | |
US20110173165A1 (en) | Management of performance data | |
CN116010388A (zh) | 数据校验方法、数据采集服务端及数据校验系统 | |
CN109144989B (zh) | 一种数据清洗的方法及用于数据清洗的装置 | |
CN113448747B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN114049065A (zh) | 一种数据处理方法、装置及系统 | |
CN114217867A (zh) | 自动化运维代理装置、设备和存储介质 | |
CN110096518A (zh) | 知识库元数据发送方法及装置、可读存储介质 | |
CN112702376B (zh) | 一种交易实时监控方法 | |
CN114328750A (zh) | 一种将业务数据同步ods层的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |