CN111090670B - 一种数据预聚合的方法、***、计算设备及存储介质 - Google Patents
一种数据预聚合的方法、***、计算设备及存储介质 Download PDFInfo
- Publication number
- CN111090670B CN111090670B CN201911407330.1A CN201911407330A CN111090670B CN 111090670 B CN111090670 B CN 111090670B CN 201911407330 A CN201911407330 A CN 201911407330A CN 111090670 B CN111090670 B CN 111090670B
- Authority
- CN
- China
- Prior art keywords
- query
- aggregation
- data
- information
- execution
- 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.)
- Active
Links
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- 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/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- 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)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据预聚合的方法,包括以下步骤:设定数据预聚合的周期和高频阈值;解析查询语句得到对应的查询信息;根据查询信息记录查询日志,查询日志至少包括查询信息对应的目标表、操作类型和查询时间;分析查询日志,结合周期和高频阈值生成预聚合表。本发明可实现自动动态调整,管理成本低,占用存储空间小。本发明还提供了一种数据预聚合的***、计算设备及存储介质。
Description
技术领域
本发明涉及大数据领域,特别涉及一种数据预聚合的方法、***、计算设备及存储介质。
背景技术
数据仓库建设过程中,Apache Spark、Apache Presto是大规模数据处理过程中快速的计算执行引擎。为加快数据查询的速度,通常会根据业务的数据查询需求,将多个维度的数据进行聚合,形成部分大宽表。哪些维度的数据进行聚合,原则上依据业务而定。同时,并不是聚合越多越好,维度的聚合能加快查询的速度,但也需要消耗更多的存储空间。尤其是在医疗、政务等复杂的数据仓库建设场景还面临着其他的挑战,例如:包含数千张表,数据模型的设计复杂,在设计阶段难以确定聚合哪些表;设计数据模型需要行业经验非常丰富的设计人员;使用周期长,必须随着业务的升级进行不断调整;聚合的过程和中间数据展现给了用户,不便于用户操作。
而现有技术中,为了加快数据的查询和分析速度,通常根据既定的业务需求对数据进行预处理,例如:创建cube(数据立方体模型)进行多维度的数据分析,典型的***如Apache Kylin(大数据上的联机分析处理引擎),需要预先创建规则,即哪些表需进行预处理;将数据进行预处理,存入可快速检索的存储中,比较适合小批量数据的快速检索,查询的过程常用SQL(结构化查询语言)语句。这些方法仅能针对已确定查询需求,新增需求时,需要使用者反馈需求,然后管理人员增加相关处理,管理的成本较高,且对于大量动态的数据查询需求,要占用较多的存储空间。
因此,急需一种可实现自动动态调整,管理成本低,占用存储空间小的数据预聚合的方法。
发明内容
本发明的目的在于解决现有技术中数据预处理需预先设计规则,仅能针对已确定的查询需求,无法进行大批量数据的快速检索,占用存储空间大,管理成本高的问题。
本发明提供了一种数据预聚合的方法、***、计算设备及存储介质,可实现自动动态调整,管理成本低,占用存储空间小。
为解决上述技术问题,本发明的实施方式公开了一种数据预聚合的方法,包括以下步骤:设定数据预聚合的周期和高频阈值;解析查询语句得到对应的查询信息;根据查询信息记录查询日志,查询日志至少包括查询信息对应的目标表、操作类型和查询时间;分析查询日志,结合周期和高频阈值生成预聚合表。
采用上述技术方案,可实现自动动态调整,管理成本低,占用存储空间小。
可选地,数据预聚合的方法进一步包括以下步骤:搜索是否有对应于查询信息的预聚合表;若有,则改写查询语句,执行改写后的查询语句,调取预聚合表完成查询;若无,则直接执行查询语句,调取原始表完成查询。
可选地,数据预聚合的方法进一步包括以下步骤:根据查询信息和/或查询日志估算查询语句的执行时长;根据执行时长选择合适的执行引擎。
可选地,根据执行时长选择合适的执行引擎的步骤,包括:分段设置耗时区间;对执行时长位于高耗时区间的查询语句使用Apache Spark作为执行引擎;对执行时长位于低耗时区间的查询语句使用Apache Presto作为执行引擎。
可选地,数据预聚合的方法进一步包括以下步骤:设定数据预聚合的低频阈值;根据周期分析查询日志;删除查询次数低于低频阈值的预聚合表。
可选地,解析查询语句得到对应的查询信息的步骤,包括:根据用户输入的鉴权信息进行用户认证;对通过用户认证的鉴权信息进行权限认定,得到权限范围;接收用户输入的查询语句后,对属于权限范围内的查询语句进行解析得到对应的查询信息。
本发明的实施方式还公开了一种数据预聚合的***,包括:设置模块,包括第一设置单元,第一设置单元用于设定数据预聚合的周期和高频阈值;查询模块,包括解析单元,解析单元用于解析查询语句得到对应的查询信息;记录模块,用于根据查询信息记录查询日志,查询日志至少包括查询信息对应的目标表、操作类型和查询时间;分析模块,用于分析查询日志,统计查询次数;执行模块,用于根据查询次数,结合周期和高频阈值生成预聚合表;存储模块,用于存储预聚合表。
采用上述技术方案的数据预聚合的***,可实现自动动态调整,管理成本低,占用存储空间小。
可选地,数据预聚合的***还包括改写模块,用于改写查询语句,存储模块还用于存储原始表,查询模块还包括搜索单元,搜索单元用于搜索存储模块是否有对应于查询信息的预聚合表,设置模块还包括第二设置单元,第二设置单元用于分段设置查询语句的耗时区间,执行模块至少包括第一执行引擎和第二执行引擎。
可选地,数据预聚合的***还包括鉴权模块,用于对用户进行用户认证和权限认定。
本发明的实施方式还公开了一种计算设备,包括:处理器,适于实现各种指令;存储器,适于存储多条指令,指令适于由处理器加载并前述的任一数据预聚合的方法。
采用上述技术方案的计算设备,使用时可实现自动动态调整,管理成本低,占用存储空间小。
本发明的实施方式还公开了一种存储介质,存储介质存储有多条指令,指令适于由处理器加载并执行前述的任一数据预聚合的方法。
采用上述技术方案的存储介质,应用时可实现自动动态调整,管理成本低,占用存储空间小。
附图说明
图1示出本发明一实施例的数据预聚合的方法的流程图;
图2示出本发明又一实施例的数据预聚合的方法的流程图;
图3示出本发明一实施例的查询日志示意图;
图4示出本发明一实施例的数据预聚合的***的示意框图;
图5示出本发明一实施例的查询模块的示意框图;
图6示出本发明一实施例的设置模块的示意框图;
图7示出本发明一实施例的执行模块的示意框图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
参照图1所示,本发明的实施方式公开了一种数据预聚合的方法,包括以下步骤,S1:设定数据预聚合的周期和高频阈值;S2:解析查询语句得到对应的查询信息;S3:根据查询信息记录查询日志,查询日志至少包括查询信息对应的目标表、操作类型和查询时间;S4:分析查询日志,结合周期和高频阈值生成预聚合表。
在S1中,可根据实际需要,设定数据预聚合的周期和高频阈值。例如,可以设定周期为一周,从每周一0点到每周日24点为一个周期,高频阈值为100次,而无需设定具体的聚合对象。即本发明所公开的数据预聚合的方法,无需指定具体哪些表需要进行预聚合,无需行业经验非常丰富的用户进行复杂的数据模型设计,管理成本低。可以理解的是,设定操作并非每次查询均要进行,可根据实际应用的需要,定期或不定期进行修改,即对于单次查询而言,S1并不必然存在,本发明对此不作限制,只要能实现本发明的目的即可。
在S2中,可通过UI界面接收用户输入的本次查询语句,根据用户所输入的查询语句,解析查询语句,生成对应的查询信息。其中,查询语句可以是SQL语句。假设tableA,tableB为两个数据表,name为tableA和tableB中均存在的字段名称。若本次查询为2019年12月20日的16:00:00,用户输入的SQL语句为“select column1,column2 from tableAjoin tableB on tableA.name=tableB.name”。则可解析该语句对应得到查询信息。例如,查询信息可包括:“目标表为tableA、tableB,操作类型为join,查询时间为2019-12-20 16:00”等。根据实际需要,查询信息可以更加详细,例如时间可记录到秒,和/或记录对应的查询时间为周几等,也可包括其他内容。本发明不对查询信息的内容详细程度和记录形式进行限制,只要包含必要的信息,能实现本发明的目的即可。
在S3中,可根据查询信息记录查询日志。参照图3所示出的一种查询日志,查询日志可记录每次查询的相关信息,查询日志中应至少包括查询信息对应的目标表、操作类型和查询时间。本发明不对查询日志的具体字段名称和记录形式进行限制,只要能实现本发明的目的即可。
在S4中,分析查询日志,统计记录频次,得到本次查询的查询信息对应的查询次数,结合周期和高频阈值生成预聚合表。例如,将本次查询的查询信息记录在查询日志后,统计发现目标表为tableA和tableB,操作类型为join的查询操作是本周内第101次出现时,则本次查询是在设定周期内频次第一次高于所设定的高频阈值的查询操作,此时触发预聚合,执行“tableA join tableB”,生成对应的预聚合表tableA_join_tableB。则tableA_join_tableB即可用于下次查询信息包括“目标表为tableA、tableB,操作类型为join”的查询时直接使用。本发明所公开的数据预聚合的方法,当新增业务需求时,也无需使用者反馈,无需管理者增加相关处理,当对应的查询频率达到阈值时自动生成预聚合表,从而实现动态调整预聚合表,降低了管理成本,更适合大量动态的数据查询需求。且本方法下预聚合表的数量通常少于事先设定规则的预处理生成的聚合表,节约了存储空间。可以理解的是,查询语句的具体内容和形式、聚合表的名称、表的个数、查询日志内容具体的记录形式、周期、高频阈值等均可以根据实际需要进行适应性设置或修改,只要能实现本发明的目的即可,本发明不作限制。
采用上述技术方案,可实现自动动态调整,管理成本低,占用存储空间小。
参照图2所示,可选地,数据预聚合的方法进一步包括以下步骤,S5:搜索是否有对应于查询信息的预聚合表;S61:若有,则改写查询语句,执行改写后的查询语句,调取预聚合表完成查询;S62:若无,则直接执行查询语句,调取原始表完成查询。
本发明所公开的数据预聚合的方法,可以在得到本次用户输入的查询语句对应的查询信息后,根据该查询信息搜索是否有对应的预聚合表,如果存在,则可对原查询语句进行改写,改写为指向预聚合表的查询语句。例如,当用户输入“select column1,column2from tableA join tableB on tableA.name=tableB.name”后,查询信息可为:“目标表为tableA、tableB,操作类型为join,查询时间为2019-12-20 16:00”。在S5中,此时搜索是否存在查询信息对应预聚合表tableA_join_tableB。若有tableA_join_tableB,则执行S61,将“select column1,column2 from tableA join tableB on tableA.name=tableB.name”改写为“select column1,column2 from tableA_join_tableB_on_name”,并执行改写后的查询语句,即可快速完成本次查询,减少了查询时间。如果不存在table A_join_tableB,则执行S62,执行原查询语句,调取原始表tableA和tableB,完成本次查询。则在实际应用的过程中,可有针对性地对高频查询需求对应的表进行预聚合,使得高频查询需求的查询时间大大减少,从而减少了大量动态的数据查询需求所需要的总时间。可以理解的是,对某次查询而言,步骤S5,S6的进行并不依赖于步骤S3,S4的完成,即某些步骤之间不存在必然的先后顺序,本发明对此不作限制,只要能实现本发明的目的即可。
由于整个预聚合过程对用户透明,即用户不用感知数据的聚合,聚合的数据也不展示给用户,用户无需知道中间数据的存在,降低了用户使用的复杂度。且本发明所公开的数据预聚合的方法可对接现有的技术,如可根据查询日志自动创建apache kylin的cube,兼容性强,对接成本低。
可选地,数据预聚合的方法进一步包括以下步骤:根据查询信息和/或查询日志估算查询语句的执行时长;根据执行时长选择合适的执行引擎。
本发明所公开的数据预聚合的方法,可事先设定估算查询语句的执行时长的方法。例如,参照图3所示,查询日志所记录的信息还可以包括每次查询对应的执行耗时,每次查询操作完成后进行本次查询执行耗时的记录。当用户进行查询时,根据查询日志中所有相同查询信息的以往的,或者是仅查看本周期内的,执行耗时的记录。然后,可采用取平均值,或取中间几位的平均值等方法,来估算本次查询的查询语句的执行时长,并根据该时长自动选择合适的执行引擎。又或者,根据查询信息指向的目标表的数据量大小以及操作类型估算对应查询语句的执行时长,并根据该时长自动选择合适的执行引擎。其中,数据量的大小可以根据数据行数、数据空值率、数据中记录的平均大小等参数进行估算,操作可包括Filter操作、Join操作、聚合操作、排序操作等类型。可以理解的是,数据量的大小和操作类型是影响查询语句的执行时长的关键因素,因此结合起来估算查询语句的执行时长更加准确。
在大数据处理过程中,存在多个执行引擎,如hive sql、Apache Spark、ApachePresto等,适合用于不同的查询需求。例如,hive sql适用于数据量大的、长期的数据查询,Apache Spark适用于数据量较大、中长期的数据查询,Apache Presto适用于较为轻量的即席查询。本发明所公开的数据预聚合的方法,在执行查询语句时,可采用现有的开源查询语句解析器,解析后作不同执行引擎方言的映射,可根据选定的执行引擎完成对应的查询。根据估算的执行时长自动配置合适的执行引擎,有助于加快响应速度,促进资源的合理分配和调度,提升整体效率。由于存在多个可选的执行引擎,本发明所公开的数据预聚合的方法便于进行跨执行引擎的数据血缘,进行数据的血缘分析,建立数据之间的关联性,实现数据的可追溯性。本发明不对具体的执行时长估算方法和执行引擎进行限制,可根据实际需要进行选择,只要能实现本发明的目的即可。可选地,执行引擎至少包括Apache Presto,Apache Presto便于用户进行交互式的即席查询,适于数据的日常查询使用。
可选地,根据执行时长选择合适的执行引擎的步骤,包括:分段设置耗时区间;对执行时长位于高耗时区间的查询语句使用Apache Spark作为执行引擎;对执行时长位于低耗时区间的查询语句使用Apache Presto作为执行引擎。
本发明所公开的数据预聚合的方法,可实现根据具体应用场景的需要,分段设置执行时长的耗时区间,并为每个耗时区间配置合适的执行引擎。在医疗应用场景下,常用的执行引擎有Apache Spark和Apache Presto。例如,可设置耗时区间小于等于2小时的为低耗时区间,对应的执行引擎为Apache Presto,耗时区间大于2小时的为高耗时区间,对应的执行引擎为Apache Spark。通过合理的划分耗时区间,选择对应合适的执行引擎,可以进一步提升查询的效率,便于数据的处理。本发明不对耗时区间的阈值具体大小进行限制,可根据实际需要进行设置,只要能实现本发明的目的即可。
可选地,数据预聚合的方法进一步包括以下步骤:设定数据预聚合的低频阈值;根据周期分析查询日志;删除查询次数低于低频阈值的预聚合表。
本发明所公开的数据预聚合的方法,可实现设定数据预聚合的低频阈值。例如,参照前述实施方式中的周期为一周,高频阈值为100次,可设置对应的低频阈值为10次。则可每周设定一个固定的时间对查询日志进行分析。例如,每周日中午12:00时,对查询日志中本周的相关查询记录进行分析,统计所有存在的预聚合表在本周内的查询次数,即对应查询信息的记录次数。当低于低频阈值时,如本周内对应的目标表为tableA和tableB、操作类型为join的查询语句仅进行了8次查询,低于10次时,则删除之前已生成的预聚合表tableA_join_tableB。又或者,可以每两周,或者每四周等进行一次查询日志的分析。删除低频预聚合表,有利于进一步节约存储空间,便于大量动态的数据查询需求,提升预聚合表的自动动态调整能力。本发明不对低频阈值的大小、删除时间及删除周期进行限制,可根据实际需要进行选择,只要能实现本发明的目的即可。
可选地,解析查询语句得到对应的查询信息的步骤,包括:根据用户输入的鉴权信息进行用户认证;对通过用户认证的鉴权信息进行权限认定,得到权限范围;接收用户输入的查询语句后,对属于权限范围内的查询语句进行解析得到对应的查询信息。
本发明所公开的数据预聚合的方法,可在入口进行用户鉴权。例如,在用户输入查询语句前,需先输入账号、密码,又或者是部门、姓名等相关的鉴权信息进行鉴权。此处的鉴权可包括用户认证、权限认定中的一种或多种。可选地,首先根据用户的输入进行用户认证,未通过认证的用户将不能输入查询语句。对通过用户认证的鉴权信息再进行权限认定,即确定该用户所能调取使用的数据库或数据表有哪些,得到该用户的权限范围。当用书输入具体的查询语句后,可根据查询需求中包含的目标表信息,判断该查询语句是否在该用户的权限范围内,对属于该用户权限范围内的查询语句解析得到对应的查询信息。通过用户鉴权,可以提升数据的安全性,防止数据被盗用。可选地,当存在多个执行引擎执行查询语句时,在统一的入口做用户鉴权,可降低实现平台鉴权的复杂度,不需要对每个执行引擎都进行鉴权。
参照图4所示,本发明的实施方式还公开了一种数据预聚合的***1,包括:设置模块11,包括第一设置单元111,第一设置单元111用于设定数据预聚合的周期和高频阈值;查询模块12,包括解析单元121,解析单元121用于解析查询语句得到对应的查询信息;记录模块13,用于根据查询信息记录查询日志,查询日志至少包括查询信息对应的目标表、操作类型和查询时间;分析模块14,用于分析查询日志,统计查询次数;执行模块15,用于根据查询次数,结合周期和高频阈值生成预聚合表;存储模块16,用于存储预聚合表。
本发明所公开的数据预聚合的***,可参照前述实施方式中的数据预聚合的方法,完成数据预聚合,可实现自动动态调整,管理成本低,占用存储空间小。
参照图5-图7所示,可选地,数据预聚合的***1还包括改写模块(图未示),用于改写查询语句,存储模块16还用于存储原始表,查询模块12还包括搜索单元122,搜索单元122用于搜索存储模块16是否有对应于查询信息的预聚合表,设置模块11还包括第二设置单元122,第二设置单元122用于分段设置查询语句的耗时区间,执行模块15至少包括第一执行引擎151和第二执行引擎152。
本发明所公开的数据预聚合的***,参照前述实施方式中的数据预聚合的方法,在用户进行本次查询时,根据查询信息,搜索单元122搜索存储模块16中是否有对应的预聚合表,当搜索到有对应的预聚合表时,改写模块改写查询语句,执行模块15执行改写后的查询语句,直接调取预聚合表完成本次查询。当未搜索到预聚合表时,则执行模块15执行原始的查询语句,调取原始表完成本次查询。可有针对性地对高频查询需求对应的表进行预聚合,使得高频查询需求的查询时间大大减少,从而减少了大量动态的数据查询需求所需要的总时间。
设置模块11的第二设置单元122,可分段设置查询语句的耗时区间,对查询语句的执行时长进行估算,判断估算值所位于哪个对应的耗时区间,从而针对不同耗时区间内的查询语句,选择不同的执行引擎。例如,对位于高耗时区间的查询语句使用Apache Spark作为执行引擎,对位于低耗时区间的查询语句使用Apache Presto作为执行引擎。通过合理的划分耗时区间,选择对应合适的执行引擎,可以提升查询的效率,便于数据的处理。本发明不对耗时区间的阈值的具体大小进行限制,可根据实际需要进行设置,只要能实现本发明的目的即可。
由于存在多个可选择的执行引擎,本发明所公开的数据预聚合的***便于进行跨执行引擎的数据血缘,便于进行数据的血缘分析,建立数据之间的关联性,实现数据的可追溯性。可选地,设置模块还可以包括第三设置单元,用于设定数据预聚合的低频阈值,参照前述实施方式中数据预聚合的方法,实现对低频预聚合表的删除,有利于进一步节约存储空间。本发明不对低频阈值的大小、删除时间及删除周期进行限制,可根据实际需要进行选择,只要能实现本发明的目的即可。
可选地,数据预聚合的***1还包括鉴权模块,用于对用户进行用户认证和权限认定。
本发明所公开的数据预聚合的***,参照前述实施方式中的数据预聚合的方法,可对用户进行用户认证和权限认定。通过用户鉴权,可以提升数据的安全性,防止数据被盗用。可选地,当存在执行模块包含多个执行引擎时,在统一的入口做用户鉴权,可降低平台鉴权的实现复杂度,不需要对每个执行引擎都进行鉴权。
本发明的实施方式还公开了一种计算设备,包括:处理器,适于实现各种指令;存储器,适于存储多条指令,指令适于由处理器加载并前述的任一数据预聚合的方法。
采用上述技术方案的计算设备,使用时可实现自动动态调整,管理成本低,占用存储空间小。
本发明的实施方式还公开了一种存储介质,存储介质存储有多条指令,指令适于由处理器加载并执行前述的任一数据预聚合的方法。
采用上述技术方案的存储介质,应用时可实现自动动态调整,管理成本低,占用存储空间小。
本申请公开的各实施方式可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何***。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施方式可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各模块/单元都是逻辑模块/单元,在物理上,一个逻辑模块/单元可以是一个物理模块/单元,也可以是一个物理模块/单元的一部分,还可以以多个物理模块/单元的组合实现,这些逻辑模块/单元本身的物理实现方式并不是最重要的,这些逻辑模块/单元所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的模块/单元引入,这并不表明上述设备实施例并不存在其它的模块/单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。本领域技术人员可以在形式上和细节上对其作各种改变,包括做出若干简单推演或替换,而不偏离本发明的精神和范围。
Claims (1)
1.一种数据预聚合的方法,其特征在于,包括以下步骤:
设定数据预聚合的周期和高频阈值;
解析查询语句得到对应的查询信息;
根据所述查询信息记录查询日志,所述查询日志至少包括所述查询信息对应的目标表、操作类型和查询时间;
分析所述查询日志,结合所述周期和所述高频阈值生成预聚合表;
进一步包括以下步骤:
搜索是否有对应于所述查询信息的预聚合表;
若有,则改写所述查询语句,执行改写后的所述查询语句,调取所述预聚合表完成查询;
若无,则直接执行所述查询语句,调取原始表完成查询;
进一步包括以下步骤:
根据所述查询信息和/或所述查询日志估算所述查询语句的执行时长;
根据所述执行时长选择合适的执行引擎;
根据所述执行时长选择合适的执行引擎的步骤,包括:
分段设置耗时区间;
对所述执行时长位于高耗时区间的所述查询语句使用ApacheSpark作为执行引擎;
对所述执行时长位于低耗时区间的所述查询语句使用ApachePresto作为执行引擎;
进一步包括以下步骤:
设定数据预聚合的低频阈值;
根据所述周期分析所述查询日志;
删除查询次数低于所述低频阈值的预聚合表;
解析查询语句得到对应的查询信息的步骤,包括:
根据用户输入的鉴权信息进行用户认证;
对通过所述用户认证的所述鉴权信息进行权限认定,得到权限范围;
接收用户输入的所述查询语句后,对属于所述权限范围内的查询语句进行解析得到对应的查询信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911407330.1A CN111090670B (zh) | 2019-12-31 | 2019-12-31 | 一种数据预聚合的方法、***、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911407330.1A CN111090670B (zh) | 2019-12-31 | 2019-12-31 | 一种数据预聚合的方法、***、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090670A CN111090670A (zh) | 2020-05-01 |
CN111090670B true CN111090670B (zh) | 2023-08-04 |
Family
ID=70398045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911407330.1A Active CN111090670B (zh) | 2019-12-31 | 2019-12-31 | 一种数据预聚合的方法、***、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090670B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445814A (zh) * | 2020-12-15 | 2021-03-05 | 北京乐学帮网络技术有限公司 | 一种数据获取方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020175A (zh) * | 2012-11-28 | 2013-04-03 | 深圳市华为技术软件有限公司 | 一种获取聚合数据的方法和装置 |
US9275359B1 (en) * | 2013-09-30 | 2016-03-01 | Emc Corporation | Mechanism and techniques for discovery and prediction of long-term high-level nearly periodical business processes from low-level logs |
CN106294866A (zh) * | 2016-08-23 | 2017-01-04 | 北京奇虎科技有限公司 | 一种日志处理方法和装置 |
CN107451149A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 流量数据查询任务的监控方法及其装置 |
CN109753531A (zh) * | 2018-12-26 | 2019-05-14 | 深圳市麦谷科技有限公司 | 一种大数据统计方法、***、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120173519A1 (en) * | 2010-04-07 | 2012-07-05 | Google Inc. | Performing pre-aggregation and re-aggregation using the same query language |
US10528552B2 (en) * | 2017-04-18 | 2020-01-07 | Sap Se | Dynamic aggregation for big data analytics |
-
2019
- 2019-12-31 CN CN201911407330.1A patent/CN111090670B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020175A (zh) * | 2012-11-28 | 2013-04-03 | 深圳市华为技术软件有限公司 | 一种获取聚合数据的方法和装置 |
US9275359B1 (en) * | 2013-09-30 | 2016-03-01 | Emc Corporation | Mechanism and techniques for discovery and prediction of long-term high-level nearly periodical business processes from low-level logs |
CN107451149A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 流量数据查询任务的监控方法及其装置 |
CN106294866A (zh) * | 2016-08-23 | 2017-01-04 | 北京奇虎科技有限公司 | 一种日志处理方法和装置 |
CN109753531A (zh) * | 2018-12-26 | 2019-05-14 | 深圳市麦谷科技有限公司 | 一种大数据统计方法、***、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
一种面向数据流离线分析的多策略并行查询中间件;王庆荣;王晓婷;;兰州交通大学学报(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111090670A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200264923A1 (en) | Information Processing Method and Apparatus | |
US11556534B2 (en) | Subquery predicate generation to reduce processing in a multi-table join | |
US11238040B2 (en) | Grouping in analytical databases | |
US20050033779A1 (en) | Database management program, a database managing method and an apparatus therefor | |
CN105989076A (zh) | 一种数据统计方法以及装置 | |
US10915534B2 (en) | Extreme value computation | |
CN113986241B (zh) | 一种基于知识图谱的业务规则的配置方法以及装置 | |
CN107145538B (zh) | 表格数据查询方法、装置与*** | |
US20230315727A1 (en) | Cost-based query optimization for untyped fields in database systems | |
CN104834660A (zh) | 基于区间的模糊数据库搜索 | |
CN111813803B (zh) | 语句块执行计划的生成方法、装置、设备和存储介质 | |
CN110502532A (zh) | 远程数据库对象的优化方法、装置、设备和存储介质 | |
CN111090670B (zh) | 一种数据预聚合的方法、***、计算设备及存储介质 | |
CN107391528A (zh) | 前端组件依赖信息搜索方法及设备 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN104750806A (zh) | 一种大数据的查询方法及*** | |
CN114328577A (zh) | 数据查询方法和装置 | |
CN111368146A (zh) | 一种路径信息的查询方法及装置、存储介质和处理器 | |
Schäfer et al. | Sampling with incremental mapreduce | |
US11586604B2 (en) | In-memory data structure for data access | |
US20240078234A1 (en) | Apparatus, method and storage medium for database pagination | |
WO2024041221A1 (zh) | 一种选择率估算方法及估算装置 | |
CN117648086A (zh) | 脚本文件的转换方法及装置 | |
CN117332140A (zh) | 用户画像数据处理方法和装置 | |
CN116775697A (zh) | 数据库中的数据表查询方法、装置、计算设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |