CN111813800A - 一种基于深度强化学习的流式数据实时近似计算方法 - Google Patents

一种基于深度强化学习的流式数据实时近似计算方法 Download PDF

Info

Publication number
CN111813800A
CN111813800A CN202010914395.1A CN202010914395A CN111813800A CN 111813800 A CN111813800 A CN 111813800A CN 202010914395 A CN202010914395 A CN 202010914395A CN 111813800 A CN111813800 A CN 111813800A
Authority
CN
China
Prior art keywords
data
determining
sample
query
value
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
Application number
CN202010914395.1A
Other languages
English (en)
Other versions
CN111813800B (zh
Inventor
李国良
柴成亮
潘巍巍
唐文升
李开宇
李飞飞
叶翔
王锦志
裘炜浩
丁麒
侯素颖
严华江
欧阳柳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
State Grid Zhejiang Electric Power Co Ltd
Marketing Service Center of State Grid Zhejiang Electric Power Co Ltd
Original Assignee
Tsinghua University
State Grid Zhejiang Electric Power Co Ltd
Marketing Service Center of State Grid Zhejiang Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University, State Grid Zhejiang Electric Power Co Ltd, Marketing Service Center of State Grid Zhejiang Electric Power Co Ltd filed Critical Tsinghua University
Priority to CN202010914395.1A priority Critical patent/CN111813800B/zh
Publication of CN111813800A publication Critical patent/CN111813800A/zh
Application granted granted Critical
Publication of CN111813800B publication Critical patent/CN111813800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于深度强化学习的流式数据实时近似计算方法,方法包括:根据数据表格确定样本属性,样本属性为离散型属性或者数值型属性或者混合型属性;离散型属性的数据表格中所有数据项的取值范围均有限,且均以字符串形式保存;数值型属性的数据表格中所有数据项的取值范围均无限,且均以浮点型数字的形式保存;混合型属性的数据表格中一部分数据项的取值范围有限,且以字符串形式保存,另一部分数据项的取值范围无限,且以浮点型数字的形式保存;基于样本属性生成样本的数据表;根据生成的数据表构建全局统一的样本;当获取到查询请求后,根据查询请求确定选样方案;根据选样方案,对全局统一的样本进行近似查询估计,得到近似结果。

Description

一种基于深度强化学习的流式数据实时近似计算方法
技术领域
本发明涉及数据库技术领域,尤其涉及一种基于深度强化学习的流式数据实时近似计算方法。
背景技术
在数据库管理实务中,针对海量数据进行在线聚合查询是一项十分广泛的应用,其查询结果可以帮助数据库使用者、管理者乃至于其他模块进行进一步的重要决策。对比于OLTP(Online Transaction Processing,联机事务处理过程)中更关注于面向交易的单个事务的结果,在线聚合查询致力于OLAP(Online Analytical Processing,联机分析处理),更关注于快速地对海量业务数据给出多维度的分析,从统计信息发现数据特征,支持实时决策。
现代数据库中,为了便于进行数据管理与查询,已经涌现出多种对于数据的索引技术,这其中包括软件层面与硬件层面的优化,这些索引技术有助于更快的检索到在OLAP中所需要的数据记录与相关列,从而进行计算分析。针对不同的业务需求,行数据库与列数据库分别被应用于不同的应用场景以优化查询过程。同时,数据库引擎中,会通过对各子模块(例如代价估计器、连接操作调度)进行调优,以改进查询性能。然而在针对大规模海量数据的场景下,传统的优化方法无法满足实时查询对于快速响应的需求,随着海量流式数据在日志文件、金融交易、电商订单、地理信息等应用中体量的日益增长,传统方法再也无法满足OLAP的需求。
OLAP的许多查询并不要求百分之百的准确,其对于误差有一定的容忍度。在有足够置信度的近似估算下,可以根据近似结果给出决策,进而大大的节约计算时间。例如,若要查询一家电商公司过去一年的平均销售额,需要检索几千万行的数据,而后进行求平均运算。这往往需要访问保存在不同服务器、不同扇区的数据,而且进行计算的过程也较为耗时。然而,如果数据分布均匀,则可以只访问其中一个扇区,抽取出其中的1000行,用这1000行的数据平均值,近似代替全量几千万行数据的平均值。因此,在过去的几十年中,许多研究者提出了针对这一问题的处理办法,它们或基于采样技术(sampling)应用全量数据的一个子集,应用数理统计理论,给出一个包含置信区间的近似估算。或基于数据离线建立直方图、进行小波变换或采集其他统计信息、建立物化视图等。这些方法都可以在一定程度上以高响应速度给出近似查询结果。
然而许多痛点问题仍然未能得到很好地解决。例如传统方法大部分基于查询日志对于未来的查询给出了假设,通常是假设未来查询相关的列和查询日志完全一致,所有建立的离线样本都是基于这些列建立的。这样新的查询类型出现时,现有的离线样本无法支持新查询。另外针对新的流式数据的不断产生,传统方法无法动态地调整采样策略与答案生成策略。另外,传统方法大部分基于每一种查询的列或者列的组合都产生一个样本,这样的方法会占用大量的时间去生成这些样本,大量的空间去储存这些样本,同时设计相应的索引去支持检索。
发明内容
为了解决现有技术的上述问题,本发明提供一种基于深度强化学习的流式数据实时近似计算方法。
为了达到上述目的,本发明采用的主要技术方案包括:
一种基于深度强化学习的流式数据实时近似计算方法,方法包括:
S101,根据数据表格确定样本属性,样本属性为离散型属性,或者,数值型属性,或者,混合型属性;离散型属性的数据表格中所有数据项的取值范围均有限,且均以字符串形式保存;数值型属性的数据表格中所有数据项的取值范围均无限,且均以浮点型数字的形式保存;混合型属性的数据表格中一部分数据项的取值范围有限,且以字符串形式保存,另一部分数据项的取值范围无限,且以浮点型数字的形式保存;
S102,基于样本属性生成样本的数据表;
S103,根据生成的数据表构建全局统一的样本;
S104,当获取到查询请求后,根据查询请求确定选样方案;
S105,根据选样方案,对全局统一的样本进行近似查询估计,得到近似结果。
可选地,当所述样本属性为离散型属性时;
S102具体包括:
S102-1-1,确定数据表格中每个数据项的所有取值,形成每个数据项的取值集合;
S102-1-2,对于集合中的每个元素,确定其出现次数;
S102-1-3,将各数据项名称、数据项对应的所有取值、各取值的出现次数形成样本的数据表。
可选地,当所述样本属性为数值型属性时;
所述S102具体包括:
S102-2-1,分别将数据表格中各数据项的浮点型数字进行从小到大排序;
S102-2-2,针对每个数据项,
建立一个新空分组,并将其确定为当前分组;
依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;其中,a为预设相对误差,a为c的开方;其中,c为b与N的平方的商,b为所有i的(xi-max)*(xi-min)的绝对值的和,N为排列的浮点型数字总数量,xi为排列的第i个浮点型数字,i为排列的序号标识,max为排列的最后一个浮点型数字,min为排列的首个浮点型数字;
从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数;
S102-2-3,将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成样本的数据表。
可选地,当所述样本属性为混合型属性时;
所述S102具体包括:
S102-3-1,获取数据表格中的数值属性数据项,所述数值属性数据项取值范围无限,且以浮点型数字的形式保存;
S102-3-2,分别将各数值属性数据项的浮点型数字进行从小到大排序;
S102-3-2,针对每个数值属性数据项,
建立一个新空分组,并将其确定为当前分组;
依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;其中,a为预设相对误差,a为c的开方;其中,c为b与N的平方的商,b为所有i的(xi-max)*(xi-min)的绝对值的和,N为排列的浮点型数字总数量,xi为排列的第i个浮点型数字,i为排列的序号标识,max为排列的最后一个浮点型数字,min为排列的首个浮点型数字;
从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数;
S102-3-3,将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成第二数据表;
S102-3-4,对于数据表格中的非数值属性数据项,确定每个非数值属性数据项的取值集合;
S102-3-5,对于集合中的每个元素,确定其出现次数;
S102-3-6,将各非数值属性数据项名称、非数值属性数据项对应的所有取值、各取值的出现次数形成第一数据表;
S102-3-7,将第一数据表和第二数据表均作为样本的数据表。
可选地,S103具体包括:
S103-1,确定生成的样本中所有数据项的有效组合;
S103-2,对有效组合进行冗余分析,得到去冗余的有效组合;
S103-3,对于任一有效组合,建立其对应的备选集合;从生成样本的数据表的头至尾依次取一行数据,若该行数据的上述任一有效组合的取值未存在备选集合中,则将该行数据存入备选集合中;
S103-4,将各有效组合及其备选集合作为全局统一的样本。
可选地,S104具体包括:
S104-1,当获取到查询请求后,根据查询请求确定查询数据项;
S104-2,若查询数据项取值范围有限,且以字符串形式保存,则确定选样方案为离散选样方案,若查询数据项取值范围无限,且以浮点型数字的形式保存,则确定选样方案为数值选样方案。
可选地,全局统一的样本包括数据项名称、数据项对应的所有取值、各取值的出现次数,和/或,全局统一的样本包括数据项名称、数据项对应的分组、各分组的枢纽点和规模数;
S105具体包括:
S105-1,从全局统一的样本中选取与查询数据项组合对应的样本数据;
S105-2,对于离散选样方案,将对应的样本数据中,将查询数据项组合对应的出现次数与调整系数的积确定为查询结果;对于数值选样方案,将对应的样本数据中,将查询数据项组合对应的规模数与调整系数的积确定为查询结果;
调整系数初始值为1。
可选地,S105之后还包括:
S106-1,获取对近似结果的准确度评价值,所述准确度评价值为0至1之间的小数,数值越高表示近似查询结果越准确;
S106-2,根据所述准确度评价值确定收益值;
S106-3,若收益值与调整系数之差的绝对值大于0.13,则将调整系数的值更新为收益值。
可选地,S106-2具体包括:
S106-2-1,确定查询请求的响应时间t;
S106-2-2,确定收益值=准确度评价值*t/历史查询请求响应平均时间。
本发明的有益效果是:根据数据表格确定样本属性,样本属性为离散型属性,或者,数值型属性,或者,混合型属性;离散型属性的数据表格中所有数据项的取值范围均有限,且均以字符串形式保存;数值型属性的数据表格中所有数据项的取值范围均无限,且均以浮点型数字的形式保存;混合型属性的数据表格中一部分数据项的取值范围有限,且以字符串形式保存,另一部分数据项的取值范围无限,且以浮点型数字的形式保存;基于样本属性生成样本;根据生成的样本构建全局统一的样本;当获取到查询请求后,根据查询请求确定选样方案;根据选样方案,对全局统一的样本进行近似查询估计,得到近似结果。
附图说明
图1为本申请一实施例提供的一种基于深度强化学习的流式数据实时近似计算方法的流程示意图;
图2为本申请一实施例提供的一种基于深度强化学习的流式数据实时近似计算方法的实现结构示意图;
图3为本申请一实施例提供的一种基于深度强化学习的流式数据实时近似计算方法产生离线样本的具体实例示意图;
图4为本申请一实施例提供的一种五种查询分别对应的离线样本生成方案的示意图;
图5为本申请一实施例提供的一种应用全集覆盖策略去解决最优样本生成问题的示意图;
图6为本申请一实施例提供的一种QCS产生子集的示意图;
图7为本申请一实施例提供的另一种QCS产生子集的示意图;
图8为本申请一实施例提供的一种深度强化学习调整样本选择策略的示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
在数据库管理实务中,针对海量数据进行在线聚合查询是一项十分广泛的应用,其结果可以帮助数据库使用者、管理者乃至于其他模块进行进一步的重要决策。在线聚合查询致力于OLAP、更关注于快速地对海量业务数据给出多维度的分析,从统计信息发现数据特征,支持实时决策。现代数据库中,为了便于进行数据管理与查询,已经涌现出多种对于数据的索引技术,这其中包括软件层面与硬件层面的优化,这些索引技术可以帮助我们更快的检索到在OLAP中所需要的数据记录与相关列,进而进行聚合计算。然而在针对大规模海量数据的场景下,传统的优化方法无法满足实时查询对于快速响应的需求,随着海量流式数据在日志文件、金融交易、电商订单、地理信息等应用中体量的日益增长,传统方法再也无法满足企业级OLAP的需求。本方案致力于设计一种全局的统一样本,可以支持动态的、变化的查询集合与数据集,产生最优化样本生成方案与近似查询答案生成方案。该模型可以利用历史数据生成全局的统一样本,再应用深度强化学习技术,通过新增数据与外在变化动态地调整近似查询答案生成方案。其结果可以在有限的时间内,大幅度提高近似查询的准确性并缩短响应时间。
参见图1,本方案的实现过程如下。
该方法的实现架构如图2所示:
(1)原始数据存储于底层数据库中、这一数据库既可以是单机型数据库、也可以是分布式数据库。
(2)针对历史数据集和查询集合,在预设的相对误差之下,计算出一个底层数据库中原始数据的一个子集,这个子集虽然只包含了一部分数据,但是却覆盖了原数据集的所有重要信息。
(3)当用户给定一个查询或一个批次的查询时,查询处理模块会筛选、选择要用到的行和列,并重写查询。
(4)给出近似计算结果,同时包含相对误差与置信度。
S101,根据数据表格确定样本属性。
其中,样本属性为离散型属性,或者,数值型属性,或者,混合型属性。
离散型属性的数据表格中所有数据项的取值范围均有限,且均以字符串形式保存。
数值型属性的数据表格中所有数据项的取值范围均无限,且均以浮点型数字的形式保存。
混合型属性的数据表格中一部分数据项的取值范围有限,且以字符串形式保存,另一部分数据项的取值范围无限,且以浮点型数字的形式保存。
S102,基于样本属性生成样本的数据表。
若样本属性为离散型属性,则通过离散式属性的样本生成方案生成样本。若样本属性为数值型属性,则通过纯数值型属性的样本生成方案生成样本。若样本属性为混合型属性,则对于取值范围有限,且以字符串形式保存的数据项通过离散式属性的样本生成方案生成该数据项对应的样本,对于取值范围无限,且以浮点型数字的形式保存的数据项通过纯数值型属性的样本生成方案生成该数据项对应的样本。
1、离散式属性的样本生成方案
S102-1-1,确定数据表格中每个数据项的所有取值,形成每个数据项的取值集合。
S102-1-2,对于集合中的每个元素,确定其出现次数。
S102-1-3,将各数据项名称、数据项对应的所有取值、各取值的出现次数形成样本的数据表。
例如,若样本属性为离散型属性,则确定数据表格中每个数据项的所有取值,形成每个数据项的取值集合。对于集合中的每个元素,确定其出现次数。将各数据项名称、数据项对应的所有取值、各取值的出现次数形成样本的数据表。
2、纯数值型属性的样本生成方案
S102-2-1,分别将数据表格中各数据项的浮点型数字进行从小到大排序。
S102-2-2,针对每个数据项,
建立一个新空分组,并将其确定为当前分组。
依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为当前分组中的尾元素。否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为当前分组中的尾元素。其中,a为预设相对误差。
如,
Figure 446479DEST_PATH_IMAGE001
a为预设相对误差,N为排列的浮点 型数字总数量,xi为排列的第i个浮点型数字,i为排列的序号标识,max为排列的最后一个 浮点型数字,min为排列的首个浮点型数字。
从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数。
S102-2-3,将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成样本的数据表。
例如,若样本属性为数值型属性,则分别将数据表格中各数据项的浮点型数字进行从小到大排序。针对每个数据项,建立一个新空分组,并将其确定为当前分组。依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为当前分组中的尾元素。否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为当前分组中的尾元素。其中,a为预设相对误差。从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数。将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成样本的数据表。
3、若样本属性为混合型属性,则
S102-3-1,获取数据表格中的数值属性数据项,数值属性数据项取值范围无限,且以浮点型数字的形式保存。
S102-3-2,分别将各数值属性数据项的浮点型数字进行从小到大排序。
S102-3-2,针对每个数值属性数据项,
建立一个新空分组,并将其确定为当前分组。
依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为当前分组中的尾元素。否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为当前分组中的尾元素。其中,a为预设相对误差。
a为c的开方。
其中,c为b与N的平方的商,b为所有i的(xi-max)*(xi-min)的绝对值的和,N为排列的浮点型数字总数量,xi为排列的第i个浮点型数字,i为排列的序号标识,max为排列的最后一个浮点型数字,min为排列的首个浮点型数字。
从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数。
S102-3-3,将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成第二数据表。
S102-3-4,对于数据表格中的非数值属性数据项,确定每个非数值属性数据项的取值集合。
S102-3-5,对于集合中的每个元素,确定其出现次数。
S102-3-6,将各非数值属性数据项名称、非数值属性数据项对应的所有取值、各取值的出现次数形成第一数据表。
S102-3-7,将第一数据表和第二数据表均作为样本的数据表。
S103,根据生成的数据表构建全局统一的样本。
全局统一的样本构建过程如下:
S103-1,确定生成的样本中所有数据项的有效组合。
S103-2,对有效组合进行冗余分析,得到去冗余的有效组合。
S103-3,对于任一有效组合,建立其对应的备选集合。从生成样本的数据表的头至尾依次取一行数据,若该行数据的上述任一有效组合的取值未存在备选集合中,则将该行数据存入备选集合中。
S103-4,将各有效组合及其备选集合作为全局统一的样本。
例如:
S1:将所有的查询组合类型进行冗余分析,将多余的QCS(Query Column Set,可能的列的组合)去除,保留最少的QCS以覆盖所有的查询列信息。也即是说,对于剩余有限的QCS进行了离线样本建立,就足以支撑所有的查询。
S2:依据扫描式算法,建立全局统一样本。
在全局统一样本的创建过程中,致力于找到该表格的这样一个子集:采集最少的行数覆盖到该表格所有可能取到的值。如从头到尾将原数据表格全部扫描一遍。如果当前的元组覆盖了新的元素取值,则将该元组放入备选集合。直到扫描完整张表。再如重复扫描全表,每一次找出覆盖新元素最多的元组,直到所有元素都已经被当前备选集中的元组包含。
S104,当获取到查询请求后,根据查询请求确定选样方案。
具体的,
S104-1,当获取到查询请求后,根据查询请求确定查询数据项。
S104-2,若查询数据项取值范围有限,且以字符串形式保存,则确定选样方案为离散选样方案,若查询数据项取值范围无限,且以浮点型数字的形式保存,则确定选样方案为数值选样方案。
S105,根据选样方案,对全局统一的样本进行近似查询估计,得到近似结果。
全局统一的样本包括数据项名称、数据项对应的所有取值、各取值的出现次数,和/或,全局统一的样本包括数据项名称、数据项对应的分组、各分组的枢纽点和规模数。
如对于离散型属性的全局统一的样本,其包括数据项名称、数据项对应的所有取值、各取值的出现次数。对于数值型属性的全局统一的样本,其包括数据项名称、数据项对应的分组、各分组的枢纽点和规模数。对于混合型属性的全局统一的样本,其既包括数据项名称、数据项对应的所有取值、各取值的出现次数,又包括数据项名称、数据项对应的分组、各分组的枢纽点和规模数。
S105具体包括:
S105-1,从全局统一的样本中选取与查询数据项组合对应的样本数据。
S105-2,对于离散选样方案,将对应的样本数据中,将查询数据项组合对应的出现次数与调整系数的积确定为查询结果。对于数值选样方案,将对应的样本数据中,将查询数据项组合对应的规模数与调整系数的积确定为查询结果。
调整系数初始值为1。
每一次进行近似计算之后,还会根据计算结果对调整系数进行调整,调整过程如下:
S106-1,获取对近似结果的准确度评价值。
其中,准确度评价值为0至1之间的小数,数值越高表示近似结果越准确。
S106-2,根据准确度评价值确定收益值。
收益值确定过程如下:
S106-2-1,确定查询请求的响应时间t。
S106-2-2,确定收益值=准确度评价值*t/历史查询请求响应平均时间。
S106-3,若收益值与调整系数之差的绝对值大于0.13,则将调整系数的值更新为收益值。
本实施例提供的一个基于深度强化学习的大数据近似查询支持方案,该模型可以利用历史数据生成全局的查询样本,用于支持近似查询,同时通过新增数据与外在变化动态地调整近似查询答案生成方案。其结果可以在有限的时间内,大幅度提高近似查询的准确性并减少响应时间。
其中,大数据近似计算是在大规模关系型数据集上进行SUM、AVG、COUNT、MIN、MAX等聚合计算时,如何给出近似的查询结果其误差是在指定阈值以内的。
数据集合一般应至少以100GB乃至TB为单位。
关系型数据集一般应建立于存储在关系型数据库中的一套表格。一般以行数据库的方式存储。
数据表格的列分为两种可能,一种为离散型、一种为数值型。
离散型数据有有限种可能的取值,以字符串的形式来保存。
数值型数据有无限种可能的取值,以浮点型数字的方式来表示。
底层支持数据库引擎,既可以为单机型数据库、也可以为分布式数据库。
单机型数据库,可以为oracle、mysql、sqlserver等传统关系型数据库。
分布式数据库,可以为Hadoop、spark等支持分布式存储与分布式数据库算子的底层数据库引擎。
查询应当皆可重写为标准的SQL语句。查询应当包含但不仅限于即席查询,即所谓的Ad-hoc查询。
本实施例生成的样本,应当最终存储于内存之中,以快速地支持大数据近似内存计算。
本实施例的方案根据统计出每一种QCS,以QCS为基本单位,进行样本建立,而后选择最优方案去合并以产生全局统一的样本。
本方案根据新产生的查询与已经建立的样本、设计样本选择方案、选定合适的样本给出近似查询估计、通过重写查询来返回计算结果。
其中,分布式计算方法、包含基于重分区与重合并操作两种方案。
重分区操作、根据所欲采集的列组合在分布式数据库场景下进行重分区,而后在每个分区上分别采集不同的数据值。最后直接合并结果。这一方式可以较为准确地得出最优结果、但是重分区操作在分布式数据库上较为耗时。
重合并操作,是在打乱分区的情况的,在每一个分区上都进行最优样本的采集、最终将各分区上收集来的数据收集起来,再进行一次过滤操作,从而得出近似最优的样本选择组合机制。
在针对当前样本选择方案,与累计的查询日志数据、选择一种最优的操作调整采样方案,以使得期望的长期收益达到最大。即根据具体的查询时间与精度的历史来调整当前神经网络的参数。从而增量式的调整采样策略与近似查询回答方案。
(1)离散式属性的样本生成步骤为:
S1:记录欲计算离散型属性A的所有可能取值,记录成集合D[A];
S2:针对D[A]中的每一个属性值v,记录其出现频次f[v];
S3:对于每一个纯离散型取值与其频次,建立一个新的表S;
S4:当出现查询仅关注于离散型单列取值的COUNT查询时,我们直接重写查询,访问新表S,给出100%准确的答案:
这一过程较为类似于物化视图的统计过程。
(2)纯数值型属性的样本生成过程为:
S1:将所有数值型数字进行排序,从小到大,排列为V=<v0,v1,……,vm>,一般实践中我们采用快速排序以获得最优的平均排序性能表现;
S2:新建一个新的分组G[0],置空,将v0加入到G[0]中;
S3:如果
Figure 33318DEST_PATH_IMAGE002
中的元素已经被选尽,跳转到S4, 依次向下选择新的元素加入到当前分组 中,如果当前分组中的末尾元素
Figure 53226DEST_PATH_IMAGE003
和首元素
Figure 259080DEST_PATH_IMAGE004
之间满足关系e≤s(1+a),继续向当前分组中 添加元素否则新建一个空分组,将下一个元素添加到当前分组,重复S3(其中a为预设的相 对误差);
S4:对于每一个分组,随机选择一个其中的元素作为枢纽点v,记录其中的元素个数作为此组的规模数f(v)。
S5:对于新到的查询,先定位到具体的分组,根据该组的规模数,计算出近似结果,易证明该近似结果的相对误差一定小于给定阈值a。
至于数值型与离散型数据混合的表格,可以先用处理纯数值型数据的方法把数值列分桶,等价为离散型数据处理,这样,整体表格就可以视为一个每一列都为离散型的表格来处理。
若内存资源仅允许对有限的QCS建离线样本,因为枚举的种类太多时,采集过多的样本数量会使得存储代价急剧增大。可通过动态的深度强化学习模型进行QCS的替换。
动态的深度强化学习模型分为以下几个模块:
状态量S:当前选用哪些QCS建立离线样本;。采用one-hot向量方式编码选取的QCS,每一种可能的QCS如果被选择,则将该位被置为1,否则置为0。这样每一种QCS选取方案就会被编码为一个一维向量。
行为A:替换掉某些QCS为一些新的QCS;
外界环境E:新来的查询与反馈的查询效率和结果。用户输入一个批次的查询后,数据库底层引擎会给出一个反馈,这一反馈包括查询的答案精准度与具体响应时间。根据这个时间可以计算出一个具体的收益值R。因此我们把数据库引擎的回答过程视为外界环境。
反馈R:根据某一批查询与查询结果,预估代价。查询越快、越准确,R越高。此处追求长期的期望回报率最高。
如图8所示,在有限的样本存储空间下,只能够为有限的QCS建立样本并建立索引。在该方案中,具体选择哪些QCS将会作为状态量,具体编码方式为,对于每一个QCS,如果选择为其建立样本,则将其对应的位置为1,如果不选择,则将其置为0。也即对于所有可能的QCS进行one-hot编码。假设每一个one-hot向量都会对应一个值,也就是说,样本选择的越好,收益就会越高。由于这种关系难以直观的描述,因此,采用一个深度神经网络来拟合这种关系。
在输入一批次的查询后,数据库内核引擎会给出相应的近似计算结果,根据相应的答案准确度与响应时间,计算出一个加权的收益值。如果准确度越高、响应时间越快则证明收益越高。拿到新的训练数据后,目标是尽可能最小化长期期望累计收益值,也就是说,不断地优化根据状态S对行为A的预测网络。
随着新产生的查询与查询结果与响应时间的数据越来越多,可以得到越来越多的经验复现数据,因此将会得到越来越精确地预测网络。从而可以给出当下最准确的样本选择方案。该深度强化学习模型亦可以通过优化神经网络结构与参数调优等方式来增强其实际性能。
图3提供本实施例提供的方法基于关系型数据库与其产生的离线样本的具体实例:
示例中的原表记录了一个电商公司的部分销售订单共有5列,12行,分别记录了订单地址(Market)、销售种类 (Fruit)、盈利与否 (Profitable)、销售额 (Revenue)与商品税额(Tax)。应用本专利提出的技术,构建出的表格选择了原表中的6行,并给出了每一行的规模参数,依据这个表,我们可以直接给出与原查询集中所有查询的QCS相同的查询的近似答案。
图4为五种查询分别对应的离线样本生成方案示意图。对于查询1,针对Market这一列,通过统计每种离散值出现的频次,记录成右侧含有规模参数的、只有三行的表格,快速的回答查询1。对于查询2,计算Market一列和Profitable一列的所有可能的组合,统计其频次,记录成相应的右侧的表格,以给出100%准确的查询结果。对于查询3、4,对Tax/Revenue这一列的数值进行分桶,并记录每一组的规模参数。对于查询5,先将数值列进行分组,而后将其转化为与查询2相似的问题。
图5中示出应用全集覆盖策略去解决最优样本生成问题的示例。共有12条记录,其中共有五个QCS需要考虑,在经过过滤操作后,仅需考虑第2,3,5条QCS。
在左边部分,使用线性扫描算法,依次遍历所有行。每一次存储当前一行包含的所有记录。只要当前访问的行中包含没有被记录的值,则把这一行加入到待生成的样本中,最终得到七行数据。
在右边部分,使用贪心算法,该贪心算法每一次选取一个当前覆盖信息最多的行,当所有右边的单元值都被我们覆盖后,停止扫描,当前选中的元组即为所需要的最优子集。此种方法生成的样本更加小,包含的信息密度更大,然而需要花费更多的时间。
图6示出了QCS产生一个待覆盖值的子集的示例,将12条记录分别存储在两台机器上,其中1~6号存储在第一台机器上,7~12号存储在第二台机器上。针对每一个QCS,都会对数据进行一次重组,针对每一个QCS产生一个待覆盖值的子集。而后在其上进行元组的选择。最终得到一个数量为7的样本。
如图7所示,同样将12条记录分别存储在两台机器上。分别在两台机器上应用图5中所示的算法,分别计算得到一个采样结果,将两者合并后,最后再应用贪心算法进行一次样本生成,最终结果得到一个样本数为6的子集。
有益效果:根据数据表格确定样本属性,样本属性为离散型属性,或者,数值型属性,或者,混合型属性;离散型属性的数据表格中所有数据项的取值范围均有限,且均以字符串形式保存;数值型属性的数据表格中所有数据项的取值范围均无限,且均以浮点型数字的形式保存;混合型属性的数据表格中一部分数据项的取值范围有限,且以字符串形式保存,另一部分数据项的取值范围无限,且以浮点型数字的形式保存;基于样本属性生成样本;根据生成的样本构建全局统一的样本;当获取到查询请求后,根据查询请求确定选样方案;根据选样方案,对全局统一的样本进行近似查询估计,得到近似结果。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,所述方法包括:
S101,根据数据表格确定样本属性,所述样本属性为离散型属性,或者,数值型属性,或者,混合型属性;所述离散型属性的数据表格中所有数据项的取值范围均有限,且均以字符串形式保存;所述数值型属性的数据表格中所有数据项的取值范围均无限,且均以浮点型数字的形式保存;所述混合型属性的数据表格中一部分数据项的取值范围有限,且以字符串形式保存,另一部分数据项的取值范围无限,且以浮点型数字的形式保存;
S102,基于所述样本属性生成样本的数据表;
S103,根据生成的数据表构建全局统一的样本;
S104,当获取到查询请求后,根据所述查询请求确定选样方案;
S105,根据所述选样方案,对所述全局统一的样本进行近似查询估计,得到近似结果。
2.根据权利要求1所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,当所述样本属性为离散型属性时;
所述S102具体包括:
S102-1-1,确定数据表格中每个数据项的所有取值,形成每个数据项的取值集合;
S102-1-2,对于集合中的每个元素,确定其出现次数;
S102-1-3,将各数据项名称、数据项对应的所有取值、各取值的出现次数形成样本的数据表。
3.根据权利要求1所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,当所述样本属性为数值型属性时;
所述S102具体包括:
S102-2-1,分别将数据表格中各数据项的浮点型数字进行从小到大排序;
S102-2-2,针对每个数据项,
建立一个新空分组,并将其确定为当前分组;
依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;其中,a为预设相对误差,a为c的开方;其中,c为b与N的平方的商,b为所有i的(xi-max)*(xi-min)的绝对值的和,N为排列的浮点型数字总数量,xi为排列的第i个浮点型数字,i为排列的序号标识,max为排列的最后一个浮点型数字,min为排列的首个浮点型数字;
从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数;
S102-2-3,将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成样本的数据表。
4.根据权利要求1所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,当所述样本属性为混合型属性时;
所述S102具体包括:
S102-3-1,获取数据表格中的数值属性数据项,所述数值属性数据项取值范围无限,且以浮点型数字的形式保存;
S102-3-2,分别将各数值属性数据项的浮点型数字进行从小到大排序;
S102-3-2,针对每个数值属性数据项,
建立一个新空分组,并将其确定为当前分组;
依次选择排列后的每一浮点型数字,确定当前分组的尾元素e与首元素s,若e≤s(1+a),则将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;否则,建立一个新分组,将新建立的分组确定为当前分组,将选择的浮点型数字加入当前分组,作为所述当前分组中的尾元素;其中,a为预设相对误差,a为c的开方;其中,c为b与N的平方的商,b为所有i的(xi-max)*(xi-min)的绝对值的和,N为排列的浮点型数字总数量,xi为排列的第i个浮点型数字,i为排列的序号标识,max为排列的最后一个浮点型数字,min为排列的首个浮点型数字;
从各分组中随机选择一个浮点型数字,将其确定为对应分组的枢纽点,并将各分组的元素总数确定为对应分组的规模数;
S102-3-3,将各数据项名称、数据项对应的分组、各分组的枢纽点和规模数形成第二数据表;
S102-3-4,对于数据表格中的非数值属性数据项,确定每个非数值属性数据项的取值集合;
S102-3-5,对于集合中的每个元素,确定其出现次数;
S102-3-6,将各非数值属性数据项名称、非数值属性数据项对应的所有取值、各取值的出现次数形成第一数据表;
S102-3-7,将第一数据表和第二数据表均作为样本的数据表。
5.根据权利要求1所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,所述S103具体包括:
S103-1,确定生成的数据表中所有数据项的有效组合;
S103-2,对有效组合进行冗余分析,得到去冗余的有效组合;
S103-3,对于任一有效组合,建立其对应的备选集合;从生成样本的数据表的头至尾依次取一行数据,若该行数据的上述任一有效组合的取值未存在备选集合中,则将该行数据存入备选集合中;
S103-4,将各有效组合及其备选集合作为全局统一的样本。
6.根据权利要求1所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,所述S104具体包括:
S104-1,当获取到查询请求后,根据所述查询请求确定查询数据项;
S104-2,若查询数据项取值范围有限,且以字符串形式保存,则确定选样方案为离散选样方案,若查询数据项取值范围无限,且以浮点型数字的形式保存,则确定选样方案为数值选样方案。
7.根据权利要求6所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,所述全局统一的样本包括数据项名称、数据项对应的所有取值、各取值的出现次数,和/或,所述全局统一的样本包括数据项名称、数据项对应的分组、各分组的枢纽点和规模数;
所述S105具体包括:
S105-1,从全局统一的样本中选取与查询数据项组合对应的样本数据;
S105-2,对于离散选样方案,将对应的样本数据中,将查询数据项组合对应的出现次数与调整系数的积确定为查询结果;对于数值选样方案,将对应的样本数据中,将查询数据项组合对应的规模数与调整系数的积确定为查询结果;
所述调整系数初始值为1。
8.根据权利要求1所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,所述S105之后还包括:
S106-1,获取对近似结果的准确度评价值,所述准确度评价值为0至1之间的小数,数值越高表示近似结果越准确;
S106-2,根据所述准确度评价值确定收益值;
S106-3,若所述收益值与调整系数之差的绝对值大于0.13,则将调整系数的值更新为所述收益值。
9.根据权利要求8所述的一种基于深度强化学习的流式数据实时近似计算方法,其特征在于,所述S106-2具体包括:
S106-2-1,确定查询请求的响应时间t;
S106-2-2,确定收益值=准确度评价值*t/历史查询请求响应平均时间。
CN202010914395.1A 2020-09-03 2020-09-03 一种基于深度强化学习的流式数据实时近似计算方法 Active CN111813800B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010914395.1A CN111813800B (zh) 2020-09-03 2020-09-03 一种基于深度强化学习的流式数据实时近似计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010914395.1A CN111813800B (zh) 2020-09-03 2020-09-03 一种基于深度强化学习的流式数据实时近似计算方法

Publications (2)

Publication Number Publication Date
CN111813800A true CN111813800A (zh) 2020-10-23
CN111813800B CN111813800B (zh) 2020-12-04

Family

ID=72859961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010914395.1A Active CN111813800B (zh) 2020-09-03 2020-09-03 一种基于深度强化学习的流式数据实时近似计算方法

Country Status (1)

Country Link
CN (1) CN111813800B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024093253A1 (zh) * 2022-11-03 2024-05-10 华为云计算技术有限公司 一种数据采样方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814085A (zh) * 2010-02-04 2010-08-25 林培光 基于wdb特征和用户查询请求的web数据库选择方法
US20160034470A1 (en) * 2013-03-15 2016-02-04 Palantir Technologies Inc. Prioritizing data clusters with customizable scoring strategies
CN109871396A (zh) * 2019-01-31 2019-06-11 西南电子技术研究所(中国电子科技集团公司第十研究所) 多样本考评数据的归一化融合方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814085A (zh) * 2010-02-04 2010-08-25 林培光 基于wdb特征和用户查询请求的web数据库选择方法
US20160034470A1 (en) * 2013-03-15 2016-02-04 Palantir Technologies Inc. Prioritizing data clusters with customizable scoring strategies
CN109871396A (zh) * 2019-01-31 2019-06-11 西南电子技术研究所(中国电子科技集团公司第十研究所) 多样本考评数据的归一化融合方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
倪赛龙: "基于分层抽样的数据流近似查询算法", 《计算机工程与设计》 *
李逢贤: "时序数据挖掘在电站设备监测中的应用研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 *
王栋等: "流式数据查询系统", 《计算机系统应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024093253A1 (zh) * 2022-11-03 2024-05-10 华为云计算技术有限公司 一种数据采样方法及相关设备

Also Published As

Publication number Publication date
CN111813800B (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
US6438537B1 (en) Usage based aggregation optimization
US9135280B2 (en) Grouping interdependent fields
CN106997386A (zh) 一种olap预计算模型、自动建模方法及自动建模系统
EP3014488B1 (en) Incremental maintenance of range-partitioned statistics for query optimization
US6493728B1 (en) Data compression for records of multidimensional database
CN107944046B (zh) 大规模高维数据快速检索方法及系统
US20040249810A1 (en) Small group sampling of data for use in query processing
CN106599052B (zh) 一种基于Apache Kylin的数据查询系统及其方法
US20210149923A1 (en) Systems and methods for intelligently grouping financial product users into cohesive cohorts
US20040002956A1 (en) Approximate query processing using multiple samples
CN111104457A (zh) 基于分布式数据库的海量时空数据管理方法
Paludo Licks et al. SmartIX: A database indexing agent based on reinforcement learning
CN111813800B (zh) 一种基于深度强化学习的流式数据实时近似计算方法
CN111639060A (zh) 一种火电厂时序数据处理方法、装置、设备及介质
CN113127741B (zh) 兼职岗位推荐系统中海量用户和岗位数据读写的缓存方法
Ge et al. A skip-list approach for efficiently processing forecasting queries
Wang et al. Stull: Unbiased online sampling for visual exploration of large spatiotemporal data
CN112612948B (zh) 一种基于深度强化学习的推荐系统构建方法
CN111782663B (zh) 一种提升聚合查询效率的聚合索引结构及聚合索引方法
CN111125158B (zh) 数据表处理方法、装置、介质及电子设备
CN112990569A (zh) 一种水果价格预测方法
US7165065B1 (en) Multidimensional database storage and retrieval system
CN116611915A (zh) 一种基于统计推理的薪资预测方法及设备
CN116450757A (zh) 数据资产的评价指标的确定方法及装置、设备及存储介质
CN116127194A (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