CN110737673A - 一种数据处理的方法及系统 - Google Patents
一种数据处理的方法及系统 Download PDFInfo
- Publication number
- CN110737673A CN110737673A CN201811337776.7A CN201811337776A CN110737673A CN 110737673 A CN110737673 A CN 110737673A CN 201811337776 A CN201811337776 A CN 201811337776A CN 110737673 A CN110737673 A CN 110737673A
- Authority
- CN
- China
- Prior art keywords
- data
- aggregation
- query
- clusters
- cluster
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0635—Risk analysis of enterprise or organisation activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- 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)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Technology Law (AREA)
- Computational Linguistics (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Educational Administration (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据库中的数据处理的方法。通过选取多个聚合间隔,根据多个聚合间隔对数据库中的至少一条数据进行聚合,使得数据库中存储的数据簇具有不同属性值跨度的数据范围。从而在根据数据库中存储的数据簇查询聚合值时,在保证查询范围的精确度的同时,提高聚合值查询的实时性。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种数据处理的方法与系统。
背景技术
在金融、电商、公安等领域,存在欺诈监测、精准营销推荐、罪案灾情预测等场景。这些场景下,用户要求对进入数据库的数据进行实时分析处理。例如,在金融交易实时风控中,每笔交易发生时,要求风控计算平台在毫秒级时延要求下,实时计算出所有交易在56天时间窗口内的聚合值,包括交易总金额、交易平方和、交易总条数等,用于做进一步的复杂分析,如规则推理,模型评分等。数据产生时,数据的价值随着时间的流逝而降低,因此,需要在数据出现时即刻对其进行处理,而不是缓存起来成一批处理,数据库对数据处理的即刻性尤为重要。
与此同时,前述场景下的数据具有规模较大,且持续不断到达的特点,其特点更是构成对其处理的即刻性的挑战。为了实时处理持续不断的大规模数据,并向用户实时地提供数据库中数据的聚合值,需要在数据库接收到查询请求之前,对数据库中的数据进行聚合处理。如何对数据库中的数据进行聚合处理,从而保证聚合值的查询请求的实时性、查询范围的精确性是数据库系统亟待解决的问题。
发明内容
第一方面,本申请实施例提供一种数据库中的数据处理的方法。该方法包括:获取至少一条数据,每条数据包括至少一个属性。根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇,其中,该M个聚合间隔各不相同,每个数据簇包括聚合值,每个数据簇的聚合值为根据本数据簇所对应的聚合间隔针对该第一目标属性的属性值聚合计算得到,其中,该M为大于等于2的整数,T≥M。存储该T个数据簇。
通过选取多个聚合间隔,根据多个聚合间隔对数据库中的至少一条数据进行聚合,使得数据库中存储的数据簇具有不同属性值跨度的数据范围。从而在根据数据库中存储的数据簇查询聚合值时,在保证查询范围的精确度的同时,提高聚合值查询的实时性。
结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:预先设置M个聚合层,每个聚合层对应一个聚合间隔,该T个数据簇归属该M个聚合层,该M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,父聚合间隔为子聚合间隔的整数倍。
M个聚合间隔有多种选取方法。可查询的查询范围的精度取决于最小的聚合间隔,最小聚合间隔的父聚合间隔用于进一步降低聚合运算所需时间,提高聚合值查询的实时性。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该获取至少一条数据包括:接收数据流中的第N条数据,N为大于等于1的整数。该根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇,包括:根据该第N条数据的第一目标属性的属性值,确定该第N条数据在该M个聚合层中分别对应的M个数据簇;如果该数据库中已经生成该第N条数据在第m个聚合层对应的数据簇,则根据该第N条数据的第一目标属性的属性值对该已经生成的数据簇的聚合值进行刷新,m为变量且取值范围为1≤m≤M;如果该数据库中未生成该第N条数据在第m个聚合层对应的数据簇,对该第N条数据的第一目标属性的属性值进行聚合计算生成数据簇。
接收到每条数据时进行聚合运算,每接收一条数据,仅需做M次聚合运算,降低了聚合运算的计算量,节省了数据库系统的计算资源,进一步提高了查询的实时性。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,该获取至少一条数据包括:获取该数据库中存储的至少一条数据。该根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个的数据簇,包括:根据第m个聚合间隔,对该至少一条数据的第一目标属性的属性值进行聚合计算得到第m个聚合层,该第m个聚合层包括至少一个数据簇,m为变量且取值范围为1≤m≤M。
结合第一方面的第一种至第三种中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:接收查询请求,该查询请求包含查询范围;根据该查询范围,在该M个聚合层中查询得到至少两个数据簇,其中,该查询得到的至少两个数据簇归属于不同的聚合层,该查询得到的每个数据簇的数据范围与该查询范围存在交集,该查询得到的全部数据簇的数据范围的并集与该查询范围相同;对该查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
在不同的聚合层中查询匹配的数据簇,进一步降低聚合运算所需时间,提高聚合值查询的实时性。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该根据该查询范围,在该M个聚合层中查询得到至少两个数据簇,具体包括:根据该查询范围,从第一聚合层递减逐层匹配获得每个聚合层上与该查询范围匹配的数据簇,其中,该第一聚合层为聚合间隔最大的聚合层。
结合第一方面的第一种至第五种中的任一种可能的实现方式,在第一方面的第六种可能的实现方式中,每个聚合层还包括每个聚合层的聚合算法。
结合第一方面的第一种至第六种中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,每个聚合层还包括数据簇列表,每个聚合层的数据簇列表用于存储本聚合层所包含的数据簇。该根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇之后,该方法还包括:更新每个数据簇所属的聚合层的数据簇列表。
结合第一方面的第一种至第七种中的任一种可能的实现方式,在第一方面的第八种可能的实现方式中,该方法还包括:确定每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序。分别存储每个数据簇的索引序号。
结合第一方面、第一方面的第一种至第八种中的任一种可能的实现方式,在第一方面的第九种可能的实现方式中,该聚合间隔包括聚合时间间隔或聚合计数值间隔。
结合第一方面、第一方面的第一种至第九种中的任一种可能的实现方式,在第一方面的第十种可能的实现方式中,还包括:设置数据渠,该数据渠包括聚合起始标记、该数据渠的容量以及该数据渠所包含的聚合层的列表。
第二方面,本申请实施例还提供一种数据库中的数据处理的方法。该数据库用于存储多条数据,每条数据包括至少一个属性,该数据库中设置有数据渠,该数据渠中包括M个聚合层,每个聚合层对应一个聚合间隔,M个聚合间隔各不相同。该方法包括:当数据流中的第N条数据进入该数据渠,进行该M个聚合层中数据簇的刷新,N为大于等于1的整数;存储该M个数据簇。该刷新包括:根据该第N条数据的第一目标属性的属性值,获得该第N条数据在该M个聚合层中分别对应的M个数据簇,其中,如果该数据库中已生成该第N条数据在第m个聚合层对应的数据簇,则根据该第N条数据的第一目标属性的属性值对该已经生成的数据簇的聚合值进行刷新,如果该数据库中未生成该第N条数据在第m个聚合层对应的数据簇,根据该第N条数据的第一目标属性的属性值进行聚合计算生成数据簇,m为变量且取值范围为1≤m≤M。
通过选取多个聚合间隔,根据多个聚合间隔对数据库中的至少一条数据进行聚合,使得数据库中存储的数据簇具有不同属性值跨度的数据范围。从而在根据数据库中存储的数据簇查询聚合值时,在保证查询范围的精确度的同时,提高聚合值查询的实时性。对进入数据渠的到每条数据时进行聚合运算,每接收一条数据,仅需做M次聚合运算,降低了聚合运算的计算量,节省了数据库系统的计算资源,进一步提高了查询的实时性。
结合第二方面,在第二方面的第一种可能的实现方式中,该数据渠还包括聚合起始标记和容量信息,该方法还包括:根据该数据渠的聚合起始标记和容量确定该数据渠的数据范围,确定该第N条数据的第二目标属性的属性值属于该数据渠的数据范围后,执行该M个聚合层中数据簇的刷新的步骤。
事实上,通常情况下,业务的需求只关注数据库中属于一定数据范围内的数据的聚合值。数据渠的聚合起始标记和容量信息限制了进入数据渠的数据量,节省了数据库系统的计算、存储资源的消耗。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该方法还包括:当刷新该数据渠的容量信息和/或该数据渠的聚合起始标记,根据刷新后的该数据渠的容量信息或刷新后的该数据渠的聚合起始标记,删除该M个聚合中的老化数据簇。
进一步地,在一些场景下,数据渠的数据范围会随时间发生或进入数据库的数据量发生变化,随着数据渠的数据范围的变化,数据渠中会出现老化数据簇,对老化数据簇的删除可以进一步地节省了数据库系统的计算、存储资源的消耗。
结合第二方面、第二方面的第一种或第二种中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,每个聚合层包括本聚合层包含的数据簇的列表。该根据该第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,该方法还包括:更新第m个聚合层的数据簇列表。
结合第二方面、第二方面的第一种至第三种中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该方法还包括:确定该M个数据簇中每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序。分别存储每个数据簇的索引序号。
结合第二方面、第二方面的第一种至第四种中的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,该数据库中存储T个数据簇,该T个数据簇为根据该M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到的,该T个数据簇属于该M个聚合层,T≥M。在该方法还包括:接收查询请求,该查询请求包含查询范围;根据该查询范围,在该M个聚合层中查询得到该T个数据簇中的至少两个数据簇,其中,该查询得到的至少两个数据簇归属于不同的聚合层,该查询得到的每个数据簇的数据范围与该查询范围存在交集,该查询得到的全部数据簇的数据范围的并集与该查询范围相同;对该查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
在不同的聚合层中查询匹配的数据簇,进一步降低聚合运算所需时间,提高聚合值查询的实时性。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,该根据该查询范围,在该M个聚合层中查询得到该T个数据簇中的至少两个数据簇,具体包括:根据该查询范围,从第一聚合层递减逐层匹配获得每个聚合层上与该查询范围匹配的数据簇,其中,该第一聚合层为聚合间隔最大的聚合层。
结合第二方面、第二方面的第一种至第六种中的任一种可能的实现方式,在第二方面的第七种可能的实现方式中,该聚合间隔包括聚合时间间隔或聚合计数值间隔。
第三方面,本申请实施例提供,该设备包括数据获取单元、获取单元和存储单元。该获取单元用于:获取至少一条数据,每条数据包括至少一个属性。该获取单元用于:根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇,其中,该M个聚合间隔各不相同,每个数据簇包括聚合值,每个数据簇的聚合值为根据本数据簇所对应的聚合间隔针对该第一目标属性的属性值聚合计算得到,该M为大于等于2的整数,T≥M。该存储单元用于:存储该T个数据簇。
通过选取多个聚合间隔,根据多个聚合间隔对数据库中的至少一条数据进行聚合,使得数据库中存储的数据簇具有不同属性值跨度的数据范围。从而在根据数据库中存储的数据簇查询聚合值时,在保证查询范围的精确度的同时,提高聚合值查询的实时性。
结合第三方面,在第三方面的第一种可能的实现方式中,该获取单元还用于:预先设置M个聚合层,每个聚合层对应一个聚合间隔,该T个数据簇归属该M个聚合层,该M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,父聚合间隔为子聚合间隔的整数倍。
M个聚合间隔有多种选取方法。可查询的查询范围的精度取决于最小的聚合间隔,最小聚合间隔的父聚合间隔用于进一步降低聚合运算所需时间,提高聚合值查询的实时性。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该获取单元用于获取至少一条数据,包括:接收数据流中的第N条数据,N为大于等于1的整数。该获取单元用于根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇,包括:根据该第N条数据的第一目标属性的属性值,确定该第N条数据在该M个聚合层中分别对应的M个数据簇;如果该数据库中已经生成该第N条数据在第m个聚合层对应的数据簇,则根据该第N条数据的第一目标属性的属性值对该已经生成的数据簇的聚合值进行刷新,m为变量且取值范围为1≤m≤M;如果该数据库中未生成该第N条数据在第m个聚合层对应的数据簇,对该第N条数据的第一目标属性的属性值进行聚合计算生成数据簇。
接收到每条数据时进行聚合运算,每接收一条数据,仅需做M次聚合运算,降低了聚合运算的计算量,节省了数据库系统的计算资源,进一步提高了查询的实时性。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,该获取单元用于获取至少一条数据包括:获取该数据库中存储的至少一条数据。该获取单元用于根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个的数据簇,包括:根据第m个聚合间隔,对该至少一条数据的第一目标属性的属性值进行聚合计算得到第m个聚合层,该第m个聚合层包括至少一个数据簇,m为变量且取值范围为1≤m≤M。
结合第三方面的第一种至第三种中的任一种可能的实现方式,在第三方面的第四种可能的实现方式中,该设备还包括查询单元。该查询单元用于:接收查询请求,该查询请求包含查询范围;根据该查询范围,在该M个聚合层中查询得到至少两个数据簇,其中,该查询得到的至少两个数据簇归属于不同的聚合层,该查询得到的每个数据簇的数据范围与该查询范围存在交集,该查询得到的全部数据簇的数据范围的并集与该查询范围相同;对该查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
在不同的聚合层中查询匹配的数据簇,进一步降低聚合运算所需时间,提高聚合值查询的实时性。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,该查询单元用于根据该查询范围,在该M个聚合层中查询得到至少两个数据簇,具体包括:根据该查询范围,从第一聚合层递减逐层匹配获得每个聚合层上与该查询范围匹配的数据簇,其中,该第一聚合层为聚合间隔最大的聚合层。
结合第三方面的第一种至第五种中的任一种可能的实现方式,在第三方面的第六种可能的实现方式中,每个聚合层还包括每个聚合层的聚合算法。
结合第三方面的第一种至第六种中的任一种可能的实现方式,在第三方面的第七种可能的实现方式中,每个聚合层还包括数据簇列表,每个聚合层的数据簇列表用于存储本聚合层所包含的数据簇。该根据M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇之后,该获取单元还用于:更新每个数据簇所属的聚合层的数据簇列表。
结合第三方面的第一种至第七种中的任一种可能的实现方式,在第三方面的第八种可能的实现方式中,该存储单元还用于:确定每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序;分别存储每个数据簇的索引序号。
结合第三方面、第三方面的第一种至第八种中的任一种可能的实现方式,在第三方面的第九种可能的实现方式中,该聚合间隔包括聚合时间间隔或聚合计数值间隔。
结合第三方面、第三方面的第一种至第九种中的任一种可能的实现方式,在第三方面的第十种可能的实现方式中,该获取单元还用于:设置数据渠,该数据渠包括聚合起始标记、该数据渠的容量以及该数据渠所包含的聚合层的列表。
第四方面,本申请实施例还提供一种数据处理设备。该数据处理设备用于处理数据库中的至少一条数据,每条数据包括至少一个属性;该数据库中设置有数据渠,该数据渠中包括M个聚合层,每个聚合层对应一个聚合间隔,M个聚合间隔各不相同。该设备包括数据获取单元、获取单元和存储单元。该获取单元用于:获取进入该数据渠的数据流中的第N条数据。该获取单元用于:进行该M个聚合层中数据簇的刷新,N为大于等于1的整数。该刷新包括:根据该第N条数据的第一目标属性的属性值,获得该第N条数据在该M个聚合层中分别对应的M个数据簇,其中,如果该数据库中已生成该第N条数据在第m个聚合层对应的数据簇,则根据该第N条数据的第一目标属性的属性值对该已经生成的数据簇的聚合值进行刷新,如果该数据库中未生成该第N条数据在第m个聚合层对应的数据簇,根据该第N条数据的第一目标属性的属性值进行聚合计算生成数据簇,m为变量且取值范围为1≤m≤M。该存储单元用于:存储该M个数据簇。
通过选取多个聚合间隔,根据多个聚合间隔对数据库中的至少一条数据进行聚合,使得数据库中存储的数据簇具有不同属性值跨度的数据范围。从而在根据数据库中存储的数据簇查询聚合值时,在保证查询范围的精确度的同时,提高聚合值查询的实时性。对进入数据渠的到每条数据时进行聚合运算,每接收一条数据,仅需做M次聚合运算,降低了聚合运算的计算量,节省了数据库系统的计算资源,进一步提高了查询的实时性。
结合第四方面,在第四方面的第一种可能的实现方式中,该数据渠还包括聚合起始标记和容量信息。该获取单元还用于:根据该数据渠的聚合起始标记和容量确定该数据渠的数据范围;确定该第N条数据的第二目标属性的属性值属于该数据渠的数据范围后,执行M个聚合层中数据簇的刷新的步骤。
事实上,通常情况下,业务的需求只关注数据库中属于一定数据范围内的数据的聚合值。数据渠的聚合起始标记和容量信息限制了进入数据渠的数据量,节省了数据库系统的计算、存储资源的消耗。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,该存储单元还用于:刷新该数据渠的容量信息或该数据渠的聚合起始标记;根据刷新后的该数据渠的容量信息或刷新后的该数据渠的聚合起始标记,删除该M个聚合中的老化数据簇。
进一步地,在一些场景下,数据渠的数据范围会随时间发生或进入数据库的数据量发生变化,随着数据渠的数据范围的变化,数据渠中会出现老化数据簇,对老化数据簇的删除可以进一步地节省了数据库系统的计算、存储资源的消耗。
结合第四方面、第四方面的第一种或第二种中的任一种可能的实现方式,在第四方面的第三种可能的实现方式中,每个聚合层包括本聚合层包含的数据簇的列表。根据该第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,该存储单元还用于:更新第m个聚合层的数据簇列表。
结合第四方面、第四方面的第一种至第三种中的任一种可能的实现方式,在第四方面的第四种可能的实现方式中,该存储单元还用于:确定该M个数据簇中每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序;该存储单元还用于:分别存储每个数据簇的索引序号。
结合第四方面、第四方面的第一种至第四种中的任一种可能的实现方式,在第四方面的第五种可能的实现方式中,该数据库中存储T个数据簇,该T个数据簇为根据该M个聚合间隔,分别对该至少一条数据的第一目标属性的属性值进行聚合计算得到的,该T个数据簇属于该M个聚合层,T≥M。在该设备还包括查询单元,该查询单元用于:接收查询请求,该查询请求包含查询范围;根据该查询范围,在该M个聚合层中查询得到该T个数据簇中的至少两个数据簇,其中,该查询得到的至少两个数据簇归属于不同的聚合层,该查询得到的每个数据簇的数据范围与该查询范围存在交集,该查询得到的全部数据簇的数据范围的并集与该查询范围相同;对该查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
在不同的聚合层中查询匹配的数据簇,进一步降低聚合运算所需时间,提高聚合值查询的实时性。
结合第四方面的第五种可能的实现方式,在第四方面的第六种可能的实现方式中,该查询单元用于根据该查询范围,在该M个聚合层中查询得到该T个数据簇中的至少两个数据簇,具体包括:根据该查询范围,从第一聚合层递减逐层匹配获得每个聚合层上与该查询范围匹配的数据簇,其中,该第一聚合层为聚合间隔最大的聚合层。
结合第四方面、第四方面的第一种至第六种中的任一种可能的实现方式,在第四方面的第七种可能的实现方式中,该聚合间隔包括聚合时间间隔或聚合计数值间隔。
第五方面,本申请实施例提供一种计算设备。该计算设备包括处理器和存储器,该处理器执行该存储器中的程序指令,以实现前述第一方面中的各种方法。
第六方面,本申请实施例提供一种计算设备。该计算设备包括处理器和存储器,该处理器执行该存储器中的程序指令,以实现前述第二方面中的各种方法。
第七方面,本申请实施例提供一种计算机程序产品和非易失性计算机可读存储介质,其中计算机程序产品和非易失性计算机可读存储介质中包含计算机指令,计算设备执行计算机指令用于实现本申请实施例第一方面中的各种方法。
第八方面,本申请实施例提供一种计算机程序产品和非易失性计算机可读存储介质,其中计算机程序产品和非易失性计算机可读存储介质中包含计算机指令,计算设备执行计算机指令用于实现本申请实施例第二方面中的各种方法。
附图说明
图1a为本申请实施例中的数据库系统的示意图;
图1b为本申请实施例中的一种关系型数据库的示意图;
图2a为本申请实施例提供的一种对至少一条数据进行聚合运算的示意图;
图2b为本申请实施例提供的另一种对至少一条数据进行聚合运算的示意图;
图3a为本申请实施例提供的一种根据M个聚合间隔进行聚合计算得到T个数据簇的方法的示意图;
图3b为本申请实施例提供的数据库系统中的数据渠的示意图;
图4为本申请实施例提供的一种根据查询请求选择该组数据簇的方法的示意图;
图5为本申请实施例提供的一种控制器的示意图;
图6为本申请实施例提供的另一种控制器的示意图;
图7为本申请实施例提供的计算设备的示意图。
具体实施方式
数据库(Database)是组织、存储和管理数据的仓库。本申请实施例中的数据数据库系统如图1a中的数据库系统100所示。数据库系统100中的数据库110包括接口单元111、控制器112和存储单元113。接口单元111为数据库110与外部设备的交互提供接口,数据通过接口单元111写入数据库110,外部设备通过接口单元111读取存储在数据库110中的数据,同时,接口单元111也接收来自外部设备的指令或请求,从而对存储在数据库110中的数据进行相关操作,通过接口单元111写入的数据包括业务数据等。当接口单元111接收来自外部设备的指令、请求或者数据,控制器112根据接收的指令、请求或者数据,执行对应的指令操作,例如存储数据或查询数据。存储单元113用于存储通过接口单元111写入数据库110的数据。控制器112将数据写入存储单元113的过程中,还可能产生写入数据的相关数据,可选地,存储单元113还可以用于存储写入数据的相关数据。本申请实施例中,本申请实施例中所述的外部设备可以是客户端、应用程序或任何与数据库交互的功能模块,不局限于独立于数据库所在计算设备的计算设备,所述外部设备可以和数据库部署在同一计算设备上,本申请实施例对对此不作限制。
可选地,除数据库110以外,数据库系统中还包括至少一条数据库和数据库管理器,示例性地,图1a中仅仅绘制出数据库120和数据库管理器130,此时,数据库系统100为分布式数据库。当数据库系统100为分布式数据库,数据库系统100包含至少两个数据库,每个数据库的架构与前述数据库110的架构相同,每个数据库位于不同的计算设备上,不同的计算设备可以是部署在同一机房的,也可以是异地部署的。位于不同计算设备上的数据库通过网络互相连接,组成数据库系统100,数据库管理器130对数据库系统100中的数据库进行管理调度,例如,在接收到数据或指令后,将接收到的数据或指令下发给至少一条数据库,以使得至少一条数据库中的控制器通过接口模单元接收并存储数据或执行指令操作。
可选地,数据库系统100中的数据库可以是如图1b所示的关系型数据库140。关系型数据库140由结构化查询语言(Structured Query Language,SQL)构建,其访问请求和指令是基于SQL的。如图1b所示,接口单元为连接池141。连接池141对外部设备对关系型数据库140的访问连接进行管理,包括连接的分配和释放等。连接池141接收外部设备的访问请求,为外部设备分配连接。控制器114包括查询计划处理器(Query Planner)142和存储引擎(Storage Engine)143。查询计划处理器将基于SQL的访问请求或指令转换为快速执行的代码,并执行转换后的代码。可选地,查询计划处理器包括SQL接口、查询解析器(QueryParser)、查询优化器(Query Optimizer)和查询执行器(Query Executor)。SQL接口用于接收SQL访问请求或指令;查询解析器用于检查SQL访问请求或指令是否合法;查询优化器用于优化SQL访问请求或指令,使之具有较高的执行效率;查询执行器用于编译和执行由SQL访问请求或指令转化得到的代码。存储引擎143用于根据转化得到的代码,将代码相关的数据存储至文件系统144。文件系统144即图1a中的存储单元113。在关系型数据库140中,数据以文件的形式,按照一定的数据结构存储在文件系统144中。
数据流是在时间分布和数量上无限的一系列动态数据集合体。通常情况下,数据库110接收数据流中的数据,对数据流中的数据进行处理,所述处理包括存储、聚合等。存储在数据库110中的数据包括具有至少一个属性的数据。具有至少一个属性的数据也被称为结构化数据。数据的属性用于记录该条数据在某个维度的值,即属性值。以,各笔交易的数据存储在数据库系统中,用于表示一笔交易的数据通常有多个维度的值,包括交易产生的时间、交易金额、交易账户、执行交易的操作员等,那么,表示交易产生时间的时间戳、交易金额的数目、交易账户的标识、操作员的姓名即对应地记录在该条交易数据的交易时间属性、交易金额属性、交易账户属性和执行人员属性中。可以把具有至少一个属性的一条数据理解为具有至少一列的二维表中的一行,二维表中的每一列即该条数据的属性,每个属性的属性值即为该行中对应列上的数值。
查询数据库系统中的数据的聚合值是数据库系统的重要功能,下面对聚合计算和聚合值进行介绍。待聚合的一组数据为一组具有至少一个属性的数据,对该组数据的聚合是针对该组数据的一个属性而言的。本申请实施例中,称进行聚合计算时在数据的至少一个属性中选取的属性为第一目标属性,该第一目标属性也可以被叫做聚合属性等,本申请实施例对此不作限制。具体地:待聚合的一组数据具有对应的一组第一目标属性的属性值,对该组数据针对第一目标属性的属性值聚合计算,是指对该组数据对应的一组该第一目标属性的属性值进行计算,由一组该第一目标属性的属性值得到一个数值。一组该第一目标属性的属性值即为一组属性值,对应地,由该组属性值得到的数值即为针对第一目标属性的属性值聚合计算得到的聚合值。由一组属性值得到聚合值的运算包括但不限于统计计算和算术计算,也就是说,聚合运算有多种算法。统计计算包括但不限于计数;算术计算包括但不限于:求和、求最值(可以是最大值或最小值)、求中位数、求均值等。本申请实施例中的第一目标属性,指的是对一组具有至少一个属性的数据进行聚合计算时,所针对的至少一个属性中的一个,也就是说,数据具有的至少一个属性中,需要对其属性值进行聚合计算的,即为第一目标属性。
下面对聚合计算做举例说明。
以聚合计算中的计数为例。该聚合计算,即计数,可以得到该组数据包含的数据总数。计数是针对该组数据的任意一个属性的属性值的,统计该组属性值包含的属性值总数,即为该组数据包含的数据总数,也就是该聚合计算的聚合值。当聚合计算为计数时,第一目标属性可以是待聚合的一组数据所具有的任一属性。举例说明,记录违章信息的数据库系统具有一段时间内发生违章的车辆的总数的查询功能。违章车辆的总数即为该数据库系统中存储的一段时间内的一组违章数据的针对任意一个属性的属性值进行计数所得到的聚合值。
以聚合计算中的求最值为例。该聚合计算,即求最值,可以得到该组数据对应的一组第一目标属性的属性值中的最值。求最值是针对该组数据的第一目标属性的属性值的,第一目标属性可以是数据具有的至少一个属性中的一个。举例说明,记录银行交易信息的数据库系统具有查询在若干次内的交易的最大金额的功能。选取交易金额为第一目标属性,最大金额即为改数据库系统中存储的若干次内的一组交易数据在针对交易金额这一第一目标属性的属性值进行聚合计算得到的聚合值。
为描述的简洁,本申请实施例中对一组数据的聚合计算均指对该组数据针对其第一目标属性的属性值的聚合计算;一组数据的聚合值均指针对其第一目标属性的属性值的聚合计算所得到的聚合值,下文不再赘述。
在很多情况下,出于业务的需要,例如车辆违章行为的实时监测或银行交易行为的分析,需实时地获取进入数据库系统中的大量的数据的聚合值。然而,随着技术的发展,数据库系统的规模越来越大,业务中进入数据库系统的数据量也越来越大。数据库系统接收系统内一组数据的查询请求后,需遍历系统中存储的大量数据,以获取待聚合的该组数据,进而对该组数据数据进行聚合计算。大量数据的遍历及聚合则会带来较高的查询时延,影响数据库系统中聚合值查询的实时性。
基于此,本申请实施例提供一种数据处理的方法,将数据库中存储的至少一条数据视为多组数据的并集,并分别计算每组数据的聚合值,当需要查询至少一条数据的聚合值时,对各组数据的聚合值进行聚合,即可得到至少一条数据的聚合值。具体地,数据库对存储的至少一条数据,根据聚合间隔,针对第一目标属性的属性值进行聚合计算。
下面对聚合间隔进行介绍。至少一条数据的第二目标属性的属性值对应一个数据范围,例如,银行数据库系统中的每条数据均具有生成时间这一属性,生成时间这一属性的属性值为每条数据生成时的时间戳;那么银行数据库系统中的至少一条数据的生成时间的属性值具有的数据范围,该数据范围即为该至少一条数据生成时间的范围。至少一条数据的第二目标属性的属性值对应的数据范围可以视为多个子范围的并集,每个子范围的属性值跨度相同,每个子范围对应组成至少一条数据的一组数据,每组数据的第二目标属性的属性值属于对应的子范围。仍以银行数据库系统中的数据为例,若至少一条数据的生成时间的范围为10月1日至10月30日,那么10月1日至10月30日这一范围可以视为10月1日至10月10日、10月11日至10月20日、10月21日至10月30日这三个范围的并集;对应地,三个范围中的每个范围对应一组数据,每组数据的生成时间的时间戳属于对应的范围。聚合间隔即每个子范围的属性值跨度,聚合间隔用于确定计算聚合值的每组数据中包含的数据。本申请实施例中的第二目标属性,指的是根据数据的第二目标属性的属性值所属的子范围,对一组具有至少两个属性的数据进行聚合计算,也就是说,数据具有的至少两个属性中,用于根据其属性值确定归属的子范围的,即为第二目标属性。
提前计算组成至少一条数据的多组数据的聚合值,当需要查询数据库中数据的聚合值时,只需要遍历多组数据的聚合值,并对各组数据的聚合值进行聚合,即可得到至少一条数据的聚合值,减少了查询数据的聚合值时遍历和聚合的数据量,提高查询的速度。
可选地,聚合间隔可以是聚合时间间隔或者聚合计数值间隔。以银行交易数据为例,银行交易数据具有时间戳和计数次序。时间戳表示交易数据生成的时间,计数次序字段表示一条数据在系统中数据的排序,可以是该条数据生成的次序或者该条数据进入系统的次序。若聚合间隔为聚合时间间隔,以5分钟的聚合时间间隔为例,可根据交易数据的时间戳,将多条银行交易数据视为0:00-0:04、0:05-0:9、0:10-0:14……的多个分组的并集,并对每个分组中的银行交易数据针对第一目标属性的属性值进行聚合计算。若聚合间隔为聚合计数值间隔,以20的间隔为例,可根据交易数据的计数值,将多条银行交易数据视为1-20、21-40、41-60……的多个分组的并集,并对每个分组中的银行交易数据针对第一目标属性的属性值进行聚合计算。
根据聚合间隔,对至少一条数据的第一目标属性的属性值进行聚合计算所得到的多个聚合值可以由多个数据簇分别记录。每个数据簇包括一个聚合值,该聚合值是根据聚合间隔针对第一目标属性的属性值计算得到的。进行聚合计算得到该聚合值的数据为至少一条数据中由聚合间隔得到的一组数据,每个数据簇具有对应数据范围,数据簇包括第二目标属性的属性值属于对应数据范围的数据的聚合值。根据聚合间隔得到多个聚合值的方法可参照上文对聚合间隔的介绍,在此不再赘述。
当数据库接收到包含查询范围的查询请求,可根据多个数据簇中的聚合值计算得出待查询的聚合值。通常情况下,查询请求包含查询范围。查询范围即待聚合数据的第二目标属性的数据范围。接收到查询请求后,数据库对存储的数据簇进行遍历,选择与查询范围匹配的至少一条数据簇,其中,查询范围由匹配的至少一条数据簇的第二目标属性的属性值对应的数据范围组成。对匹配的至少一条数据簇包括的聚合值进行聚合计算,即可得到待聚合数据针对第一目标属性的属性值的聚合值。
图2a为根据聚合间隔对至少一条数据的第一目标属性的属性值进行聚合计算的示意图,聚合计算得到的各聚合值分别记录在各数据簇中。图2a中,为了绘图方便,将至少一条数据按照第二目标属性的属性值依次排列绘制,事实上,数据库中至少一条数据可以按照各种次序存储在存储介质或存储设备中,图2a中所示的排列顺序不对至少一条数据的存储方式构成限制。把第二目标属性的数据范围根据聚合间隔划分为多个连续且无交集的子数据范围,每个子数据范围对应一个数据簇,用于记录至少一条数据中数据各子数据范围的数据的聚合值。
如图2a中所示,根据聚合间隔和第二目标属性的属性值,至少一条数据中的每个数据属于一个数据范围。每个数据范围的跨度均为聚合间隔。根据聚合间隔,对至少一条数据的第一目标属性的属性值进行聚合,得到数据簇A1、数据簇A2、数据簇A3、……数据簇An,分别包括聚合值a1、聚合值a2、聚合值a3、……聚合值an,每个聚合值由对对应数据的第一目标属性的属性值的聚合计算得到的,数据范围包括的数据为至少一条数据中第二目标属性的属性值属于数据簇的数据范围的数据。根据查询范围可以确定待聚合数据,图2a中用阴影标示出待聚合数据。根据聚合间隔,查询范围由数据范围1、数据范围2和数据范围3组成,那么,待聚合数据可以视为由三个数据范围对应的三组数据组成。三组数据的聚合值a1、a2、a3可通过查询得到数据簇A1、数据簇A2、数据簇A3获得,对a1、a2、a3进行聚合计算即可得到待聚合数据的聚合值,无需遍历至少一条数据,即可获得待聚合数据的聚合值。
从图2a中可知,要根据若干数据簇中的各聚合值计算待聚合数据的聚合值,需要查询范围正好为若干个数据范围的并集。换句话说,查询范围的属性值跨度必须是聚合间隔的整数倍。对查询范围的属性值跨度的要求会带来下面的问题。在很多情况下,对数据的分析需要计算一个精确的查询范围下的聚合值。查询范围越精确,聚合间隔则必须越小,因为若聚合间隔取值过大,查询范围的属性值跨度无法整除聚合间隔,即无法根据若干数据簇中的各聚合值计算待聚合数据的聚合值。举例说明,用于银行系统的数据库需要进行实时聚合计算的查询范围精确到分钟级,例如计算从1小时11分至3小时56分的数据的总和,那么最大的分组间隔为1分钟,大于1分钟的分组间隔都会导致查询范围无法拆分为n个聚合值对应的查询范围。然而,若为了实现精确的查询范围而选择较小的分组间隔,则会导致查询范围对应的大量的聚合值。当数据库接收到查询请求,查询大量的聚合值同样会影响查询的实时性。
基于此,进一步地,本申请实施例提供一种方法,在保证查询范围的精确度的同时,提高聚合值查询的实时性。选取M个聚合间隔,分别针对至少一条数据的第一目标属性的属性值进行聚合计算,得到T个的数据簇。根据一个聚合间隔可以得到一组数据簇,那么根据M个聚合间隔可以得到M组数据簇。T个数据簇对应T个数据范围,这T个数据范围具有M个不同不同的属性值跨度。查询待聚合数据的聚合值时,在不同数据簇组中选择匹配的数据簇,查询范围由具有不同属性值跨度的数据范围组成。
图2b为根据多个聚合间隔对至少一条数据的第一目标属性的属性值进行聚合计算的示意图。示例性地,图2b中M值为2,事实上,M值可以是任一整数,本申请实施例对比不作限制。
图2b中,根据聚合层1对应的聚合间隔1,对至少一条数据的第一目标属性的属性值进行聚合,得到数据簇A1、数据簇A2、数据簇A3、……数据簇An;根据聚合层2对应的聚合间隔2,对至少一条数据的第一目标属性的属性值进行聚合,得到数据簇B1、……数据簇Bm-1、数据簇Bm。每个聚合值由对应数据的第一目标属性的属性值的聚合计算得到的。根据查询范围可以确定出查询范围包括的数据,图2b中用阴影标示出查询范围包括的数据。根据聚合间隔1和聚合间隔2,查询范围为数据簇B1及数据簇A3的数据范围的并集,那么,查询范围包括的数据为这两个数据范围包括的数据组成。因此,根据查询范围得到数据簇B1、数据簇A3获得,对聚合值b1、聚合值a3进行聚合计算即可得到待聚合数据的聚合值。通过选取多个聚合间隔进行聚合,可以在保证查询范围精度的同时,进一步降低聚合值计算所需的时间,提高聚合值查询的实时性。
具体地,在根据M个聚合间隔,分别对至少一条数据的第一目标属性的属性值进行聚合计算以得到T个数据簇时,按照M个聚合间隔的任意顺序,根据第m个聚合间隔,对至少一条数据的第一目标属性的属性值进行聚合计算得到属于第m个聚合层的至少一个数据簇,直到得到所有属于M个聚合层的T个数据簇,其中,m为变量,1≤m≤M,第m个聚合层包括至少一条数据簇。
在本申请实施例中,称根据一个聚合间隔得到的一组数据簇所属的数据簇组为聚合层。T个数据簇属于M个聚合层,每个聚合层对应一个聚合间隔。属于同一个聚合层的每个数据簇包括根据本数据簇所属聚合层的聚合间隔,针对所述第一目标属性的属性值聚合计算得到的聚合值,属于同一聚合层的各数据簇的数据范围不同。如图2b中所示,数据簇B1、……数据簇Bm-1、数据簇Bm归属于聚合层2;数据簇A1、数据簇A2、数据簇A3、……数据簇An归属于聚合层1。
在本申请实施例中,根据具体业务的需求,M个聚合间隔有多种选取方法。下面对一种M个聚合间隔的选取方法进行介绍。
选取M个聚合间隔,使得M个聚合间隔中的任意两个相邻的聚合间隔具有父子关系,具体地,父聚合间隔为子聚合间隔的整数倍。本申请实施例中,两个相邻的聚合间隔在M个聚合间隔按照数值大小排序的序列中相邻。称父聚合间隔对应的聚合层为父聚合层,称子聚合间隔对应的聚合层为子聚合层。M个聚合间隔中,存在最小的聚合间隔,其他M-1个聚合间隔均为该最小聚合间隔的父聚合间隔。可查询的聚合间隔需为M个聚合间隔中的至少一个聚合间隔的整数倍,那么此时,可查询的查询范围的精度取决于最小的聚合间隔,最小聚合间隔的父聚合间隔用于进一步降低聚合运算所需时间,提高聚合值查询的实时性。如图2所示,聚合层2为聚合层1的父聚合层,聚合层2对应的聚合间隔为聚合层1对应的聚合间隔的父聚合间隔。
除此之外,还在数据库中设置数据渠,数据渠中包括具有各不相同的聚合间隔的M个聚合层。
事实上,通常情况下,业务的需求只关注数据库中属于一定数据范围内的数据的聚合值,例如,只关注数据库中11:00-12:00期间生成的数据,或者只关注数据库中计数值在100-200之间的数据。因此,只对数据库中第一目标属性的属性值属于数据渠的数据范围的至少一条数据做聚合计算。数据渠的数据范围由聚合起始标记和容量确定。
进一步地,在一些场景下,数据渠的数据范围会随时间发生或进入数据库的数据量发生变化。例如,银行的数据库系统中会存储所有的历史数据,但对数据的实时分析处理只关注最近8小时内产生的数据或最近10000次交易所产生的数据。当数据渠的数据范围发生变化时,会导致T个数据簇中的部分数据簇的数据范围超过数据渠的更新后的数据范围,需要删除部分的老化数据簇。具体地,在数据库中存储的数据簇中查找数据范围超过更新后的数据渠的数据范围的数据簇,查找到的数据簇即为老化数据簇。若查找到的第k个数据簇的数据范围与数据渠的数据范围无交集,删除该查找到的第k个数据簇;若查找到的第k个数据簇的数据范围不属于数据渠的数据范围,且与数据渠的数据范围有交集,需根据老化数据的第一目标属性的属性值刷新该查找到的第k个数据簇。老化数据簇的数据范围为数据渠的数据范围与查找到的第k个数据簇的数据范围的差。
可选地,根据M个聚合间隔进行聚合计算得到T个数据簇时,可以通过如图3a所示的方法。数据库中预设有数据渠,数据渠中包括M个聚合层,每个聚合层对应一个聚合间隔,各聚合层对应的聚合间隔各不相同。每接收到一条数据,即根据预设的M个聚合间隔,在每个聚合层中,刷新对应的数据簇,或者新建对应的数据簇。
以用于用于银行交易记录的数据库系统为例,图3b该数据库系统中的数据渠的示意图。该数据库系统中的每条数据具有交易生成时间属性和金额属性。金额即前述第一目标属性,交易时间即前述第二目标属性。业务需对属于某一时间范围的数据进行聚合,计算属于某一时间范围的交易数据的总金额。数据库中设置如图3b所示的数据渠,数据渠包括4个聚合层,每个聚合层对应的时间间隔分别为1小时、1分钟、10秒钟和1秒钟。每接收一条数据,即根据预设的4个聚合间隔,刷新每个聚合层中对应的数据簇,或新建对应的数据簇。
如图3a所示,具体方法如下。
s301,接收数据流中的第N条数据,其中N为大于等于1的整数。
在接收第N条数据之前,数据库中已经存储了至少一条数据中的N-1条数据,以及根据M个聚合间隔,对所述N-1条数据的第一目标属性的属性值进行聚合计算得到t个数据簇。接收第N条数据,根据t个数据簇中的聚合值和第N条数据,即可对至少一条数据中的N条数据的第一目标属性的属性值进行聚合计算。
图3b中绘制的即为数据库中根据4个聚合间隔,对N-1条数据的金额属性的属性值进行聚合计算得到t个数据簇。每个数据簇具有一个数据范围,同一聚合层中的数据簇的数据范围无交集。图中示例性地标注出了部分数据簇的数据范围。例如,聚合层4对应的聚合间隔为1秒钟,聚合层4包含的数据簇的数据范围为第0-1秒、第1-2秒、第9-10秒、第29-30秒等。数据范围为第9-10s的数据簇的聚合值为N-1条数据中生成时间在第9-10秒的数据的总金额;数据范围为第0-10s的数据簇的聚合值为N-1条数据中生成时间在第0-10秒的数据的总金额。父聚合层中的数据簇的数据范围包括子聚合层中的至少一个数据簇的数据范围,例如,聚合层2中的一个数据簇的数据范围第0-1分钟,即包含聚合层3中的若干数据簇的数据范围:第0-10秒、第10-20秒等。
s302,针对每个聚合层,根据第N条数据的第二目标属性的属性值,确定数据库中是否已生成第N条数据在第m个聚合层对应的数据簇,其中。m为变量且取值范围为1≤m≤M。
每个数据簇均具有数据范围,且同一聚合层中,各数据簇的数据范围无交集,因此,第N条数据在每个聚合层中,仅对应唯一的一个数据簇。因此,在对至少一条数据中的N条数据的第一目标属性的属性值进行聚合计算时,无需重新计算t个数据簇中每个数据簇中的聚合值,只需要计算匹配的数据簇的聚合值。假设第N条数据的生成时间为第115.4秒,以图3b中所示的数据渠为例,根据四个不同的聚合间隔,该条数据属于数据范围分别是:第115-116秒、第110-120秒、第1-2分钟和第0-1小时。该条数据在每个聚合层中均对应一个具有上述数据范围的数据簇。
根据每个聚合层对应的聚合间隔,可以确定聚合层中各数据簇的数据范围。对各数据簇的数据范围进行遍历,确定第N条数据的第一目标属性的属性值所属的数据范围,即可确定数据库中是否已生成第N条数据在第m个聚合层对应的数据簇。
若是,即数据库已生成第N条数据在第m个聚合层对应的数据簇,执行步骤s304。
s303,根据第N条数据的第一目标属性的属性值,对已经生成的数据簇进行刷新得到刷新的数据簇。对所述已经生成的数据簇进行刷新得到刷新的数据簇包括:获得已经生成的数据簇中的聚合值;对获得的聚合值与第N条数据的第一目标属性的属性值进行聚合计算,得到新的聚合值;将新的聚合值写入已经生成的数据簇,覆盖已经生成的数据簇中原有的聚合值,得到刷新的数据簇。
若否,即数据库未生成第N条数据在第m个聚合层对应的数据簇,执行步骤s305。
s304,根据第N条数据的第一目标属性的属性值,生成数据簇。具体包括:新建数据簇,新建的数据簇中的聚合值为第N条数据的第一目标属性的属性值,新建的数据簇的数据范围的属性值跨度为第m个聚合层对应的聚合间隔。
按照任意顺序,针对M个聚合层中的每个聚合层,分别执行s303-s304,即可根据t个数据簇中的聚合值和第N条数据对至少一条数据中的N条数据的第一目标属性的属性值进行聚合计算。同样道理,每接收至少一条数据中的一条数据,即执行如图3a所示的方法,即可得到T个聚合值。此时,每接收一条数据,只涉及M个数据簇相关的少量数据的聚合运算,提高了获得T个数据簇的速度,亦带来聚合值查询时延的降低。
当数据库的接口单元接收到第N条数据,接口单元将第N条数据发送至控制器,控制器将第N条数据写入数据库的存储单元。可选地,控制器在将第N条数据写入存储单元的同时,执行s301-s304,或者控制器也可以在第N条数据写入存储单元之后或者之前,执行s301-s304,本申请实施例对此不作限制。
基于数据库中存储的至少一条数据的T个数据簇,本申请实施例提供一种聚合值查询的方法,即根据查询请求的查询范围,查询得到一组数据簇,查询到的该组数据簇中各数据簇的数据范围无交集,每个数据簇的数据范围与查询范围存在交集,查询得到的全部数据簇的数据范围的并集与所述查询范围相同。对该组数据簇的聚合值进行聚合计算,即可得到待聚合数据针对第一目标属性的属性值的聚合值。如图4所示,为根据查询请求选择该组数据簇的方法的示意图。
s401,接收查询请求,查询请求包含查询范围,查询请求用于对数据库中第二目标属性的属性值属于查询范围的数据的聚合值。
s402,将查询范围划分为两个属性值区间,得到第一查询区间和第二查询区间。第二查询区间第一查询区间和第二查询区间表示查询范围中,用于选取该组数据簇的区间。第一查询区间和第二查询区间无交集。
本申请实施例对查询范围的划分方法不做限制,下举例说明。查询范围包括左边界和右边界,以查询范围的左边界作为第一查询区间的左边界,以查询范围的右边界作为第二查询区间的右边界,并以查询范围的右边界作为第一查询区间的左边界和第二查询区间的右边界。此时,第二查询区间为长度为0的区间。
s403,在当前聚合层内,查询匹配第一查询区间和第二查询区间的数据簇,匹配的数据簇的数据范围属于第一查询区间或第二查询区间。
若第一查询区间和第二查询区间为s402中得到的初始化后的第一查询区间和第二查询区间,则当前聚合层初始聚合层,初始聚合层为对应聚合间隔最大的聚合层。进一步地,若M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,则初始聚合层为M个聚合层中不具有父聚合层的聚合层。
若当前聚合层中具有属于第一查询区间和/或第二查询区间的数据簇,执行s404。
s404,记录查询到的数据簇,并根据查询到的数据簇更新对应的第一查询区间和/或第二查询区间。
在查询到的数据簇中,根据数据范围属于第一查询区间的数据簇更新第一查询区间的右边界,根据数据范围属于第二查询区间的数据簇更新第二查询区间的左边界。具体地,每个数据簇的数据范围均具有左边界和右边界,在属于第一查询区间的各数据范围的左边界中,选取最小左边界,该最小左边界作为更新后的第一查询区间的右边界;在属于第二查询区间的各数据范围的右边界中,选取最大右边界,该最大右边界作为更新后的第二查询区间的左边界。
若查询到的数据簇的数据范围不属于第一查询区间,则不需要对第一查询区间进行更新;同样地,若查询到的数据簇的数据范围不属于第二查询区间,则不需要对第二查询区间进行更新。
按照上述方法对第一查询区间和第二查询区间进行更新,更新后的第一查询区间和更新后的第二查询区间中不再包含已查询到的数据簇的数据范围,需要选取更小的聚合间隔,在更小的聚合间隔对应的聚合层中查询匹配更新后的第一查询区间和更新后的第二查询区间的数据簇。
s405,查询对应聚合间隔小于当前聚合层对应聚合间隔的聚合层。进一步地,若M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,则查询当前聚合层的子聚合层。
若存在对应聚合间隔小于当前聚合层对应聚合间隔的聚合层,则需在对应聚合间隔小于当前聚合层对应聚合间隔的聚合层中,查询数据范围属于更新后的第一未选取范围和更新后的第二未选取范围的数据簇,即执行s406。
s406,更新当前聚合层,更新后的当前聚合层为对应聚合间隔小于当前聚合层对应的聚合间隔的聚合层;进一步地,若M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,则更新后的当前聚合层为当前聚合层的子聚合层。若当前聚合层为初始聚合层,则更新后的当前聚合层为非初始聚合层,非初始聚合层为M个聚合层中对应聚合间隔不是最大的聚合层。
执行步骤s406之后,第一查询区间和/或第二查询区间已更新,当前聚合层已更新,执行步骤s403,查询匹配的数据簇,直到步骤不存在对应聚合间隔小于当前聚合层对应聚合间隔的聚合层。进一步地,若M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,则执行步骤s403,查询匹配的数据簇,直到当前聚合层不存在子聚合层。
进一步地,本申请实施例还提供了用于存储数据簇和聚合值的数据结构,在关系型数据库中,以下文中所述的数据结构来存储数据簇,进一步提高数据簇存储和查询的效率。
首先数据簇包括聚合值。除此之外,数据簇还需要包括用于唯一确定各数据簇的属性。同样地,聚合层也需包括用于唯一确定各聚合层的属性。
聚合层具有对应的聚合间隔。数据簇包括聚合值,并具有数据范围。同时,数据簇和聚合层还具有对应关系,每个数据簇属于唯一一个聚合层。
根据聚合层对应的聚合间隔可唯一地确定该聚合层,根据数据簇的数据范围可唯一地确定该数据簇。聚合间隔、数据范围、数据簇与聚合层的对应关系,这三者中,通过任意二者即可得到第三者。数据范围的跨度即聚合间隔,根据以数据簇的数据范围的跨度和各数据簇对应的聚合值间隔,即可确定数据簇所述的聚合层;同样地,在已知数据簇所属的聚合层以及所属聚合层对应的聚合间隔的情况下,确定数据簇对应数据范围的左边界或者右边界即可获知数据簇的数据范围。
可选地,聚合层包括聚合间隔及数据簇列表。聚合层对应的聚合间隔记录在聚合层的聚合间隔这一属性中,数据簇列表中记录了属于本聚合层的数据簇的列表,属于本聚合层的数据簇为根据本聚合层的聚合间隔,对至少一条数据的第一目标属性的属性值进行聚合计算得到的。
当聚合层对应的聚合间隔为计数值间隔,每个聚合层对应的计数值间隔的数值即可记录在聚合层的聚合间隔中。当聚合层对应的聚合间隔为时间间隔,由于时间间隔具有单位,可以按照统一的单位,将各聚合层对应的时间间隔的数值记录在聚合层的聚合间隔中,也可以分别记录时间间隔的单位和数值。此时,聚合层的聚合间隔包括时间间隔长度和时间单位。聚合间隔包括时间间隔长度和时间单位时,聚合层对应的时间间隔根据不同的时间单位,有不同的记录形式。下举例说明,例如,一聚合层对应的时间间隔为60秒,那么,该聚合层的时间间隔长度为60,时间单位为秒,同时也可以记录该聚合层的时间间隔长度为1,时间单位为分钟。
除聚合之外,数据簇还包括数据范围参数。数据范围参数用于确定数据簇对应的属性值。可以将数据簇的数据范围直接记录在数据范围参数中。此外,数据范围参数也可以不直接记录数据簇的数据范围,以减小存储的数据量。可选地,将数据簇的数据范围的左边界或者右边界记录在数据范围参数中,根据数据簇所属的聚合层的聚合间隔,即可得到数据簇的数据范围。可选地,也可将对各数据簇的数据范围进行排序,将数据范围的索引序号作为数据范围参数中。本申请实施例中,按照各数据范围的左边界或右边界的数值大小对同一聚合层内各数据簇的数据范围进行排序,每个数据范围的左边界或者右边界的序号即为对应数据范围的序号。属于同一聚合层的各数据簇的数据范围是根据聚合层的聚合间隔参数在一个连续的区间内选取的。根据该索引序号和聚合层的聚合间隔即可确定数据簇的数据范围。举例说明,当聚合层的聚合间隔参数为5,数据范围1-5为第1个数据范围,数据范围6-10为第2个数据范围,以此类推。
可选地,聚合层还包括聚合算法属性。
如前所述,聚合运算由多种算法,例如统计计算和算术运算。可选地,数据库中存储有至少一条数据在多种聚合算法下,根据M个不同的聚合间隔计算得到的数据簇。得到每个数据簇所用的聚合算法记录在该数据簇所属的聚合层中。考虑需查询不同的待聚合数据在不同聚合算法下的聚合值的情况,聚合层还包括聚合算法,聚合算法用于表示进行聚合计算时所采用的聚合算法。此时,根据聚合层的聚合间隔参数和聚合算法可以唯一地确定聚合层。
示例性地,表1为聚合间隔是计数值间隔时的一种聚合层的数据结构。
表1
表2为聚合间隔是时间间隔时的一种聚合层的数据结构。
表2
表3为一种数据簇的数据结构。
数据范围参数 | 聚合值 | …… |
1-100 | 2800 | |
101-200 | 3899 | |
201-300 | 5098 |
表3
表4为一种数据簇的数据结构,其中索引序号为1的数据簇的数据范围为1-100,索引序号为2的数据簇的数据范围为101-200,索引序号为3的数据簇的数据范围为201-300。
索引序号 | 聚合值 | …… |
1 | 2800 | |
2 | 3899 | |
2 | 5098 |
表4
表1、表2、表3和表4所示的数据结构仅为示例性地说明数据簇、聚合层的数据结构,除了表中所示的属性,数据簇和聚合层中还可以包括其他属性,本申请实施例对此不做限制。
除此之外,在数据库中设置数据渠,数据渠中包括具有各不相同的聚合间隔的M个聚合层。
基于上述数据结构,本申请实施例提供一种对数据库中至少一条数据进行聚合的方法。即,当数据流中的第N条数据进入数据渠,进行数据渠中M个聚合层中数据簇的刷新。聚合层中数据簇的刷新的方法包括根据第N条数据的第一目标属性的属性值,获得第N条数据在M个聚合层中分别对应的M个数据簇,具体可见步骤s302-s304,在此不再赘述。
当每个聚合层包括本聚合层包含的数据簇的列表,根据第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,还需更新第m个聚合层的数据簇列表。
当数据簇为表4中所示的数据结构,根据第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,还需确定并存储M个数据簇中每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序。
基于上述数据结构和上述方法,根据查询获取聚合值的方法可参见上述方法s401-s406,在此不再赘述。
事实上,通常情况下,业务的需求只关注数据库中属于一定数据范围内的数据的聚合值,例如,只关注数据库中11:00-12:00期间生成的数据,或者只关注数据库中计数值在100-200之间的数据。因此,只对数据库中第一目标属性的属性值属于数据渠的数据范围的至少一条数据做聚合计算。数据渠的数据范围由聚合起始标记和容量确定。此时,根据第N条数据的第一目标属性的属性值,获得第N条数据在M个聚合层中分别对应的M个数据簇之前,还需要根据数据渠的聚合起始标记和容量确定所述数据渠的数据范围;并确定第N条数据的第二目标属性的属性值属于数据渠的数据范围。
进一步地,在一些场景下,数据渠的数据范围会随时间发生或进入数据库的数据量发生变化。例如,银行的数据库系统中会存储所有的历史数据,但对数据的实时分析处理只关注最近8小时内产生的数据或最近10000次交易所产生的数据。当数据渠的数据范围发生变化时,会导致T个数据簇中的部分数据簇的数据范围超过数据渠的更新后的数据范围,需要删除部分的老化数据簇。具体地,在数据库中存储的数据簇中查找数据范围超过更新后的数据渠的数据范围的数据簇,查找到的数据簇即为老化数据簇。若查找到的第k个数据簇的数据范围与数据渠的数据范围无交集,删除该查找到的第k个数据簇;若查找到的第k个数据簇的数据范围不属于数据渠的数据范围,且与数据渠的数据范围有交集,需根据老化数据的第一目标属性的属性值刷新该查找到的第k个数据簇。老化数据簇的数据范围为数据渠的数据范围与查找到的第k个数据簇的数据范围的差。
可选地,对数据渠范围的更新包括对聚合起始标记的更新和/或对容量的更新。按照固定的更新间隔对数据渠范围进行更新,每次数据渠范围的更新后,均执行上述“删除M个聚合中的老化数据簇”的步骤。
以上介绍的各数据处理方法均用于数据库系统中的任一数据库。下面介绍上述数据簇生成、聚合值查询等数据处理的方法在数据库系统中的应用。
当数据库系统仅包含一个数据库,数据库系统对数据处理的方法即如上所述。
当数据库系统包含至少两个数据库时,每个数据库都按照上述数据处理的方法,根据至少一个聚合层对应的聚合间隔,对各数据库中的至少一条数据进行聚合计算,得到至少一个数据簇。数据库系统接收到查询请求后,数据库系统的数据库管理器将该查询请求分发至数据库系统中的各数据库。各数据库按照上述数据处理方法,根据存储的数据簇或者窗口视图,得到该聚合值请求在每个数据库中的查询结果,并将查询结果返回给数据库系统。数据库系统对各数据库返回的结果进行聚合计算,得到该查询请求在数据库系统中的查询结果。
本申请实施例还提供一种控制器如图5所示。控制器500包括获取单元510、获取单元520、存储单元530。控制器500可以作为图1a中数据库110中的控制器112,也可以作为图1b中关系型数据库中140的控制器114。当控制器500作为图1b中的控制器114时,获取单元510、获取单元520、存储单元530为查询计划处理器142中的功能模块。
获取单元510用于:获取至少一条数据,每条数据包括至少一个属性。
获取单元520用于:根据M个聚合间隔,分别对所述至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇,其中,所述M个聚合间隔各不相同,每个数据簇包括聚合值,每个数据簇的聚合值为根据本数据簇所对应的聚合间隔针对所述第一目标属性的属性值聚合计算得到,所述M为大于等于2的整数,T≥M。
存储单元530用于:存储所述T个数据簇。
可选地,获取单元520还用于:预先设置M个聚合层,每个聚合层对应一个聚合间隔,所述T个数据簇归属所述M个聚合层,所述M个聚合间隔的任意两个相邻的聚合间隔具有父子关系,父聚合间隔为子聚合间隔的整数倍。
可选地,获取单元510用于获取至少一条数据,包括:接收数据流中的第N条数据,N为大于等于1的整数。获取单元520用于根据M个聚合间隔,分别对所述至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇,包括:根据所述第N条数据的第一目标属性的属性值,确定所述第N条数据在所述M个聚合层中分别对应的M个数据簇;如果所述数据库中已经生成所述第N条数据在第m个聚合层对应的数据簇,则根据所述第N条数据的第一目标属性的属性值对所述已经生成的数据簇进行刷新得到刷新的数据簇,m为变量且取值范围为1≤m≤M;如果所述数据库中未生成所述第N条数据在第m个聚合层对应的数据簇,对所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇。
可选地,获取单元510用于获取至少一条数据包括:获取所述数据库中存储的至少一条数据。获取单元520用于根据M个聚合间隔,分别对所述至少一条数据的第一目标属性的属性值进行聚合计算得到T个的数据簇,包括:根据第m个聚合间隔,对所述至少一条数据的第一目标属性的属性值进行聚合计算得到第m个聚合层,所述第m个聚合层包括至少一个数据簇,m为变量且取值范围为1≤m≤M。
可选地,控制器500还包括查询单元540,查询单元540用于:接收查询请求,所述查询请求包含查询范围。根据所述查询范围,在所述M个聚合层中查询得到至少两个数据簇,其中,所述查询得到的至少两个数据簇归属于不同的聚合层,所述查询得到的每个数据簇的数据范围与所述查询范围存在交集,所述查询得到的全部数据簇的数据范围的并集与所述查询范围相同。对所述查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
可选地,查询单元540用于根据所述查询范围,在所述M个聚合层中查询得到至少两个数据簇,具体包括:
将所述查询范围划分为两个属性值区间,得到第一查询区间和第二查询区间;
在初始聚合层内,查询匹配所述第一查询区间所述第二查询区间的数据簇,其中,所述匹配的数据簇的数据范围属于所述第一查询区间或所述第二查询区间,所述初始聚合层为所述M个聚合层中对应聚合间隔最大的聚合层;
根据所述匹配的数据簇更新所述第一查询区间和所述第二查询区间,其中,更新后的第一查询区间和更新后的第二查询区间为所述查询范围的子集,所述匹配的数据簇的数据范围不属于所述更新后的第一查询区间和所述更新后的第二查询区间;
在非初始聚合层内,查询匹配所述更新后的第一查询区间和所述更新后的第二查询区间的数据簇,所述查询得到的全部数据簇的数据范围的并集为所述更新后的第一查询区间和所述更新后的第二查询区间,所述匹配的数据簇及所述查询得到的全部数据簇即为所述至少两个数据簇。
可选地,所述根据M个聚合间隔,分别对所述至少一条数据的第一目标属性的属性值进行聚合计算得到T个数据簇之后,获取单元520还用于:更新每个数据簇所属的聚合层的数据簇列表。
可选地,存储单元530还用于:
确定每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序;
分别存储每个数据簇的索引序号。
可选地,获取单元520还用于:设置数据渠,所述数据渠包括聚合起始标记、所述数据渠的容量以及所述数据渠所包含的聚合层的列表。
本申请实施例还提供另一种控制器如图6所示。控制器600包括获取单元610、获取单元620、存储单元630。控制器600可以作为图1a中数据库110中的控制器112,也可以作为图1b中关系型数据库中140的控制器114。当控制器600作为图1b中的控制器114时,获取单元610、获取单元620、存储单元630为查询计划处理器142中的功能模块。
获取单元610用于:获取进入所述数据渠的数据流中的第N条数据;
获取单元620用于:
进行所述M个聚合层中数据簇的刷新,N为大于等于1的整数;
所述M个聚合层中数据簇的刷新包括:
根据所述第N条数据的第一目标属性的属性值,获得所述第N条数据在所述M个聚合层中分别对应的M个数据簇,其中,如果所述数据库中已生成所述第N条数据在第m个聚合层对应的数据簇,则根据所述第N条数据的第一目标属性的属性值对所述已经生成的数据簇的聚合值进行刷新,如果所述数据库中未生成所述第N条数据在第m个聚合层对应的数据簇,根据所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇,m为变量且取值范围为1≤m≤M;
存储单元630用于:存储所述M个数据簇。
可选地,获取单元620还用于:
刷新所述数据渠的容量信息或所述数据渠的聚合起始标记;
根据刷新后的所述数据渠的容量信息或刷新后的所述数据渠的聚合起始标记,删除所述M个聚合中的老化数据簇。
可选地,存储单元630还用于:
刷新所述数据渠的容量信息或所述数据渠的聚合起始标记;
根据刷新后的所述数据渠的容量信息或刷新后的所述数据渠的聚合起始标记,删除所述M个聚合中的老化数据簇。
可选地,根据所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,存储单元630还用于:更新第m个聚合层的数据簇列表。
可选地,存储单元630还用于:
确定所述M个数据簇中每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序;
存储单元630还用于:分别存储每个数据簇的索引序号。
可选地,控制器600还包括查询单元,查询单元640用于:
接收查询请求,所述查询请求包含查询范围;
根据所述查询范围,在所述M个聚合层中查询得到所述T个数据簇中的至少两个数据簇,其中,所述查询得到的至少两个数据簇归属于不同的聚合层,所述查询得到的每个数据簇的数据范围与所述查询范围存在交集,所述查询得到的全部数据簇的数据范围的并集与所述查询范围相同;
对所述查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
可选地,查询单元640用于根据所述查询范围,在所述M个聚合层中查询得到所述T个数据簇中的至少两个数据簇,具体包括:
将所述查询范围划分为两个属性值区间,得到第一查询区间和第二查询区间;
在初始聚合层内,查询匹配所述第一查询区间所述第二查询区间的数据簇,其中,所述匹配的数据簇的数据范围属于所述第一查询区间或所述第二查询区间,所述初始聚合层为所述M个聚合层中对应聚合间隔最大的聚合层;
根据所述匹配的数据簇更新所述第一查询区间和所述第二查询区间,其中,更新后的第一查询区间和更新后的第二查询区间为所述查询范围的子集,所述匹配的数据簇的数据范围不属于所述更新后的第一查询区间和所述更新后的第二查询区间;
在非初始聚合层内,查询匹配所述更新后的第一查询区间和所述更新后的第二查询区间的数据簇,所述查询得到的全部数据簇的数据范围的并集为所述更新后的第一查询区间和所述更新后的第二查询区间,所述匹配的数据簇及所述查询得到的全部数据簇即为所述至少两个数据簇。
本申请实施例还提供一种计算设备如图7所示。计算设备700可以包括处理单元710和通信接口720,处理单元710用于执行计算设备上运行的操作系统以及各种软件程序所定义的功能,包括前述控制器500的功能,或者前述控制器600的功能。通信接口720用于与其他设备进行通信交互,其他设备可以是其它计算设备,具体地,通信接口720可以是网络适配卡。可选地,该计算设备还可以包括输入/输出接口730,输入/输出接口730连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口730可以为鼠标、键盘、显示器、或者光驱等。可选地,该计算设备700还可以包括辅助存储器740,一般也称为外存,辅助存储器740的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。处理单元710可以有多种具体实现形式,例如处理单元710可以包括处理器711和内存712,处理器711根据内存712中存储的程序指令执行相关的操作,处理器711可以为中央处理器(CPU)或图像处理器(graphics processing unit,GPU),处理器711可以是单核处理器或多核处理器。处理单元710也可以单独采用内置处理逻辑的逻辑器件来实现,例如现场可编程门阵列(英文全称:Field Programmable GateArray,缩写:FPGA)或数字信号处理器(英文:digital signal processor,DSP)等。此外,图7仅仅是一个计算设备的一个例子,计算设备可能包含相比于图7展示的更多或者更少的组件,或者有不同的组件配置方式。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种数据库中的数据处理的方法,其特征在于,所述数据库用于存储多条数据,每条数据包括至少一个属性;
所述数据库中设置有数据渠,所述数据渠中包括M个聚合层,每个聚合层对应一个聚合间隔,M个聚合间隔各不相同;
所述方法包括:
当数据流中的第N条数据进入所述数据渠,进行所述M个聚合层中数据簇的刷新得到T个数据簇,N为大于等于1的整数,T≥M;
存储所述T个数据簇;
其中,所述刷新包括:
根据所述第N条数据的第一目标属性的属性值,获得所述第N条数据在所述M个聚合层中分别对应的M个数据簇,其中,如果所述数据库中已生成所述第N条数据在第m个聚合层对应的数据簇,则根据所述第N条数据的第一目标属性的属性值对所述已经生成的数据簇的聚合值进行刷新,如果所述数据库中未生成所述第N条数据在第m个聚合层对应的数据簇,根据所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇,m为变量且取值范围为1≤m≤M。
2.根据权利要求1所述的方法,其特征在于,所述数据渠还包括聚合起始标记和容量信息,所述方法还包括:
根据所述数据渠的聚合起始标记和容量确定所述数据渠的数据范围;
确定所述第N条数据的第二目标属性的属性值属于所述数据渠的数据范围后,执行所述M个聚合层中数据簇的刷新。
3.根据权利要求2所述的方法,其特征在于,则所述方法还包括:
当刷新所述数据渠的容量信息和/或所述数据渠的聚合起始标记,根据刷新后的所述数据渠的容量信息或刷新后的所述数据渠的聚合起始标记,删除所述M个聚合中的老化数据簇。
4.根据权利要求1-3中任一所述的方法,其特征在于,每个聚合层包括本聚合层包含的数据簇的列表;
所述根据所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,所述方法还包括:
更新第m个聚合层的数据簇列表。
5.根据权利要求1-4中任一所述的方法,其特征在于,所述方法还包括:
确定所述M个数据簇中每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序;
分别存储每个数据簇的索引序号。
6.根据权利要求1-7中任一所述的方法,其特征在于,所述数据库中存储T个数据簇,所述T个数据簇为根据所述M个聚合间隔,分别对所述至少一条数据的第一目标属性的属性值进行聚合计算得到的,T≥M;
在所述方法还包括:
接收查询请求,所述查询请求包含查询范围;
根据所述查询范围,在所述M个聚合层中查询得到所述T个数据簇中的至少两个数据簇,其中,所述查询得到的至少两个数据簇归属于不同的聚合层,所述查询得到的每个数据簇的数据范围与所述查询范围存在交集,所述查询得到的全部数据簇的数据范围的并集与所述查询范围相同;
对所述查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
7.根据权利要求6中的方法,其特征在于,所述根据所述查询范围,在所述M个聚合层中查询得到所述T个数据簇中的至少两个数据簇,具体包括:
根据所述查询范围,从第一聚合层递减逐层匹配获得每个聚合层上与所述查询范围匹配的数据簇,其中,所述第一聚合层为聚合间隔最大的聚合层。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述聚合间隔包括聚合时间间隔或聚合计数值间隔。
9.一种数据处理设备,其特征在于,所述数据处理设备用于处理数据库中的至少一条数据,每条数据包括至少一个属性;所述数据库中设置有数据渠,所述数据渠中包括M个聚合层,每个聚合层对应一个聚合间隔,M个聚合间隔各不相同;
所述设备包括获取单元、刷新单元和存储单元;
所述获取单元用于:获取进入所述数据渠的数据流中的第N条数据;
所述获取单元用于:
进行所述M个聚合层中数据簇的刷新,N为大于等于1的整数;
所述刷新包括:
根据所述第N条数据的第一目标属性的属性值,获得所述第N条数据在所述M个聚合层中分别对应的M个数据簇,其中,如果所述数据库中已生成所述第N条数据在第m个聚合层对应的数据簇,则根据所述第N条数据的第一目标属性的属性值对所述已经生成的数据簇的聚合值进行刷新,如果所述数据库中未生成所述第N条数据在第m个聚合层对应的数据簇,根据所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇,m为变量且取值范围为1≤m≤M;
所述存储单元用于:存储所述M个数据簇。
10.根据权利要求9所述的设备,其特征在于,所述数据渠还包括聚合起始标记和容量信息,所述获取单元还用于:
根据所述数据渠的聚合起始标记和容量确定所述数据渠的数据范围;
确定所述第N条数据的第二目标属性的属性值属于所述数据渠的数据范围后,执行所述M个聚合层中数据簇的刷新。
11.根据权利要求10所述的设备,其特征在于,所述存储单元还用于:
当刷新所述数据渠的容量信息或所述数据渠的聚合起始标记,根据刷新后的所述数据渠的容量信息或刷新后的所述数据渠的聚合起始标记,删除所述M个聚合中的老化数据簇。
12.根据权利要求9-11中任一所述的设备,其特征在于,每个聚合层包括本聚合层包含的数据簇的列表;
根据所述第N条数据的第一目标属性的属性值进行聚合计算生成数据簇之后,所述存储单元还用于:
更新第m个聚合层的数据簇列表。
13.根据权利要求9-12中任一所述的设备,其特征在于,所述存储单元还用于:
确定所述M个数据簇中每个数据簇的索引序号,其中,每个数据簇的索引序号用于表示当前数据簇在其所归属的聚合层中的排序;
所述存储单元还用于:分别存储每个数据簇的索引序号。
14.根据权利要求9-13中任一所述的设备,其特征在于,所述数据库中存储T个数据簇,所述T个数据簇为根据所述M个聚合间隔,分别对所述至少一条数据的第一目标属性的属性值进行聚合计算得到的,T≥M;
在所述设备还包括查询单元,所述查询单元用于:
接收查询请求,所述查询请求包含查询范围;
根据所述查询范围,在所述M个聚合层中查询得到所述T个数据簇中的至少两个数据簇,其中,所述查询得到的至少两个数据簇归属于不同的聚合层,所述查询得到的每个数据簇的数据范围与所述查询范围存在交集,所述查询得到的全部数据簇的数据范围的并集与所述查询范围相同;
对所述查询得到的至少两个数据簇包括的聚合值进行聚合计算,得到查询结果。
15.根据权利要求14中的设备,其特征在于,所述查询单元用于根据所述查询范围,在所述M个聚合层中查询得到所述T个数据簇中的至少两个数据簇,具体包括:
根据所述查询范围,从第一聚合层递减逐层匹配获得每个聚合层上与所述查询范围匹配的数据簇,其中,所述第一聚合层为聚合间隔最大的聚合层。
16.根据权利要求10-15中任一项所述的设备,其特征在于,所述聚合间隔包括聚合时间间隔或聚合计数值间隔。
17.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述处理器执行所述存储器中的程序指令,以实现权利要求1-8中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/116954 WO2020098579A1 (zh) | 2018-07-19 | 2019-11-11 | 一种数据处理的方法及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810793637 | 2018-07-19 | ||
CN2018107936379 | 2018-07-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737673A true CN110737673A (zh) | 2020-01-31 |
CN110737673B CN110737673B (zh) | 2022-04-12 |
Family
ID=69236438
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811337593.5A Active CN110737727B (zh) | 2018-07-19 | 2018-11-12 | 一种数据处理的方法及系统 |
CN201811337776.7A Active CN110737673B (zh) | 2018-07-19 | 2018-11-12 | 一种数据处理的方法及系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811337593.5A Active CN110737727B (zh) | 2018-07-19 | 2018-11-12 | 一种数据处理的方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11455323B2 (zh) |
EP (1) | EP3817432A4 (zh) |
CN (2) | CN110737727B (zh) |
WO (1) | WO2020098579A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11973846B1 (en) * | 2022-11-28 | 2024-04-30 | Salesforce, Inc. | Polling command strategy for near real time updates |
CN116595156B (zh) * | 2023-07-17 | 2023-12-19 | 北京普华恒信技术服务有限公司 | 一种知识管理系统及管理方法 |
CN117221241B (zh) * | 2023-11-08 | 2024-01-26 | 杭州鸿世电器股份有限公司 | 一种智能开关控制过程数据传输方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270363A1 (en) * | 2007-01-26 | 2008-10-30 | Herbert Dennis Hunt | Cluster processing of a core information matrix |
CN104750708A (zh) * | 2013-12-27 | 2015-07-01 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
CN105468651A (zh) * | 2014-09-12 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种关系数据库数据查询方法及系统 |
CN107391502A (zh) * | 2016-05-16 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 时间间隔的数据查询方法、装置及索引构建方法、装置 |
CN107562892A (zh) * | 2017-09-06 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种提高ssr违规日志统计性能的方法及装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153603A1 (en) | 2009-12-17 | 2011-06-23 | Yahoo! Inc. | Time series storage for large-scale monitoring system |
US10346375B2 (en) * | 2012-04-26 | 2019-07-09 | Entit Software Llc | In-database parallel analytics |
JP5978993B2 (ja) * | 2012-12-28 | 2016-08-24 | 富士通株式会社 | 情報処理システム制御装置、該プログラム、及び該方法 |
CN103324724B (zh) * | 2013-06-26 | 2017-02-08 | 华为技术有限公司 | 数据处理方法及装置 |
US10466217B1 (en) * | 2013-12-23 | 2019-11-05 | Aclima Inc. | Method to combine partially aggregated sensor data in a distributed sensor system |
CN103997753B (zh) | 2014-06-03 | 2017-11-07 | 杭州东信网络技术有限公司 | 间隔式追加采集移动通信无线网络性能数据的方法 |
EP3134821B1 (en) * | 2015-03-24 | 2022-05-11 | Huawei Technologies Co., Ltd. | System and method for parallel optimization of database query using cluster cache |
CN104951509A (zh) | 2015-05-25 | 2015-09-30 | 中国科学院信息工程研究所 | 一种大数据在线交互式查询方法及系统 |
US20160370338A1 (en) * | 2015-06-22 | 2016-12-22 | Aclima Inc. | Sensor data processing in a distributed sensor system |
US10191962B2 (en) * | 2015-07-30 | 2019-01-29 | At&T Intellectual Property I, L.P. | System for continuous monitoring of data quality in a dynamic feed environment |
WO2017053347A1 (en) * | 2015-09-21 | 2017-03-30 | Equifax, Inc. | Updating attribute data structures to indicate trends in attribute data provided to automated modeling systems |
CN107402863B (zh) * | 2016-03-28 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 一种用于通过日志系统处理业务系统的日志的方法与设备 |
CN106651200A (zh) | 2016-12-29 | 2017-05-10 | 中国西电电气股份有限公司 | 一种工业企业聚合用户电力负荷管理方法和系统 |
US10558647B1 (en) * | 2016-12-30 | 2020-02-11 | Amazon Technologies, Inc. | High performance data aggregations |
JP6751064B2 (ja) * | 2017-09-20 | 2020-09-02 | 株式会社東芝 | データ検索システム、データ検索方法、及びプログラム |
CN107864071B (zh) | 2017-11-02 | 2021-06-22 | 江苏物联网研究发展中心 | 一种面向主动安全的数据动态采集方法、装置及系统 |
-
2018
- 2018-11-12 CN CN201811337593.5A patent/CN110737727B/zh active Active
- 2018-11-12 CN CN201811337776.7A patent/CN110737673B/zh active Active
-
2019
- 2019-05-22 EP EP19838302.8A patent/EP3817432A4/en active Pending
- 2019-11-11 WO PCT/CN2019/116954 patent/WO2020098579A1/zh active Application Filing
-
2021
- 2021-01-15 US US17/149,877 patent/US11455323B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270363A1 (en) * | 2007-01-26 | 2008-10-30 | Herbert Dennis Hunt | Cluster processing of a core information matrix |
CN104750708A (zh) * | 2013-12-27 | 2015-07-01 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
CN105468651A (zh) * | 2014-09-12 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种关系数据库数据查询方法及系统 |
CN107391502A (zh) * | 2016-05-16 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 时间间隔的数据查询方法、装置及索引构建方法、装置 |
CN107562892A (zh) * | 2017-09-06 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种提高ssr违规日志统计性能的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3817432A1 (en) | 2021-05-05 |
WO2020098579A1 (zh) | 2020-05-22 |
CN110737673B (zh) | 2022-04-12 |
EP3817432A4 (en) | 2021-10-20 |
CN110737727B (zh) | 2023-09-29 |
US20210133215A1 (en) | 2021-05-06 |
US11455323B2 (en) | 2022-09-27 |
CN110737727A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200050968A1 (en) | Interactive interfaces for machine learning model evaluations | |
US7080090B2 (en) | Allocation measures and metric calculations in star schema multi-dimensional data warehouse | |
US6748394B2 (en) | Graphical user interface for relational database | |
KR102522274B1 (ko) | 사용자 그룹화 방법 및 장치, 컴퓨터 장비, 컴퓨터 판독가능 저장 매체 및 컴퓨터 프로그램 | |
US20020016924A1 (en) | Database security | |
US20020099692A1 (en) | Aggregate navigation system | |
US11163735B2 (en) | Database capacity estimation for database sizing | |
US11455323B2 (en) | Data processing method and system | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、系统及终端设备 | |
US20120136824A1 (en) | Systems and methods for generating interpolated input data sets using reducted input source objects | |
US7072897B2 (en) | Non-additive measures and metric calculation | |
CN115552392A (zh) | 执行时间动态范围分区变换 | |
CN114372060A (zh) | 数据存储方法、装置、设备及存储介质 | |
US7606828B2 (en) | Delta-mechanism for integration of OLAP-based planning and reporting | |
CN112364021B (zh) | 业务数据处理方法、装置及存储介质 | |
CN108536525B (zh) | 一种宿主机调度方法及装置 | |
US20020035567A1 (en) | Chameleon measure and metric calculation | |
CN112256681A (zh) | 一种空管数字化指标应用系统及方法 | |
CN115759742A (zh) | 企业风险评估方法、装置、计算机设备和存储介质 | |
CN109241048A (zh) | 用于数据统计的数据处理方法、服务器及存储介质 | |
WO2020015453A1 (zh) | 一种数据处理的方法及系统 | |
CN109165238B (zh) | 一种用于生成周期指标数据的数据处理方法及装置 | |
CN112286995B (zh) | 一种数据分析方法、装置、服务器、系统及存储介质 | |
CN111737281B (zh) | 数据库查询方法、装置、电子设备以及可读存储介质 | |
CN114491307B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220225 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |