CN116383208A - 一种多时间粒度的数据汇总方法、装置、设备及存储介质 - Google Patents
一种多时间粒度的数据汇总方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116383208A CN116383208A CN202310352267.6A CN202310352267A CN116383208A CN 116383208 A CN116383208 A CN 116383208A CN 202310352267 A CN202310352267 A CN 202310352267A CN 116383208 A CN116383208 A CN 116383208A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- summarizing
- granularity
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004590 computer program Methods 0.000 claims description 14
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 230000003442 weekly effect Effects 0.000 claims description 8
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 4
- 235000019580 granularity Nutrition 0.000 description 138
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种多时间粒度的数据汇总方法、装置、设备及存储介质,涉及数据处理领域,包括:配置多种数据源以得到若干个数据库,并基于预设时间粒度为数据库中的各数据表构建表名;通过任务配置接口配置任务信息以得到待执行汇总任务;按照时间粒度逐级判断是否触发任务执行操作,如果是则基于任务信息中的时间粒度确定汇总时间范围,并从源数据库和目的数据库中查找出源数据表和目的数据表;源数据库和目的数据库为从若干个数据库中确定的数据库;将基于汇总时间范围从源数据表中确定的待汇总数据保存至目的数据表。本申请基于时间粒度生成相应的待执行汇总任务并按照时间粒度逐级进行汇总,能够有效减少汇总数据量,提高汇总效率和灵活度。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种多时间粒度的数据汇总方法、装置、设备及存储介质。
背景技术
云计算系统中,会产生大量的性能数据,这些性能数据可能存在于不同的数据库中、不同的数据表中。现有技术在进行数据汇总时存在以下不足之处,一是如果新增一种数据表,则要重新开发汇总模块,效率低下。二是不论什么时间范围的数据汇总都是从原始数据表汇总,每次汇总的数据量大,影响处理速度。
发明内容
有鉴于此,本发明的目的在于提供一种多时间粒度的数据汇总方法、装置、设备及存储介质,能够有效减少汇总数据量,提高汇总效率和灵活度。其具体方案如下:
第一方面,本申请提供了一种多时间粒度的数据汇总方法,包括:
配置多种数据源以得到若干个数据库,并基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;
通过任务配置接口配置任务信息以得到相应的待执行汇总任务;
按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;
基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作
可选的,所述基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,包括:
基于所述汇总时间范围以及所述任务信息中预先记录的源字段从所述源数据表中确定相应的待汇总数据,并将所述待汇总数据保存至所述目的数据表。
可选的,所述多时间粒度的数据汇总方法,还包括:
利用所述汇总时间范围以及所述任务信息中预先记录的聚合算法与所述源字段进行取值以得到相应的所述待汇总数据;
执行所述任务信息中预先记录的第一数据判断操作判断所述待汇总数据在所述目的数据表中是否主键重复,如果是则进行相应的数据更新;
执行所述任务信息中预先记录的第二数据判断操作以判断所述待汇总数据是否为时间戳,如果是则进行相应时间范围的查询;
执行所述任务信息中预先记录的第三数据判断操作以判断所述待汇总数据是否为设备ID,如果是则进行相应的数据分组操作;
利用所述任务信息中预先记录的目的字段将所述待汇总数据保存至所述目的数据表。
可选的,所述按照时间粒度逐级判断当前是否触发相应的任务执行操作,包括:
启动预设定时任务,以定期从每小时的零分零秒开始按照时间粒度逐级判断当前是否触发相应的任务执行操作。
可选的,所述完成对所述待汇总数据的汇总操作之后,还包括:
基于与所述待执行汇总任务对应的所述源数据表的表名、所述目的数据表的表名、相应的时间粒度以及所述汇总时间范围确定相应的任务执行记录并将所述记录保存至预设任务执行信息表。
可选的,所述按照时间粒度逐级判断当前是否触发相应的任务执行操作,包括:
判断当前是否为零分零秒,如果是则执行相应的小时粒度的待执行汇总任务;
当所述小时粒度的待执行汇总任务执行结束时,基于与日粒度的待执行汇总任务对应的第一汇总起始时间判断预设任务执行信息表中是否存在相应记录,如果否则执行所述日粒度的待执行汇总任务;
当所述日粒度的待执行汇总任务执行结束时,基于与周粒度的待执行汇总任务对应的第二汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述周粒度的待执行汇总任务;
当所述周粒度的待执行汇总任务执行结束时,基于与月粒度的待执行汇总任务对应的第三汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述月粒度的待执行汇总任务;
当所述月粒度的待执行汇总任务执行结束时,基于与季粒度的待执行汇总任务对应的第四汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述季粒度的待执行汇总任务;
当所述季粒度的待执行汇总任务执行结束时,基于与年粒度的待执行汇总任务对应的第五汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述年粒度的待执行汇总任务。
可选的,所述基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名,包括:
基于预设时间粒度构建相应的表名后缀,并将所述表名后缀相应添加至当前所述数据库中的各数据表的表名中以得到与相应时间粒度对应的表名;其中,所述表名后缀与时间粒度一一对应。
第二方面,本申请提供了一种多时间粒度的数据汇总装置,包括:
数据库配置模块,用于配置多种数据源以得到若干个数据库;
表名构建模块,用于基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;
任务配置模块,用于通过任务配置接口配置任务信息以得到相应的待执行汇总任务;
任务执行模块,用于按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;
数据汇总模块,用于基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的多时间粒度的数据汇总方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的多时间粒度的数据汇总方法的步骤。
可见,本申请中,首先配置多种数据源以得到若干个数据库,并基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;之后通过任务配置接口配置任务信息以得到相应的待执行汇总任务;然后按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。本申请基于时间粒度生成相应的待执行汇总任务并按照时间粒度逐级进行汇总,能够有效减少现有技术在进行数据汇总时由于新增数据表导致的重复开发,减少汇总数据量,提高汇总效率以及灵活度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种多时间粒度的数据汇总方法流程图;
图2为本申请提供的一种具体的多时间粒度的数据汇总方法流程示意图;
图3为本申请提供的一种具体的多时间粒度的数据汇总方法流程图;
图4为本申请提供的一种多时间粒度的数据汇总装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云计算系统中,会产生大量的性能数据,这些性能数据可能存在于不同的数据库中、不同的数据表中。现有技术在进行数据汇总时存在以下不足之处,一是如果新增一种数据表,则要重新开发汇总模块,效率低下。二是不论什么时间范围的数据汇总都是从原始数据表汇总,每次汇总的数据量大,影响处理速度。为此,本申请提供了一种多时间粒度的数据汇总方案,能够有效减少数据汇总的重复开发,减少汇总数据量,提高汇总效率及灵活度。
参见图1所示,本发明实施例公开了一种多时间粒度的数据汇总方法,包括:
步骤S11、配置多种数据源以得到若干个数据库,并基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名。
本实施例中,在一种具体实施方式中,支持influxdb(一种时间序列数据库,被设计用来处理高写入、高查询负载)和mysql(关系型数据库管理系统,,也是关系数据库)两种数据库,两者均支持多数据源。需要理解的是,所述基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名,包括:基于预设时间粒度构建相应的表名后缀,并将所述表名后缀相应添加至当前所述数据库中的各数据表的表名中以得到与相应时间粒度对应的表名;其中,所述表名后缀与时间粒度一一对应。所述预设时间粒度包括小时、日、周、月、季、年。相应的,可以为所述预设时间粒度依次构建的表名后缀如_hour、_day、_week、_month、_quarter、_year。原始的数据表没有时间后缀,基于上述表名规则,可以保证汇总数据来自于下一级别的时间粒度的数据表。
步骤S12、通过任务配置接口配置任务信息以得到相应的待执行汇总任务。
本实施例中,在配置好数据库并基于所述预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名后,需要通过任务配置接口配置任务信息以得到相应的待执行汇总任务。
具体的,首先从已经配置好的所述数据库中选择一个数据库作为源数据库,记为srcDatabase。并从已经配置好的所述数据库源中选择一个数据库作为目的数据库,记为dstDatabase。其中所述源数据库和所述目的数据库可以是相同或不同的数据库。然后,在确定所述源数据库和所述目的数据库之后,自动查询所述源数据库和所述目的数据库中的数据表,对于influxdb数据库可以使用如下语句进行查询:
show measurements;
对于mysql数据库可以使用如下语句进行查询:
SELECT*FROM information_schema.TABLES WHERE TABLE_SCHEMA='#database';
还可以使用如下语句进行查询:
SELECT*FROM information_schema.TABLES WHERE TABLE_SCHEMA='#database'AND table_name LIKE'%_day';
在实际查询时需要将#database替换为真实的数据库名字。其中,%_day代表查询以_day结尾的表名,即查询日数据表。此外,可以将所述源数据表记为srcTable,所述目的数据表记为dstTable。具体的,根据时间粒度进行数据表筛选的规则如下表一所示。
表一
其中,xx为不含时间后缀的表名。如果选择的时间粒度为日,则将从所述源数据表中过滤出表名中有_hour后缀的表,并从所述目的数据表中过滤出表名中有_day后缀的表。如果选择的时间粒度为小时,则将从所述源数据表中过滤出没有上述后缀的表,并从所述目的数据表中过滤出表名中有_hour后缀的表。
进一步的,在选择好所述源数据表和所述目的数据表后,将自动查询表中的所有字段,对于influxdb数据库种的数据表可以使用如下语句查询:
show tag keys from table_name;
show field keys from table_name;
对于mysql数据库中的数据表可以使用如下语句查询:
SELECT*FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='#database'AND TABLE_NAME='#table_name'
实际查询时需要将#database替换为真实的数据库名字,将#table_name替换为真实的所述源数据表或所述目的数据表的表名。其中,从所述源数据表的字段列表中选择需要数据汇总的字段,称为源字段,记为srcField。之后可以为所述源字段进行包括聚类算法以及相应判断的一系列设置,并从所述目的数据表的字段列表中选择一个字段,称为目的字段,记为dstField。可以理解的是,在进行数据汇总时,具体是将与所述源字段对应的值经过计算后保存至所述目的字段。配置完成后会将上述配置持久化到相应数据库中,以此配置作为相应的待执行汇总任务。
步骤S13、按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库。
本实施例中,按照时间粒度需要先执行完小时粒度的待执行汇总任务、再依次执行日粒度、周粒度、月粒度、季粒度、年粒度的待执行汇总任务,这样可以保证进行数据汇总时的数据完整性。具体执行流程结合图2所示,首先启动预设定时任务,以定期从每小时的零分零秒开始按照时间粒度逐级判断当前是否触发相应的任务执行操作。只要所述预设定时任务正常启动,就可以执行相应的小时粒度的待执行汇总任务,然后基于当前所述预设定时任务的启动时间确定相应的汇总时间范围,所述汇总时间范围为当前所述启动时间的前一小时。之后基于所述汇总时间范围查询是否存在相应的所述待执行汇总任务,如果否则基于所述启动时间确定当前与日粒度的待执行汇总任务对应的第一汇总起始时间,通过判断预设任务执行信息表中是否存在相应记录以确定是否触发与所述日粒度的待执行汇总任务对应的任务执行操作。如果是则获取相应的任务信息以进行相应的数据汇总,并在所述小时粒度的待执行汇总任务执行完后,基于所述第一汇总起始时间判断是否触发与所述日粒度的待执行汇总任务对应的任务执行操作。如果否则执行所述日粒度的待执行汇总任务,如果是则基于所述启动时间确定与周粒度的待执行汇总任务对应的第二汇总起始时间,通过判断所述预设任务执行信息表中是否存在相应记录以确定是否触发与所述周粒度的待执行汇总任务对应的任务执行操作。以此类推,可以得知具体的按照时间粒度逐级进行数据汇总的流程。其中,所述预设任务执行信息表为保存所述待执行汇总任务的任务执行记录的数据表。
本实施例中使用了Work Stealing Pool,又称任务窃取线程池。使用该方式可以在主线程中等待子线程执行结束。不同的时间粒度对应不同的子线程。在子线程中,首先从所述源数据表中根据时间范围分组查询待汇总数据,然后将查询到的所述待汇总数据保存到所述目的数据表中,并在任务结束后将相应的执行记录保存到数据库的所述预设任务执行信息表中。
进一步可以理解的是,不同时间粒度的所述待执行汇总任务的具体执行流程一致,但具体实施过程会由于相应的所述任务信息的不同而不同。所述基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,包括:基于所述汇总时间范围以及所述任务信息中预先记录的源字段从所述源数据表中确定相应的待汇总数据,并将所述待汇总数据保存至所述目的数据表。
步骤S14、基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。
本实施例中,在基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据时,具体实施过程包括:利用所述汇总时间范围以及所述任务信息中预先记录的聚合算法与所述源字段进行取值以得到相应的所述待汇总数据;执行所述任务信息中预先记录的第一数据判断操作判断所述待汇总数据在所述目的数据表中是否主键重复,如果是则进行相应的数据更新;执行所述任务信息中预先记录的第二数据判断操作以判断所述待汇总数据是否为时间戳,如果是则进行相应时间范围的查询;执行所述任务信息中预先记录的第三数据判断操作以判断所述待汇总数据是否为设备ID,如果是则进行相应的数据分组操作;利用所述任务信息中预先记录的目的字段将所述待汇总数据保存至所述目的数据表。在另一种具体实施方式中,并未预先配置所述聚合算法,此时取平均值。其中,若所述待汇总数据为设备ID,则基于该字段作为分组依据进行数据分组。
本实施例中,所述完成对所述待汇总数据的汇总操作之后,还包括:基于与所述待执行汇总任务对应的所述源数据表的表名、所述目的数据表的表名、相应的时间粒度以及所述汇总时间范围确定相应的任务执行记录并将所述记录保存至预设任务执行信息表。具体的,所述记录包括所述源数据表的表名、所述目的数据表的表名、相应的时间粒度以及与所述汇总时间范围对应的汇总起始时间。
可见,本申请中,首先配置多种数据源以得到若干个数据库,并基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;之后通过任务配置接口配置任务信息以得到相应的待执行汇总任务;然后按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。本申请基于时间粒度生成相应的待执行汇总任务并按照时间粒度逐级进行汇总,能够有效减少现有技术在进行数据汇总时由于新增数据表导致的重复开发,减少汇总数据量,提高汇总效率以及灵活度。
由前一实施例可知,本申请按照时间粒度逐级判断当前是否触发相应的任务执行操作。为此,本实施例接下来对按照时间粒度逐级判断的过程进行详细描述。参见图3所示,本发明实施例公开了一种多时间粒度的数据汇总方法,包括:
步骤S21、判断当前是否为零分零秒,如果是则执行相应的小时粒度的待执行汇总任务。
步骤S22、当所述小时粒度的待执行汇总任务执行结束时,基于与日粒度的待执行汇总任务对应的第一汇总起始时间判断预设任务执行信息表中是否存在相应记录,如果否则执行所述日粒度的待执行汇总任务。
步骤S23、当所述日粒度的待执行汇总任务执行结束时,基于与周粒度的待执行汇总任务对应的第二汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述周粒度的待执行汇总任务。
步骤S24、当所述周粒度的待执行汇总任务执行结束时,基于与月粒度的待执行汇总任务对应的第三汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述月粒度的待执行汇总任务。
步骤S25、当所述月粒度的待执行汇总任务执行结束时,基于与季粒度的待执行汇总任务对应的第四汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述季粒度的待执行汇总任务。
步骤S26、当所述季粒度的待执行汇总任务执行结束时,基于与年粒度的待执行汇总任务对应的第五汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述年粒度的待执行汇总任务。
其中,关于上述步骤S21步骤S26的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
由此可见,本申请实施例中,通过启动预设定时任务按照时间粒度逐级进行相应的任务执行操作。依次执行小时粒度、日粒度、周粒度、月粒度、季粒度以及年粒度的待执行汇总任务,这样一来,可以保证在进行当前时间粒度的待执行汇总任务时,与下一级别的时间粒度对应的待执行汇总任务已全部完成,从而保证了数据完整性。
参见图4所示,本申请实施例还相应公开了一种多时间粒度的数据汇总装置,包括:
数据库配置模块11,用于配置多种数据源以得到若干个数据库;
表名构建模块12,用于基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;
任务配置模块13,用于通过任务配置接口配置任务信息以得到相应的待执行汇总任务;
任务执行模块14,用于按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;
数据汇总模块15,用于基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请中,首先配置多种数据源以得到若干个数据库,并基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;之后通过任务配置接口配置任务信息以得到相应的待执行汇总任务;然后按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。本申请基于时间粒度生成相应的待执行汇总任务并按照时间粒度逐级进行汇总,能够有效减少现有技术在进行数据汇总时由于新增数据表导致的重复开发,减少汇总数据量,提高汇总效率以及灵活度。
在一些具体实施例中,所述数据汇总模块15,具体可以包括:
数据汇总单元,用于基于所述汇总时间范围以及所述任务信息中预先记录的源字段从所述源数据表中确定相应的待汇总数据,并将所述待汇总数据保存至所述目的数据表。
在一些具体实施例中,所述多时间粒度的数据汇总装置,具体还可以包括:
数据取值单元,用于利用所述汇总时间范围以及所述任务信息中预先记录的聚合算法与所述源字段进行取值以得到相应的所述待汇总数据;
第一数据判断单元,用于执行所述任务信息中预先记录的第一数据判断操作以判断所述待汇总数据在所述目的数据表中是否主键重复,如果是则进行相应的数据更新;
第二数据判断单元执行所述任务信息中预先记录的第二数据判断操作以判断所述待汇总数据是否为时间戳,如果是则进行相应时间范围的查询;
第三数据判断单元执行所述任务信息中预先记录的第三数据判断操作以判断所述待汇总数据是否为设备ID,如果是则进行相应的数据分组操作;
数据保存单元,用于利用所述任务信息中预先记录的目的字段将所述待汇总数据保存至所述目的数据表。
在一些具体实施例中,所述任务执行模块14,具体可以包括:
定时任务启动单元,用于启动预设定时任务,以定期从每小时的零分零秒开始按照时间粒度逐级判断当前是否触发相应的任务执行操作。
在一些具体实施例中,所述多时间粒度的数据汇总装置,具体还可以包括:
记录保存单元,用于基于与所述待执行汇总任务对应的所述源数据表的表名、所述目的数据表的表名、相应的时间粒度以及所述汇总时间范围确定相应的任务执行记录并将所述记录保存至预设任务执行信息表。
在一些具体实施例中,所述任务执行模块14,具体可以包括:
第一任务执行单元,用于判断当前是否为零分零秒,如果是则执行相应的小时粒度的待执行汇总任务;
第二任务执行单元,用于当所述小时粒度的待执行汇总任务执行结束时,基于与日粒度的待执行汇总任务对应的第一汇总起始时间判断预设任务执行信息表中是否存在相应记录,如果否则执行所述日粒度的待执行汇总任务;
第三任务执行单元,用于当所述日粒度的待执行汇总任务执行结束时,基于与周粒度的待执行汇总任务对应的第二汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述周粒度的待执行汇总任务;
第四任务执行单元,用于当所述周粒度的待执行汇总任务执行结束时,基于与月粒度的待执行汇总任务对应的第三汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述月粒度的待执行汇总任务;
第五任务执行单元,用于当所述月粒度的待执行汇总任务执行结束时,基于与季粒度的待执行汇总任务对应的第四汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述季粒度的待执行汇总任务;
第六任务执行单元,用于当所述季粒度的待执行汇总任务执行结束时,基于与年粒度的待执行汇总任务对应的第五汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述年粒度的待执行汇总任务。
在一些具体实施例中,所述表名构建模块12,具体还可以包括:
表明后缀添加单元,用于基于预设时间粒度构建相应的表名后缀,并将所述表名后缀相应添加至当前所述数据库中的各数据表的表名中以得到与相应时间粒度对应的表名;其中,所述表名后缀与时间粒度一一对应。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的多时间粒度的数据汇总方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的多时间粒度的数据汇总方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的多时间粒度的数据汇总方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种多时间粒度的数据汇总方法,其特征在于,包括:
配置多种数据源以得到若干个数据库,并基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;
通过任务配置接口配置任务信息以得到相应的待执行汇总任务;
按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;
基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。
2.根据权利要求1所述的多时间粒度的数据汇总方法,其特征在于,所述基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,包括:
基于所述汇总时间范围以及所述任务信息中预先记录的源字段从所述源数据表中确定相应的待汇总数据,并将所述待汇总数据保存至所述目的数据表。
3.根据权利要求2所述的多时间粒度的数据汇总方法,其特征在于,还包括:
利用所述汇总时间范围以及所述任务信息中预先记录的聚合算法与所述源字段进行取值以得到相应的所述待汇总数据;
执行所述任务信息中预先记录的第一数据判断操作判断所述待汇总数据在所述目的数据表中是否主键重复,如果是则进行相应的数据更新;
执行所述任务信息中预先记录的第二数据判断操作以判断所述待汇总数据是否为时间戳,如果是则进行相应时间范围的查询;
执行所述任务信息中预先记录的第三数据判断操作以判断所述待汇总数据是否为设备ID,如果是则进行相应的数据分组操作;
利用所述任务信息中预先记录的目的字段将所述待汇总数据保存至所述目的数据表。
4.根据权利要求1所述的多时间粒度的数据汇总方法,其特征在于,所述按照时间粒度逐级判断当前是否触发相应的任务执行操作,包括:
启动预设定时任务,以定期从每小时的零分零秒开始按照时间粒度逐级判断当前是否触发相应的任务执行操作。
5.根据权利要求1所述的多时间粒度的数据汇总方法,其特征在于,所述完成对所述待汇总数据的汇总操作之后,还包括:
基于与所述待执行汇总任务对应的所述源数据表的表名、所述目的数据表的表名、相应的时间粒度以及所述汇总时间范围确定相应的任务执行记录并将所述记录保存至预设任务执行信息表。
6.根据权利要求1所述的多时间粒度的数据汇总方法,其特征在于,所述按照时间粒度逐级判断当前是否触发相应的任务执行操作,包括:
判断当前是否为零分零秒,如果是则执行相应的小时粒度的待执行汇总任务;
当所述小时粒度的待执行汇总任务执行结束时,基于与日粒度的待执行汇总任务对应的第一汇总起始时间判断预设任务执行信息表中是否存在相应记录,如果否则执行所述日粒度的待执行汇总任务;
当所述日粒度的待执行汇总任务执行结束时,基于与周粒度的待执行汇总任务对应的第二汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述周粒度的待执行汇总任务;
当所述周粒度的待执行汇总任务执行结束时,基于与月粒度的待执行汇总任务对应的第三汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述月粒度的待执行汇总任务;
当所述月粒度的待执行汇总任务执行结束时,基于与季粒度的待执行汇总任务对应的第四汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述季粒度的待执行汇总任务;
当所述季粒度的待执行汇总任务执行结束时,基于与年粒度的待执行汇总任务对应的第五汇总起始时间判断所述预设任务执行信息表中是否存在相应记录,如果否则执行所述年粒度的待执行汇总任务。
7.根据权利要求1至6任一项所述的多时间粒度的数据汇总方法,其特征在于,所述基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名,包括:
基于预设时间粒度构建相应的表名后缀,并将所述表名后缀相应添加至当前所述数据库中的各数据表的表名中以得到与相应时间粒度对应的表名;其中,所述表名后缀与时间粒度一一对应。
8.一种多时间粒度的数据汇总装置,其特征在于,包括:
数据库配置模块,用于配置多种数据源以得到若干个数据库;
表名构建模块,用于基于预设时间粒度为所述数据库中的各数据表构建与相应时间粒度对应的表名;
任务配置模块,用于通过任务配置接口配置任务信息以得到相应的待执行汇总任务;
任务执行模块,用于按照时间粒度逐级判断当前是否触发相应的任务执行操作,如果是则基于所述任务信息中记录的时间粒度确定相应的汇总时间范围,并从源数据库和目的数据库中查找出所述任务信息中预先记录的源数据表和目的数据表;所述源数据库和所述目的数据库为从所述若干个数据库中确定的数据库;
数据汇总模块,用于基于所述汇总时间范围从所述源数据表中确定相应的待汇总数据并将所述待汇总数据保存至所述目的数据表,以完成对所述待汇总数据的汇总操作。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的多时间粒度的数据汇总方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的多时间粒度的数据汇总方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310352267.6A CN116383208A (zh) | 2023-03-30 | 2023-03-30 | 一种多时间粒度的数据汇总方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310352267.6A CN116383208A (zh) | 2023-03-30 | 2023-03-30 | 一种多时间粒度的数据汇总方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116383208A true CN116383208A (zh) | 2023-07-04 |
Family
ID=86962973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310352267.6A Pending CN116383208A (zh) | 2023-03-30 | 2023-03-30 | 一种多时间粒度的数据汇总方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383208A (zh) |
-
2023
- 2023-03-30 CN CN202310352267.6A patent/CN116383208A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9521052B1 (en) | Methods, systems, and computer readable mediums for utilizing application programming interfaces for accessing key performance indicator information | |
CN109271435B (zh) | 一种支持断点续传的数据抽取方法及系统 | |
WO2017092470A1 (zh) | 数据存储方法和装置 | |
US12056128B2 (en) | Workflow driven database partitioning | |
CN104123288A (zh) | 一种数据查询方法及装置 | |
CN108415964A (zh) | 数据表查询方法、装置、终端设备及存储介质 | |
CN109299115A (zh) | 一种数据存储方法、装置、服务器及存储介质 | |
US11625412B2 (en) | Storing data items and identifying stored data items | |
CN107944036B (zh) | 一种图谱变化差异的获取方法 | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
CN109298929B (zh) | 定时任务执行时间推荐方法、装置、设备和存储介质 | |
WO2017092444A1 (zh) | 基于Hadoop的日志数据挖掘方法及系统 | |
CN115033575A (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN111046081A (zh) | 一种工业时序数据的访问方法及系统 | |
US8914356B2 (en) | Optimized queries for file path indexing in a content repository | |
CN117009348A (zh) | 一种索引管理方法、装置、设备及介质 | |
CN116383208A (zh) | 一种多时间粒度的数据汇总方法、装置、设备及存储介质 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN116383228A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115837855A (zh) | 充电桩输出功率控制方法、装置、充电桩和存储介质 | |
US10606835B2 (en) | Managing data obsolescence in relational databases | |
CN115544169A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN111090670B (zh) | 一种数据预聚合的方法、系统、计算设备及存储介质 | |
CN109033271B (zh) | 基于列存储的数据插入方法、装置、服务器及存储介质 | |
CN109063201B (zh) | 一种基于混合存储方案的impala在线交互式查询方法 |
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 |