CN105045791A - 数据库设备 - Google Patents
数据库设备 Download PDFInfo
- Publication number
- CN105045791A CN105045791A CN201510133285.0A CN201510133285A CN105045791A CN 105045791 A CN105045791 A CN 105045791A CN 201510133285 A CN201510133285 A CN 201510133285A CN 105045791 A CN105045791 A CN 105045791A
- Authority
- CN
- China
- Prior art keywords
- data
- record
- tabulated
- data processor
- 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.)
- Pending
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据库设备,包括:多个数据处理器,其每个执行被划分成列形式的表列数据的排序处理;数据分配器,其根据在获取的表列数据的各个记录中包含的元素值将该表列数据的记录分配到数据处理器;以及数据存储部,其连接并存储由各个数据处理器执行的处理的结果。多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理。
Description
相关申请的交叉引用
本申请是基于2014年3月26日提交的日本专利申请No.2014-063526并且要求其优先权,其公开内容通过引用整体并入文本。
技术领域
本发明涉及数据库设备、程序和信息处理方法和数据库系统。
背景技术
已知的列存储数据库将数据按列划分并且保存数据。如上所述,在列存储数据库中,数据按列划分并保存。因此,列存储数据库可以快速执行列式的处理,例如,在某个时间在特定列中的值的处理。
因此,列存储数据库是在列式数据聚集、分析等方面突出的数据库,例如,抽取列并执行聚集。因此,例如,列存储数据库被应用于用户希望在大量数据的批处理的执行中快速进行聚集或连接的情形中。
列存储数据库的示例是在列基础上排序并存储数据从而提高了诸如引用、聚集或连接的处理的速度的系统。这种排序并存储数据的系统在每个更新进入时,需要在每个列中排序数据。因此,例如,当大量更新命令进入时,系统需要响应于每个命令执行排序。这在系统中导致了由于响应于每个命令的排序执行而性能下降的问题。
例如,在专利文献1中公开了一种用于解决这种问题的技术的示例。根据专利文献1,在数据添加的执行过程中,先前存储的数据子集的识别值被添加到待被添加的数据的置换值,以及在待被添加的数据子集中包括的每个符号值的识别值。而且,在待被添加的数据子集中包括的符号值的识别值的最大值被设置成待被添加的数据子集的识别值。根据专利文献1,通过这种处理的数据添加使得在不大幅度影响快速读取响应性能的条件下能够对添加做出更快的响应。
专利文献1:日本未审专利申请公开No.JP-A2011-209807。
然而,取决于列存储数据库的使用,存在其中用户希望适当地排序数据并实现快速引用、聚集和连接的情况。在这种情况下,由于以上述方式排序所导致的上述处理性能下降的问题再次出现。
此外,针对每列执行排序的列存储数据库的示例是一种系统,其被配置成,当大量数据更新进入时,将更新数据按CPU核的数目划分,以便进行并行处理,并且使得每个线程执行排序。在该系统中,在通过各个线程端的数据处理之后,需要执行诸如将通过各个线程执行的排序结果合并的处理,并且组织指示数据的地址信息。因此,出现了直到通过各个线程端的处理结束的等待,这导致无法充分产生并行化的效果的问题。
因此,列存储数据库具有当执行数据更新等时无法充分发挥其性能的问题。
发明内容
因此,本发明的目的是提供一种数据库设备,其解决了当执行数据更新等时无法充分发挥其性能的问题。
为了实现这一目的,根据本发明一个方面的数据库设备是一种包括下列的数据库设备:
多个数据处理器,其每个执行对被划分成列形式的表列数据的排序处理;
数据分配器,其根据在获取的表列数据的各个记录中所包含的元素值,将该表列数据的记录分配给数据处理器;以及
数据存储部,其连接并存储由各个数据处理器所执行的处理的结果,
其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理。
此外,根据本发明另一方面的程序是包括用于导致信息处理设备实现下列的程序:
多个数据处理器,其每个执行被划分成列形式的表列数据的排序处理;
数据分配器,其根据在获取的表列数据的各个记录中包含的元素值将表列数据的记录分配到数据处理器;以及
数据存储部,其连接并存储由各个数据处理器所执行的处理的结果,
其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理。
此外,根据本发明另一方面的信息处理方法是包括下列的信息处理方法:
根据获取的表列数据中的各个记录中包含的元素值将该表列数据的记录分配到多个数据处理器;以及
使每个所述数据处理器执行对被划分成列形式的表列数据的排序处理,并将由各个数据处理器所执行的处理的结果连接并存储。
此外,根据本发明另一方面的数据处理系统是包括数据库设备和客户端设备的数据系统,
数据库设备包括:多个数据处理器,其每个执行对被划分成列形式的表列数据的排序处理;数据分配器,其根据在获取的表列数据的各个记录中包含的元素值将表列数据分配到数据处理器;以及数据存储部,其连接并存储各个数据处理器所执行的处理的结果,其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理,以及
客户端设备将表列数据传输至数据库设备。
利用如上文所描述的配置,本发明可以提供一种数据库设备,例如,及时在执行大量数据的更新时,也能够充分发挥其处理性能。
附图说明
图1是示出了根据本发明第一示例性实施例的整个数据库系统的配置的框图;
图2是示出了根据本发明第一示例性实施例的列存储数据库管理系统的配置的框图;
图3是示出了在图2中所示的查询执行部件33的示例的框图;
图4是示出了用于描述通过列存储数据库管理系统的处理的更新前数据的示例的表;
图5是示出了通过图4中所示的表列数据转换而获得的列的示例的表;
图6是示出了用于描述通过列存储数据库管理系统的处理的更新数据的示例的表;
图7是示出了用于描述通过列存储数据库管理系统的处理的更新后数据的示例的表;
图8是用于描述通过列存储数据库管理系统的处理的概况的视图;
图9是用于具体描述通过列存储数据库管理系统的处理的视图;
图10是用于具体描述通过列存储数据库管理系统的处理的视图;
图11是用于具体描述通过列存储数据库管理系统的处理的视图;
图12是用于具体描述通过列存储数据库管理系统的处理的视图;
图13是用于具体描述通过列存储数据库管理系统的处理的视图;
图14是用于具体描述通过列存储数据库管理系统的处理的视图;
图15是示出了列存储数据库管理系统的操作的示例的流程图;
图16是描述了线程的操作的流程图;
图17是示出了涉及本发明的列存储数据库操作的示例的流程图;
图18是示出了根据本发明第二示例性实施例的列存储数据库管理系统的配置的框图;
图19是示出了根据本发明第三示例性实施例的数据库设备的配置概况的示意框图;以及
图20是示出了根据本发明第四示例性实施例的数据库系统的配置概况的示意性框图。
具体实施方式
接下来,将参考附图,具体描述本发明的示例性实施例。
[第一示例性实施例]
在本发明的第一示例性实施例中,将描述列存储数据库系统1,其以列方向划分表列数据并且存储该数据。如下文将描述,在本示例性实施例中的数据库系统1被配置成,当通过隔夜批处理等执行大量更新时,能够总体上反应用户在某个时间所指定的周期内的更新。此外,在本示例性实施例中的数据库系统1被配置成,当执行数据更新等时,能够通过使用多个CPU执行并行处理。此外,在本示例性实施例中的数据库系统1被配置成,当通过使用多个CPU执行并行处理时,能够导致各个CPU执行高度独立的处理,其将在后文描述。
参考图1,在本示例性实施例中的数据库系统1具有数据库客户端2(客户端设备)和列存储数据库管理系统3(数据库设备)。如在图1中所示的,数据库客户端2和列存储数据库管理系统3经由网络被连接,并且被配置成能够彼此通信。
在这个示例性实施例中,将描述其中列存储数据库管理系统3包括一个信息处理设备的情况。然而,本发明的实现方式不限于上述情形。列存储数据库管理系统3可以包括多个信息处理设备,与分布式数据库管理系统一样。而且,数据库客户端2和列存储数据库管理系统3不一定经由网络连接。例如,数据库客户端2和列存储数据库管理系统3可以通过一个信息处理设备加以配置。
数据库客户端2是信息处理设备。数据库客户端2包括中央处理单元(CPU)和存储设备(存储器和硬盘),其未在附图中示出。数据库客户端2被配置成,通过由CPU执行在存储设备中存储的程序,实现下文将描述的功能。
数据库客户端2具有发出查询的功能,例如,以在列存储数据库管理系统3中插入、更新或删除数据。而且,数据库客户端2具有从列存储数据库管理系统3接受查询结果的功能。因此,数据库客户端2包括用于向列存储数据库管理系统3发出查询的一般功能。
此外,数据库客户端2具有将作为启动下文描述的更新模式的指令的更新模式启动指令和作为结束更新模式的指令的更新模式结束指令通知给列存储数据库管理系统3的功能。如下文所描述的,当数据库客户端2将更新模式启动指令通知给列存储数据库管理系统3时,列存储数据库管理系统3启动该更新模式。而且,当数据库客户端2将更新模式结束指令通知给列存储数据库管理系统3时,列存储数据库管理系统3结束该更新模式。
列存储数据库管理系统3是信息处理设备。列存储数据库管理系统3包括中央处理单元(CPU)和存储设备(存储器和硬盘),其未在附图中示出。列存储数据库管理系统3被配置成,通过由CPU执行在存储设备中存储的程序,实现下文描述的功能。
参考图2,列存储数据库管理系统3具有查询分析器31、执行计划部件32、查询执行部件33、模式管理数据存储区域34(数据存储部的部分)以及用户数据存储区域35(数据存储部的部分)。而且,模式管理数据存储区域34具有表定义区域342和表列数据统计信息区域342。此外,用户数据存储区域35具有临时区域351,其具有多个更新部分区域3511(3511,3512,……和351n;下文中,当不作区别时,称之为更新部分区域3511),以及表列数据存储区域352。
查询分析器31具有作为解析器的功能,其检查查询语言的内容,诸如数据库客户端2发出的SQL(结构化查询语言)并且执行解析。具体而言,查询分析器31接收由数据库客户端2传输的查询(SQL语句)。随后,查询分析器31执行接收的SQL语句的解析。然后,查询分析器31将解析结果传输至执行计划部件32。
执行计划部件32具有作为计划器的功能,其确定用于执行查询分析器31所分析的查询的最有效率的顺序和方法,并且产生用于其的执行计划。在从查询分析器31接收了解析结果之后,执行计划部件32基于接收的结果,产生执行计划。然后,执行计划部件32将产生的执行计划传输至查询执行部件33。
同时,当通过使用API(应用编程接口)从数据库客户端2直接指定查询执行部件33的操作时,查询分析器31或执行计划部件32未被通过。
查询执行部件33具有根据执行计划部件32所产生的执行计划而执行数据操作命令的功能。而且,响应于从数据库客户端2所直接接收的数据操作命令(例如,通过使用API所编写的数据操作命令),查询执行部件33具有在模式管理数据存储区域34和用户数据存储区域35上执行查询的功能。因此,查询执行部件33等同于作为所谓的数据库执行器的部分。
图3是查询执行部件33的功能的示例。参考图3,查询执行部件33具有数据处理器331、分配条件估计部件332、数据分配器333和更新管理器334。
数据处理器331具有诸如查询执行的执行数据处理功能。在本示例性实施例中的列存储数据库管理系统3具有多个CPU核,并且被配置成通过使用多个CPU核执行多个线程。换言之,数据处理器331被配置成,在多个CPU核分别执行处理时,通过使用多个CPU核,能够执行并行处理。作为一个示例,下文将描述列存储数据库管理系统3包括四个CPU核的情况。然而,列存储数据库管理系统3可以包括两个或三个CPU核,或者可以包括五个或多个CPU核。
分配条件估计部件332具有根据在表列数据统计信息区域342中存储的下文将描述的统计信息和在表列数据存储区域352中所存储的排序数据,估计作为诸如更新的给定处理(查询)的目标的表列数据(更新数据)的各个记录中包含的元素值的分配条件的功能。在本示例性实施例中的元素值是不包括用于识别每个记录的信息的值,并且其是诸如更新的给定处理的目标。例如,分配条件估计部件332从表数据统计信息区域342获取作为查询目标的值的柱状图(统计信息)。然后,分配条件估计部件332使用获取的柱状图估计更新数据的数据分配。然后,分配条件估计部件332将估计结果传输到数据分配器333。数据分配估计部件332以下文所描述的更新模式操作。
数据分配器333具有基于分配条件估计部件332的估计结果,分配更新数据(表数据的各个记录)的功能,使得待由各个CPU核处理的更新数据的数目是一致的。例如,基于分配条件估计部件332的估计结果,数据分配器333设置分割规则,用于将数据按照并行处理的数目划分成应该使得各个CPU核的更新数目处理数目一致的范围。换言之,基于分配条件估计部件332的估计结果,数据分配器333设置传输目的地阈值(分配阈值),以改变更新数据的传输目的地。然后,基于设置的传输目的地阈值,数据分配器333将更新数据存储到与并行处理数目(CPU核数目)相同的数目的更新部分区域3511中,这将在下文描述。随后,数据分配器333分配更新数据,例如,以便包含近似元素值的记录被同一数据处理器331处理,如下文所描述的。因此,数据分配器333具有基于更新数据的元素值的分配条件,将更新数据分配到各个更新部分区域3511的功能。而且,通过数据分配器333的分配,更新数据被一致地分配到由CPU核数目所确保的各个更新部分区域3511。数据分配器333以下文将描述的更新模式操作。
更新管理器334具有管理何时启动以及何时结束更新模式的功能。换言之,更新管理器334执行是否利用更新模式执行更新或者执行正常更新的管理。如上文所述,当数据库客户端2通知更新模式启动时,更新管理器334启动更新模式。当更新模式启动时,从那时起获取的更新数据被数据分配器333分配到各个更新部分区域3511。然后,分配的更新数据被汇集在各个更新部分区域3511中,直到更新模式结束。当数据库客户端2通知更新模式结束时,更新管理器334结束更新模式。当更新模式结束时,数据处理器331启动对于在更新部分区域3511中存储的更新数据的处理。下文将描述对更新数据的处理细节。
模式管理数据存储区域34是诸如存储器或硬盘的存储设备。模式管理数据存储区域34存储并管理数据库的模式定义信息。如上文所提及的,模式管理数据存储区域34具有表定义区域341和表列数据统计信息区域342。
表定义区域341存储信息,诸如表定义信息、索引等以及设备和其中存储数据的位置信息,其被保存在一般关系型数据库中。换言之,表定义区域341存储通常被称为系统表或系统目录的信息。
表列数据统计信息区域342存储关于用户的表列数据的统计信息。换言之,表列数据统计信息区域342存储与用于响应于在一般关系型数据库中的SQL查询而产生基于成本的执行计划的统计信息相同的信息。
用户数据存储区域35是诸如存储器或硬盘的存储设备。用户数据存储区域35存储诸如数据库数据和在数据处理执行过程中产生的临时数据的数据。如上文所提及的,用户数据存储区域35具有包括多个更新部分区域3511和表列数据存储区域352的临时区域351。
临时区域351存储由数据库查询发出的中间数据等。此外,如上文所述,临时区域351具有更新部分区域3511。在临时区域351中,确保与在列存储数据库管理系统3中安装的CPU的数目相同数目的更新部分区域3511。
更新部分区域3511是存储在使用更新模式的数据更新期间待由一个核处理的数据的区域。因此,如上文所述,产生了与CPU核的数目相对应的数目的更新部分区域3511。换言之,根据下文将描述的线程数目,产生更新部分区域3511。当更新模式启动时,更新数据被数据分配器333分配到更新部分区域3511。当更新模式结束时,通过使用在更新部分区域3511中存储的更新数据,执行通过数据处理器331(CPU核)的处理。
表列数据存储区域352基于在表定义区域341中存储的定义,存储数据库的实际数据、索引数据等。
这就是在本示例性实施例中的数据库系统1的配置。此处,具体定义在图4中所示的表“产品表”,将描述由列存储数据库管理系统3所执行的处理细节。下文所示的产品表示可以由数据库系统1处理的表的示例。
参考图4,假定产品表包括,例如,“产品ID”列、“产品名称”列、“分类ID”列、“列表价格”列、“发布日期”列和“销售结束日期”列。
当这种产品表被加载到列存储数据库系统(例如,列存储数据库管理系统3)中时,例如,其内部结构如图5所示。参考图5,发现在列存储数据库管理系统3中,内部结构具有用于表(表列数据)的每列的列编号、值编号和值列表。
列编号示出了在列中的每个数据处于哪一行。在值编号中,写下了用于值列表的索引号码。在值列表中,消除了实际数据的重复,并且数据被以排序的形式布置。通过这种配置,列存储数据库管理系统3存储逻辑产品表。在图5中,位于相同位置的列编号和值编号是彼此对应的列编号和值编号(例如,在产品名称列中,在列编号中位于从上部第二行中的“2”对应于位于值编号中从上部第二行的“4”)。
例如,当在产品表的第二行中的列表价格在图5所示的列存储数据库的结构中被引用时,获取位于产品表中值编号的第二行中并且与列表价格列中列编号“2”处于相同位置的编号“4”(参见图5)。然后,基于获取的编号“4”,检查在列表价格列的值列表中第四行的值。因此,发现该值为“8800”。
在其中数据被排序并存储的列存储数据库的这种模型中,在数据检索等方面使用没有转换数据的二进制搜索是可能的。而且,仅通过比较关于待连接的列的排序的值列表并且检查其值列表编号之间的关系进行连接是可能的。因此,在其中数据被排序并且存储的列存储数据库的这种模型中,执行用于聚集和检索的快速处理是可能的。在下文中,这种列存储数据库的模型被描述为快速结构。
下文将描述通过使用该更新模式,利用图6中所示的数据来更新图4中所示的产品表的情形。在图6中,新的列编号被应用于插入的情形,然而,处理目标的列编号被写入更新和删除的情形。在更新的情形下,例如,列表价格变化如何被写入。当在更新模式期间作出对于相同列的多个更新命令时,仅最终的更新结果被存储在图6中所示的表中。而且,当在表4中所示的产品表上反应图6中所示的更新数据时,结果如图7中所示。
首先,下文将参考图8简要描述在本示例性实施例中通过列存储数据库管理系统并行执行每列的快速结构更新。
因为该系统是列存储类型,在列的基础上执行更新。因此,作为在列基础上执行的更新的一个示例,下文将描述产品表的列表价格列更新(以相同方式,对其他列执行更新)。此外,如上文所述,在本示例性实施例中的列存储数据库管理系统3包括四个CPU核。因此,并行地执行四个处理。
参考图8,当更新管理器334转入更新模式时,从那时起获取的更新数据通过数据分配器333被分配给各个更新部分区域3511。根据通过分配条件估计部件332估计的分配条件,执行分配。
例如,参考图8,基于从在表列数据统计信息区域342中存储的列表价格列的柱状图所估计的更新数据分配条件,数据分配器333将更新数据分配给四个:“6000或小于”、“6001至8000”、“8001至12000”以及“12000或大于”。换言之,数据分配器333分配更新数据,以便基于更新数据的分配条件,由同一数据处理器331处理包括近似值的更新数据。然后,分配的更新数据被汇集到各个更新部分区域3511中(例如,更新部分区域3511至3514),直到更新模式结束。
然后,当更新模式结束时,在各个部分区域3511中汇集的更新数据被转换成列存储数据(快速结构)。然后,转换成快速结构的更新数据与对应于更新数据的列表价格列中值的范围内的更新前列表价格列合并(参见图4)。然后,连接各个线程的处理结果。
这是对列存储数据库管理系统3的并行执行每列快速结构的更新的简要描述。接下来,将具体描述由列存储数据库管理系统3所执行的处理。参考图9,首先,在更新模式期间,具有4000列表价格值的记录和具有4500列表价格值的记录,这两条记录在列表价格列中具有“6000或小于”值,被分配给线程A(例如,对应于线程A的更新部分区域3511)。而且,具有7800的列表价格值的两个记录和具有列表价格值6800的一个记录,在列表价格列中的具有“6001至8000”值的所有记录,被分配给线程B(例如,对应于线程B的更新部分区域3512)。同样,具有列表价格值9800的记录和具有列表价格值9000的记录,这两条记录在列表价格列中具有“8001至12000”的值,被分配给线程C(例如,对应于线程C的更新部分区域3513)。然后,具有列表价格值34800的记录和具有列表价格值12800的记录,这两条记录在列表价格列中具有“12001或大于”的值,被分配给线程D(例如,对应于线程D的更新部分区域3514)。
更新数据被汇集在各个更新部分区域(3511至3514)中,直到更新模式结束。
然后,当更新模式结束时,系统进入对于实际表列数据存储区域352执行更新的阶段。首先,查询执行部件33的数据处理器331确保与在表列数据存储区域352中心产生的记录相同数目的区域以存储列编号和值列表。具体而言,数据处理器331保留数据区域数目与逻辑操作列编号的最大数目相同(在该情形下为13)。同样,数据处理器331在临时区域351中保留用于组值列表编号表和值编号调整值表的区域,作为用于管理各个线程的值列表的数据的临时数据区域。组值列表编号表和值编号调整值表的区域将在下文中详细描述。
接下来,数据处理器331进入用于产生最终更新数据的并行处理。如图9中所示,数据处理器331(CPU核之一;线程A)将在更新部分区域3511中存储的更新数据转换成快速结构,并且将结果存储至更新部分区域3511。同样,线程B、C和D将在与各个线程对应的更新部分区域(3512至3514)中存储的更新数据转换成快速结构,并且将结果存储到相对应的更新部分区域(3512至3514)。在图9中,通过使用具有负号的编号,写入当执行删除时的操作列编号。此外,在图9中,通过使用执行处理的线程和在线程中的值编号,写入值编号。例如,在图9中所示的第九操作行中的值编号“A-2”代表了在线程A的值列表中第二个是该值。
接下来,如图10中所示,每个线程将更新数据的快速结构与现有表列数据的快速结构合并(参见图5中的列表价格列)。在合并过程中,现有表列数据被分配,以便处于与更新数据相同的数据范围。换言之,在根据值列表中的值而被分配给“6000或小于”、“6001至8000”、“8001至12000”和“12001或大于”之后,现有表列数据被合并。
具体而言,每个线程首先通过使用合并排序,将更新数据的快速结构的值列表与现有表列数据的值列表合并。随后,关于更新数据,在合并到合并后的操作列编号中的适当位置之前,每个线程复制操作列编号。同样,在合并到合并后的原始价格编号的适当位置之前,每个线程复制原始价格编号。通过该处理,产生了图10中所示的数据。该数据是用于执行目标范围的更新的基础数据。
当快速结构的合并,即部分值列表的合并完成时,每个线程将局部值的数目写入如图11所示的组值列表编号表(如上文所提及的在临时区域351中所保留的)。该处理由每个线程执行。换言之,已经完成部分值列表合并的线程将局部值的数目写入组值列表编号表,而不等到其他线程结束。该表待被用于产生最终的值编号。
例如,作为线程A合并的结果的部分值的数目是三。因此,线程A将“3”写入用于在组值列表编号表中的组编号A的位置。线程B、C和D执行相同操作。
接下来,基于完成的合并结果的操作列编号和原始价格编号以及更新前列表价格列,已经将局部部分数目写入组列表编号表的线程执行将新值编号填写适当位置的处理(在表列数据存储区域352中已预先保留了存储新值编号的区域,如上文所提及的)。该处理也由每个线程执行。下文将描述其中线程A首先执行填写新值编号的处理,作为一个示例。
参考图12,线程A首先将原始价格编号与待新写入的新值编号相关联的处理。在图12中,原始价格值1,即在更新前列表价格列中的值编号1对应于列编号6。因此,如图12A中所示的,线程A写入原始价格值1的局部值编号A-1,作为在新值编号中的第六个值。同样,原始价格编号2,即在更新前列表价格列中的值编号2对应于列编号3和5。因此,线程A写入原始价格编号2的局部值编号A-3作为新值编号中的第三和第五值。
接下来,线程A执行数据在操作列编号中的行的处理。参考图12,“-6”被写为操作列编号。如上文所述,赋予操作列编号的负号表示删除。因此,如图12B中所示,线程A删除在新值编号中的第六个值(将该值变为(空))。而且,“9”被写作操作列编号。因此,线程A将原始价格编号9的局部值编号A-2写作在新值编号中的第九个值。换言之,线程A添加A-2作为在新值编号中的第九个值。
线程B、C和D也执行相同处理。换言之,每个线程在原始价格编号执行处理之后,基于操作列编号执行处理。图12示出了其中线程A早于其他线程进入填写新值编号的处理的虚构的情况。然而,例如,线程B可以早于线程A进入上述处理。在这种情形下,线程A对于线程B已经执行处理的数据执行上述处理。
每个线程执行该处理。结果,新值编号的被填写的所有位置如图13所示。
因为每个线程如此填写新值编号,存在其中在另一线程打算填写新值编号的位置之前一个线程已经填写了新值编号的位置。例如,上述情形出现在当对于原始值编号的处理和对于操作列编号的处理被不同线程执行时,诸如当在更新前和更新后的值变化大时。在这种情形下,对于原始值编号的处理或者对于操作列编号的处理取决于执行各个处理的线程的处理而首先被执行。因此,在这种情形下,线程执行处理,以便当删除和更新具有操作列编号的记录时,重写,并且当从具有原始价格编号的记录复制时,不重写。通过这种优先地处理待更新的数据,确保一致性是可能的。
因此,在从更新数据的划分至与生成新值编号并行处理开始的时间段期间,每个线程可以不依赖于其他线程而执行处理。换言之,迄今为止,其线程是绝对安全的。
接下来,每个线程执行将以组编号写入的新值编号(以局部值编号写入的数据)转换成仅以编号写入的值编号(最终值编号)的处理。
具体而言,每个线程首先从组值列表编号表产生值编号调整值表。参考图13B,在本示例性实施例中所示的示例中,三个值存在于更新部分区域3511的线程A的值列表中。同样,两个值存在于线程B中,三个值存在于线程C中并且三个值存在于线程D中。然后,每个线程基于上述的值的数目计算调整值。例如,因为通过线程A更新的部分位于新值列表中第一位置,线程A获得了调整值0。而且,因为通过线程B更新的部分位于线程A所更新的部分后面,线程B获得了调整值3,其为线程A的值列表中的值的数目。同样,线程C获得了调整值5,其为在线程A和B的值列表中值的数目之和。然后,线程D获得了调整值8,其为在线程A、B和C的值列表中值的数目之和。
随后,每个线程通过使用获取的调整值更新通过线程计算的新值编号。换言之,每个线程将在线程中值列表中的值添加到获得的调整值,从而计算新的值编号并转换。例如,关于新值编号C-1,线程C将调整值5添加到值列表中的值1,从而获得6。结果,新值编号C-1被转换成新值编号6。通过由每个线程执行该处理,以组编号所写的新值编号被转换成仅以图13C中所示的编号所写的值编号。
如上文所述,基于在组值列表编号表中的值执行该处理。因此,该处理也可以以非如图13A所示的状态被执行,即,即使所有线程未填写新的值编号。例如,即使线程B正在填写新值编号,如果在组值列表编号表中的所有值被填写,已经填写新值编号的线程A可以执行上述转换处理。因此,如果在组值列表编号表中写入部分值的数目的处理,即在写入新的值编号之前执行的处理,已经完成,则每个线程可以进入转换处理,而不必等到其他线程完成写入新值编号的处理。换言之,该处理不需要严格等到各个线程同时完成该处理,虽然这种并不是绝对线程安全的。
此外,在完成通过各个线程的处理之后,通过连接由纵向顺序的各线程所产生的部分值列表,可能产生如图13C所示的新值列表。
作为该处理的结果,图14所示的最终更新结果被存储到表列数据存储区域352中。
在本示例性实施例中,为了易于管理交易,假定仅最终更新结果被存储在图6所示的表中。然而,本发明的实现方式可以不限于上述情形。换言之,更新数据可以包括用于相同列的多个更新。
然而,在该情形下,假定指示更新数据处理顺序的标识符等如在正常数据库所使用的方法中那样被采用。采用指示处理顺序的标识符等使得执行处理以便在将已经转换为快速结构的更新部分列存储到表列数据存储区域352时仅留下新数据(最后更新的数据)。因为该流程与一般交易中的相同,其具体描述省略。
这是对于本示例性实施例中数据库系统1的配置细节和由列存储数据库管理系统3所执行的处理的描述。接下来将描述列存储数据库管理系统3的操作。首先将描述以列存储数据库管理系统3的更新模式的操作。
参考图15,列存储数据库管理系统3接收由数据库客户端2传输的更新模式启动指令(S001)。结果,更新管理器334确定启动更新模式。
当更新模式启动时,从那时起所获取的更新数据通过数据分配器333被分配到各更新部分区域3511。换言之,当在更新模式期间接收更新数据时(S002),首先,查询执行部件33检查接收的更新数据的目标表是否是在更新模式启动之后的第一更新(S003)。在第一更新的情形下(S003,是),查询执行部件33的分配条件估计部件332检查表列数据统计信息区域342,并且检查目标表的列的柱状图(S004)。而且,数据处理器331确保与CPU核数目相同数目的更新部分区域3511。然后,更新数据通过数据分配器62被分配给各个更新部分区域3511(S006)。
另一方面,在更新模式启动后,更新数据的目标表不是第一更新的情形下(S003,否),对于柱状图的检查和更新部分区域3511的检查已经被完成。因此,数据分配器62执行对于各个更新部分区域3511的更新数据的分配处理。
被数据分配器62分配到各个更新部分区域3511的更新数据在各个更新部分区域3511中被汇集,直到更新模式结束。
在更新模式期间每次接收到更新数据时,执行该分配处理(S007)。
然后,列存储数据库管理系统3接收由数据库客户端2传输的更新模式结束指令(S008)。结果,更新管理器334确定结束更新模式。
当更新模式结束时,数据处理器331更新在更新部分区域3511中存储的更新数据的处理被启动(S009)。换言之,数据处理器331首先确保一个区域,以存储在表列数据存储区域352中新产生的记录数目相同数目的列编号和值列表。同样,数据处理器331确保用于组值列表编号表和值编号调整值表的区域,其是在临时区域351中用于管理各个线程中的值列表中数据的临时数据区域。然后,数据处理器331进入用于产生最终更新数据的并行处理。并行处理的结果是,更新数据被反应。
这是对以列存储数据库管理系统3更新模式操作的描述。接下来,将描述更新模式结束之后执行的更新操作。该更新以并行方式执行。因此,下文将描述该并行处理中一个县城的操作(数据处理器331的CPU核)。
参考图16,随着更新模式结束,线程将在相对应的更新部分区域3511中存储的更新数据转换成快速结构(S101)。然后,线程将通过转换获得的快速结构存储到更新部分区域3511中。
随后,线程将转换的更新数据的快速结构与现存表列数据的快速结构合并(S102)。具体而言,线程通过使用合并排序,首先将更新数据的快速结构的值列表与现有表列数据的值列表合并。随后,关于更新数据,在合并之后,合并到用于操作列编号的适当位置之前,线程复制操作的列编号。同样,在合并之后,合并到用于原始价格编号的适当位置之前,线程复制原始价格编号。由此,线程将更新数据的快速结构与现有表列数据的快速结构合并。
接下来,线程将作为更新数据的快速结构与现有表列数据的快速结构合并结果而产生的部分值的数目写入到组值列表编号表中(S103)。如上文所述,组值列表编号表存在于临时区域351中。
然后,基于合并结果的操作列编号和原始价格编号以及更新前列表价格列,线程执行填写相对应的新值编号的处理。换言之:通过将更新数据的快速结构与现有表列数据的快速结构合并,线程获取合并结果的操作列编号和原始价格编号;而且,线程从表列数据存储区域352中获取更新前列表价格列;然后,基于合并结果的操作列编号和原始价格编号和更新前的列表价格列,线程填写在表列数据存储区域352中保留的相对应新值编号区域。此处,新值编号对应于合并结果的部分值。
关于迄今为止的操作,线程可以执行处理,而不取决于其他线程的处理。换言之,迄今为止该处理是线程安全的。
接下来,线程基于组值列表编号表计算调整值,并且将计算的调整值写入值编号调整值表(S105)。然后,线程通过使用计算的调整值,转换在步骤S104填写的新值编号(S106)。换言之,线程将对应于部分值的新值编号转换成对应于最终新值列表的新值编号。
这是线程的操作。然后,通过由执行并行处理的所有线程执行上述处理,所有新值编号被写入表列数据存储区域352。此外,在完成各个线程的处理之后,通过以纵向顺序连接由各个线程产生的部分值列表,能够产生新的值列表。随后,更新数据的反应结束。
因此,在本示例性实施例中的列存储数据库管理系统3包括更新管理器334和更新部分区域3511。利用这种配置,列存储数据库管理系统3可以响应于数据库客户端2的更新模式启动指令,启动更新模式。然后,列存储数据库管理系统3可以将在更新模式期间获取的更新数据存储到更新部分区域3511中。此外,列存储数据库管理系统3可以响应于数据库客户端2的更新模式结束指令而结束更新模式。然后,列存储数据库管理系统3可以在某个时候处理在更新部分区域3511中存储的更新数据。换言之,列存储数据库管理系统3可以在某个时候将在更新模式期间获取的更新数据合并。结果,在其中大量更新数据在隔夜批处理中进入等的情形下,能够防止因为每次更新数据进入时执行合并而产生的低效率处理。
此外,在本示例性实施例中的列存储数据库管理系统3具有数据处理器331,其包括多个CPU核、分配条件估计部件332、数据分配器333以及更新部分区域3511。利用这种配置,更新数据分配器333可以基于分配条件估计部件332的估计结果,将在更新模式期间获取的更新数据分配给更新部分区域3511。换言之,根据更新数据的元素值的分配条件,更新素具分配器333分配更新数据,以便各个CPU核的更新数据的数目变得一致。结果,数据处理器331的CPU核可以基于在更新部分区域3511中存储的更新数据,执行高度独立的更新。结果,CPU核可以继续处理,而不需等待其他CPU核的处理,并且可以执行更新算法处理,同时尽可能保持线程安全。
此处,将示意性的描述根据本发明的在列存储数据库中执行的更新。参考图17,关于本发明的列存储数据库首先将更新数据按照数据的数目划分,以便按照到达顺序执行并行处理。然后,列存储数据库使得每个线程将划分的更新数据转换成快速结构,并且产生按照更新数据排序的快速结构。然后,列存储数据库将由各个线程产生的快速结构合并,并且完成关于所有更新数据的向快速结构的转换。在该处理中,列存储数据库需要等待直到各个线程完成。换言之,该处理不是线程安全的。通过将更新数据的快速结构与更新前数据的快速结构合并,列的更新完成。该合并处理进一步导致等待。
因此,关于本发明的列存储数据库导致多次等待其他线程的处理完成,并且显而易见的是,多个CPU核不能在总体上被有效利用。另一方面,利用上述配置,本发明使得能够更多使用多个核。
本发明对于从多个数据库产生数据集市是尤其有利的,或者具体来说,集体执行更新,诸如,在数据仓库等领域中所使用的列存储数据库中通过隔夜批处理替换大量数据。然而,毋庸赘述,本发明的实现方式不限于上述情形。本发明可以被是配成一般列存储数据库。
此外,在本示例性实施例中,列存储数据库管理系统3响应于数据库客户端2的指令启动并结束更新模式。然而,本发明的实现方式不限于上述情形。列存储数据库管理系统3可以被配置成,例如,通过引用未在附图中示出的时钟部件,在预定启动时间启动更新模式,并且也在预定结束时间结束更新模式。
此外,在本示例性实施例中,数据分配器333基于由分配条件估计部件332所估计的分配条件,分配更新数据。然而,本发明的实现方式不限于上述情形。例如,数据分配器333可以被配置成基于预定分配规则分配更新数据。此外,数据分配器333可以被配置成基于第一更新数据的数据分配,分配首先获取的更新数据,并且每次获取更新数据时,修正分配规则。因此,数据分配器333可以被配置成,基于除了上文所解释的规则以外的规则,执行数据分配。
[第二示例性实施例]
接下来,将参考附图描述本发明的第二示例性实施例。在第二示例性实施例中,将描述数据分配器分配基于预定分配规则,更新数据的情形。
参考图18,在本示例性实施例中的数据库系统4具有数据库客户端2和列存储数据库管理系统5。而且,列存储数据库管理系统5具有查询分析器31、执行计划部件32、查询执行部件33、模式管理数据存储区域51以及用户数据存储区域35。而且,模式管理数据存储区域51具有表定义区域341、表列数据统计信息区域342以及更新数据分配范围定义区域511。此外,用户数据存储区域35具有多个更新部分区域3511的临时区域351以及表列数据存储区域352。与第一示例性实施例中相同的组件将以相同参考符号表示。
因此,本示例性实施例的数据库系统4不同于第一示例性实施例,因为列存储数据库管理系统5具有更新数据分配范围定义区域511。而且,列存储数据库管理系统5具有与第一示例性实施例相同的配置,除了更新数据分配范围定义区域511之外。换言之,查询执行部件33也具有数据处理器331、分配条件估计部件332、数据分配器333和更新管理器334的功能。因此,下文将描述作为本示例性实施例的组件的更新数据分配范围定义区域511。
更新数据分配范围定义区域511存储关于特定列的被划分用于各个线程的数据范围。换言之,更新数据分配范围定义区域511存储关于特定列的分配规则。在分配特定列的更新数据的情形下,数据分配器333基于在更新数据分配范围定义区域511中存储的分配规则,分配更新数据。
例如,关于图4中所示的表,在产品表的销售结束日期列中的绝大多数值是空。换言之,在图4中所示的产品表的销售结束日期列代表了绝大多数产品仍在销售。在这种情形下,预期随后应写入的绝大多数值是比当前更晚的时间。另一方面,分配条件估计部件332从当前值“空”、“2013-2-15”、“2013-6-15”、“2013-8-20”估计更新数据的分配条件。因此,非常可能的是,由分配条件估计部件332估计的更新数据的分配条件非常不同于更新数据的实际分配条件。换言之,在这种情形下,预期所有更新数据集中到一个线程,结果,更新性能更加劣化。
因此,关于具有这种属性的列,对于四个范围“从更新日期至一个月后”、“从一个月后至两个月后”、“从两个月后至六个月后”和“从那时起”的分配先前在更新数据分配范围定义区域511中定义。因此,关于以非常不同于现有数据库存储条件的方式执行的数据更新的列,更新数据分配范围定义区域511的使用使之能够大大产生处理并行化的效果。
因此,在示例性实施例中的数据库系统4的列存储数据库管理系统5包括更新数据分配范围定义区域511。利用这种配置,在其中非常不同于现有数据库存储条件的方式执行的数据更新的情形下,数据分配器333可以基于在更新数据分配范围定义区域511中存储的分配规则,分配更新数据。结果,使得各个线程的更新变成一致成为可能,并且能够大大产生处理并行化的效果。
[第三示例性实施例]
接下来,将参考附图,描述本发明的第三示例性实施例。在第三示例性实施例中,将描述使得多个数据处理器以并行方式执行处理的数据库设备6的配置的概述。
参考图19,在本示例性实施例中的数据库设备6具有数据处理器61、数据分配器62以及数据存储部63。
数据处理器61具有执行将划分成列形式的表列数据排序的处理的功能。如后文所述,数据处理器61从数据分配器62获取表列数据。然后,数据处理器61根据在表列数据的各个记录中包含的上述元素值,执行排序处理。在本示例性实施例中的数据库设备6具有多个数据处理器61。
数据分配器62具有根据在表列数据的各个记录中包含的元素值将获取的表列数据的记录分配到数据处理器61的功能。数据分配器62从例如外部设备或外部网络获取表列数据。然后,数据分配器62根据在表列数据的各个记录中包含的元素值,将获取的表列数据分配至数据处理器61。
数据存储部63是诸如存储器或硬盘的存储设备。数据存储部63从每个数据处理器61获取划分成列形式并且接受上述处理的数据。然后,数据存储部63连接并存储由各个数据处理器执行的处理结果。
因此,在本示例性实施例中的数据库设备6具有数据处理器61、数据分配器62以及数据存储部63。利用这种配置,数据分配器62根据在表列数据的各个记录中包含的元素值,将表列数据的记录分配至数据处理器61。数据处理器61执行并行处理,然后,通过数据存储部63连接并行处理的结果。因此,每个数据处理器61可以通过使用根据在表列数据的各个记录中包含的元素值分配的数据,可以执行处理。换言之,根据在表列数据的各个记录中包含的元素值,数据可以被分配到各个数据处理器61,然后,数据处理器可以分别执行高度独立的处理。随后,数据处理器61可以继续处理而不等待其他数据处理器61的处理,并且可以执行数据处理,同时尽可能保持线程安全。
通过将给定程序安装到信息存储设备中,可以实现上述数据库设备6。具体而言,作为本发明另一方面的程序是包含指令的程序,指令用于使得信息处理设备实现:多个数据处理器,其每个执行将划分成列形式的表列数据排序的处理;数据分配器,其根据在表列数据的各个记录中包含的元素值将获取的表列数据的记录分配到数据处理器;以及数据存储部,其将由各个数据处理器所执行的处理结果连接并存储,其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理。
此外,通过上述数据库设备6的操作执行的信息处理方法包括:根据在表列数据的各个记录中包含的元素值,将获取的表列数据的记录分配到多个数据处理器;导致数据处理器每个执行将划分成列形式的表列数据排序的处理;并且将由各个数据处理器执行的处理结果连接并存储。
具有上述配置的程序和信息处理方法具有与数据库设备6相同的动作,因此,也能实现本发明的上述目的。
[第四示例性实施例]
接下来,将参考附图,描述本发明的第四示例性实施例。在第四示例性实施例中,将描述数据库系统7的配置,数据库系统7包括数据库设备9和客户端设备8,数据库设备9导致多个数据处理器并行执行处理。
参考图20,在本示例性实施例中的数据库系统7具有客户端设备8和数据库设备9。而且,如图20中所示,客户端设备8和数据库设备9具有有线连接,并且被配置成能够彼此通信。
客户端设备8具有将表列数据传输到数据库设备9的功能。
数据库设备9具有数据处理器91、数据分配器92以及数据存储部93。
数据处理器91具有执行将划分成列形式的表列数据排序处理的功能。如下文所描述的,数据处理器91从数据分配器92获取表列数据。然后,数据处理器91根据在表列数据的各个记录中包含的元素值,执行排序处理。在本示例性实施例中的数据库设备9具有多个数据处理器91。
数据分配器92具有根据在表列数据的各个记录中包含的元素值将从客户端设备8获取的表列数据的记录分配给数据处理器61的功能。数据分配器92从客户端设备8获取表列数据。然后,数据分配器92根据在表列数据的各个记录中包含的元素值将获取的表列数据分配给数据处理器91。
数据存储部93是诸如存储器或硬盘的存储设备。数据存储部93从每个数据处理器91获取被划分成列形式并且接受上述处理的数据。然后,数据存储部93连接并存储由各个数据处理器执行的处理的结果。
因此,在本示例性实施例中的数据库系统7具有客户端设备8和数据库设备9。而且,数据库设备9具有数据处理器91、数据分配器92和数据存储部93。利用这种配置,数据分配器92根据在表列数据的各个记录中所包含的元素值,将从客户端设备8获取的表列数据的记录分配给数据处理器91。然后,数据处理器91执行并行处理,然后,数据存储部93连接该结果。因此,每个数据处理器91可以通过使用根据在表列数据的各个记录中包含的元素值分配的数据,执行处理。换言之,根据在表列数据的各个记录中包含的元素值,数据被分配给各个数据处理器91,因此,数据处理器91可以分别执行高度独立的处理。结果,数据处理器91可以进行处理,而不等待由其他数据处理器91的处理,并且可以执行数据处理,同时尽可能保持线程安全。
<附记>
上文公开的示例性实施例的全部或部分可以描述为下文的附记。下文中将描述根据本发明的数据库设备的概况等。然而,本发明不限于下文配置。
(附记1)
一种数据库设备,包括:
多个数据处理器,其每个执行对被划分成列形式的表列数据进行排序的排序处理;
数据分配器,其根据在获取的表列数据的各个记录中包含的元素值,将表列数据的记录分配到数据处理器;以及
数据存储部,其连接并存储由各个数据处理器执行的处理的结果,
其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理。
(附记2)
根据附记1所述的数据库设备,其中,数据分配器根据在表列数据的各个记录中包含的元素值的分配条件,将表列数据的记录分配给数据处理器。
(附记3)
根据附记2所述的数据库设备,其中,所述数据分配器基于由数据存储部所存储的数据分配条件,估计在表列数据的各个记录中包含的元素值的分配条件,并且根据在表列数据的各个记录中包含的元素值的估计分配条件,将表列数据的记录分配给数据处理器。
(附记4)
根据附记2或3所述的数据库设备,其中,数据分配器获取在表列数据的各个记录中包含的元素值的分配条件,基于元素值的获取的分配条件,计算与被分配到各个数据处理器的数据大小均等的分配阈值,并且基于计算的分配阈值,将表列数据的记录分配给数据处理器。
(附记5)
根据附记2至4的任何一项的数据库设备,其中,数据分配器根据在表列数据的各个记录中包含的元素值的分配条件,将表列数据的记录分配到数据处理器,使得包含近似元素值的记录被分配到同一数据处理器。
(附记6)
根据附记1至5的任何一项的数据库设备,其中:
每个数据处理器将先前在数据存储部中存储的原始数据的记录与获取的表列数据的记录合并,并且执行排序处理的更新处理;以及
数据存储部连接并存储由各个数据处理器执行的更新处理的结果。
(附记7)
根据附记1至6的任何一项的数据库设备,包括每个用于临时地存储表列数据的多个数据临时存储部,该数据临时存储部分别对应于数据处理器,其中:
每次获取表列数据的记录时,数据分配器将表列数据的记录分配给数据临时存储部;以及
多个数据处理器在同一时间启动对于由数据临时存储部所存储的数据的处理。
(附记8)
一种包括指令的程序,这些指令使得信息处理设备实现:
多个数据处理器,其每个执行对被划分成列形式的表列数据进行排序的排序处理;
数据分配器,其根据在获取的表列数据的各个记录中包含的元素值将表列数据的记录分配给数据处理器;以及
数据存储部,其连接并存储由各个数据处理器执行的处理的结果,
其中,多个数据处理器根据在表列数据的各个记录中包含的元素值,执行排序处理。
(附记9)
一种信息处理方法,包括:
根据在获取的表列数据的各个记录中包含的元素值,将表列数据的记录分配至多个数据处理器;以及
导致每个数据处理器执行将划分成列数据形式的表列数据排序的处理,并且将由各个数据处理器执行的处理结果连接并存储。
(附记10)
一种数据库系统,包括数据库设备和客户端设备,
数据库设备包括:多个数据处理器,其每个用于执行对被划分成列形式的表列数据进行排序的排序处理;数据分配器,其根据在获取的表列数据的各个记录中包含的元素值,将表列数据的记录分配到数据处理器;以及数据存储部,其连接并存储由各个数据处理器所执行的处理,其中,多个数据处理器根据在表列数据的各个记录中包含的元素值执行排序处理,以及
客户端设备,将表列数据传输至数据库设备。
在本示例性实施例和附记中所公开的程序被存储在存储设备中,或者记录在计算机可读记录介质上。例如,记录介质是诸如软盘、光盘、磁光盘或半导体存储器的便携式介质。
虽然已经参考示例性实施例描述了本发明,本发明不限于上述公开的示例性实施例。本发明的配置和具体细节可以在本发明范围内以本领域的技术人员能够理解的各种方式进行修改和改变。
Claims (10)
1.一种数据库设备,包括:
多个数据处理器,所述多个数据处理器中的每个数据处理器执行对被划分成列形式的表列数据进行排序的排序处理;
数据分配器,其根据获取的表列数据的各个记录中包含的元素值来将该表列数据的记录分配至所述数据处理器;以及
数据存储部,其连接并存储由各个所述数据处理器所执行的处理的结果,
其中,所述多个数据处理器根据所述表列数据的各个记录中包含的所述元素值来执行所述排序处理。
2.根据权利要求1所述的数据库设备,其中,
所述数据分配器根据在所述表列数据的各个记录中包含的所述元素值的分配条件,来将所述表列数据的记录分配给所述数据处理器。
3.根据权利要求2所述的数据库设备,其中,
所述数据分配器基于由所述数据存储部所存储的数据的分配条件,来估计在所述表列数据的各个记录中包含的所述元素值的分配条件,并且根据所估计的在所述表列数据的各个记录中包含的所述元素值的分配条件,来将所述表列数据的记录分配到所述数据处理器。
4.根据权利要求2所述的数据库设备,其中,
所述数据分配器获取在所述表列数据的各个记录中包含的所述元素值的分配条件,基于所获取的所述元素值的分配条件来计算与被分配到各个所述数据处理器的数据的大小均等的分配阈值,并且基于所计算出的分配阈值来将所述表列数据的记录分配到所述数据处理器。
5.根据权利要求2所述的数据库设备,其中,
所述数据分配器根据在所述表列数据的各个记录中包含的所述元素值的所述分配条件,将所述表列数据的记录分配到所述数据处理器,以使得包含近似元素值的记录被分配到同一数据处理器。
6.根据权利要求1所述的数据库设备,其中:
每个所述数据处理器将在所述数据存储部中先前存储的原始数据的记录与所获取的表列数据的记录相合并,并且执行所述排序处理的更新处理;以及
所述数据存储部连接并存储通过各个所述数据处理器所执行的所述更新处理的结果。
7.根据权利要求1所述的数据库设备,包括多个数据临时存储部,每个所述数据临时存储部用于临时地存储表列数据,所述数据临时存储部分别对应于所述数据处理器,其中:
每次获取所述表列数据的记录时,所述数据分配器将所述表列数据的记录分配到所述数据临时存储部;以及
所述多个数据处理器在同一时间启动对由所述数据临时存储部所存储的数据的处理。
8.一种存储有程序的非暂时性计算机可读介质,所述程序包括指令,所述指令用于使得信息处理设备实现:
多个数据处理器,所述多个数据处理器中的每个数据处理器执行对被划分成列形式的表列数据进行排序的排序处理;
数据分配器,其根据获取的表列数据的各个记录中包含的元素值来将该表列数据的记录分配至所述数据处理器;以及
数据存储部,其连接并存储由各个所述数据处理器所执行的处理的结果,
其中,所述多个数据处理器根据所述表列数据的各个记录中包含的所述元素值来执行所述排序处理。
9.一种信息处理方法,包括:
根据在获取的表列数据的各个记录中包含的元素值,来将该表列数据的记录分配到多个数据处理器;以及
使得每个所述数据处理器执行对被划分成列形式的表列数据进行排序的排序处理,并且连接以及存储通过各个所述数据处理器所执行的处理的结果。
10.一种数据库系统,其包括数据库设备和客户端设备,
所述数据库设备包括:
多个数据处理器,所述多个数据处理器中的每个数据处理器执行对被划分成列形式的表列数据进行排序的排序处理;
数据分配器,其根据获取的表列数据的各个记录中包含的元素值来将该表列数据的记录分配至所述数据处理器;以及
数据存储部,其连接并存储由各个所述数据处理器所执行的处理的结果,
其中,所述多个数据处理器根据所述表列数据的各个记录中包含的所述元素值来执行所述排序处理,并且
所述客户端设备将所述表列数据传输至所述数据库设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014063526A JP6287441B2 (ja) | 2014-03-26 | 2014-03-26 | データベース装置 |
JP2014-063526 | 2014-03-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105045791A true CN105045791A (zh) | 2015-11-11 |
Family
ID=54190690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510133285.0A Pending CN105045791A (zh) | 2014-03-26 | 2015-03-25 | 数据库设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150278310A1 (zh) |
JP (1) | JP6287441B2 (zh) |
CN (1) | CN105045791A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874272A (zh) * | 2015-12-10 | 2017-06-20 | 华为技术有限公司 | 一种分布式连接方法及系统 |
CN109284177A (zh) * | 2017-07-20 | 2019-01-29 | 北京京东尚科信息技术有限公司 | 一种数据更新方法和装置 |
CN109739903A (zh) * | 2018-12-30 | 2019-05-10 | 广州华多网络科技有限公司 | 一种排行榜数据的生成方法及相关装置 |
CN111259062A (zh) * | 2020-01-15 | 2020-06-09 | 山东汇贸电子口岸有限公司 | 一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708620A (zh) * | 2015-11-13 | 2017-05-24 | 苏宁云商集团股份有限公司 | 一种处理数据的方法及系统 |
CN106933836B (zh) * | 2015-12-29 | 2021-07-06 | 航天信息股份有限公司 | 一种基于分表的数据存储方法和系统 |
JP6680871B2 (ja) * | 2016-04-13 | 2020-04-15 | 株式会社日立製作所 | 計算機及びデータベース管理方法 |
JP6828334B2 (ja) * | 2016-09-13 | 2021-02-10 | 日本電気株式会社 | データベース管理装置、データベース管理システム、データベース管理方法、および、データベース管理プログラム |
JP6891533B2 (ja) * | 2017-02-23 | 2021-06-18 | 日本電気株式会社 | データベース装置 |
JP6480495B2 (ja) * | 2017-03-16 | 2019-03-13 | ヤフー株式会社 | データ管理装置、データ管理方法、およびプログラム |
JP6897248B2 (ja) | 2017-04-06 | 2021-06-30 | 富士通株式会社 | 更新反映プログラム、更新反映方法及び更新反映装置 |
JP7024432B2 (ja) * | 2018-01-18 | 2022-02-24 | 富士通株式会社 | データベース管理システム、データ変換プログラム、データ変換方法及びデータ変換装置 |
US11100119B2 (en) * | 2018-05-04 | 2021-08-24 | Sap Se | Determining data structures for spatial data based on spatial data statistics |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294364A (zh) * | 1999-10-26 | 2001-05-09 | 英业达集团(西安)电子技术有限公司 | 快速文字查找方法 |
CN1494696A (zh) * | 2000-11-17 | 2004-05-05 | 英特尔公司 | 为无线手机单元定制表列数据 |
US20060100974A1 (en) * | 2004-10-22 | 2006-05-11 | International Business Machines Corporation | Visual structuring of multivariable data |
CN102207956A (zh) * | 2010-03-29 | 2011-10-05 | 日本电气株式会社 | 数据库管理方法、数据库管理系统及其程序 |
CN102521303A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种用于列数据库的单表多列序存储方法 |
US20120203771A1 (en) * | 2011-02-04 | 2012-08-09 | Fannie Mae | Ranking and displaying appraiser-chosen comparables against model-chosen comparables |
CN103003813A (zh) * | 2010-04-05 | 2013-03-27 | 谷歌公司 | 记录的列状存储表示 |
CN103365943A (zh) * | 2012-03-26 | 2013-10-23 | 日本电气株式会社 | 数据库处理设备、数据库处理方法以及记录介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108361B2 (en) * | 2008-07-31 | 2012-01-31 | Microsoft Corporation | Efficient column based data encoding for large-scale data storage |
US9465844B2 (en) * | 2012-04-30 | 2016-10-11 | Sap Se | Unified table query processing |
US9165010B2 (en) * | 2012-04-30 | 2015-10-20 | Sap Se | Logless atomic data movement |
-
2014
- 2014-03-26 JP JP2014063526A patent/JP6287441B2/ja not_active Expired - Fee Related
-
2015
- 2015-03-24 US US14/666,487 patent/US20150278310A1/en not_active Abandoned
- 2015-03-25 CN CN201510133285.0A patent/CN105045791A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294364A (zh) * | 1999-10-26 | 2001-05-09 | 英业达集团(西安)电子技术有限公司 | 快速文字查找方法 |
CN1494696A (zh) * | 2000-11-17 | 2004-05-05 | 英特尔公司 | 为无线手机单元定制表列数据 |
US20060100974A1 (en) * | 2004-10-22 | 2006-05-11 | International Business Machines Corporation | Visual structuring of multivariable data |
CN102207956A (zh) * | 2010-03-29 | 2011-10-05 | 日本电气株式会社 | 数据库管理方法、数据库管理系统及其程序 |
CN103003813A (zh) * | 2010-04-05 | 2013-03-27 | 谷歌公司 | 记录的列状存储表示 |
US20120203771A1 (en) * | 2011-02-04 | 2012-08-09 | Fannie Mae | Ranking and displaying appraiser-chosen comparables against model-chosen comparables |
CN102521303A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种用于列数据库的单表多列序存储方法 |
CN103365943A (zh) * | 2012-03-26 | 2013-10-23 | 日本电气株式会社 | 数据库处理设备、数据库处理方法以及记录介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874272A (zh) * | 2015-12-10 | 2017-06-20 | 华为技术有限公司 | 一种分布式连接方法及系统 |
CN106874272B (zh) * | 2015-12-10 | 2020-02-14 | 华为技术有限公司 | 一种分布式连接方法及系统 |
CN109284177A (zh) * | 2017-07-20 | 2019-01-29 | 北京京东尚科信息技术有限公司 | 一种数据更新方法和装置 |
CN109284177B (zh) * | 2017-07-20 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 一种数据更新方法和装置 |
CN109739903A (zh) * | 2018-12-30 | 2019-05-10 | 广州华多网络科技有限公司 | 一种排行榜数据的生成方法及相关装置 |
CN109739903B (zh) * | 2018-12-30 | 2020-12-18 | 广州华多网络科技有限公司 | 一种排行榜数据的生成方法及相关装置 |
CN111259062A (zh) * | 2020-01-15 | 2020-06-09 | 山东汇贸电子口岸有限公司 | 一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置 |
CN111259062B (zh) * | 2020-01-15 | 2023-08-01 | 山东省电子口岸有限公司 | 一种能够保证分布式数据库全表查询语句结果集顺序的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150278310A1 (en) | 2015-10-01 |
JP6287441B2 (ja) | 2018-03-07 |
JP2015185104A (ja) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045791A (zh) | 数据库设备 | |
EP2924594B1 (en) | Data encoding and corresponding data structure in a column-store database | |
CN104317928A (zh) | 一种基于分布式数据库的业务etl方法及系统 | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
CN103177058A (zh) | 存储为行存储和列存储二者的混合数据库表 | |
CN103177055A (zh) | 存储为行存储和列存储二者的混合数据库表 | |
CN103177056A (zh) | 存储为行存储和列存储二者的混合数据库表 | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
CN102456188A (zh) | 一种数据管理系统及其设计方法 | |
CN104662564A (zh) | 数据分析装置以及程序 | |
CN115422205A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114022148B (zh) | 基于区块链的交易冲突检测方法、装置、设备和存储介质 | |
CN108694230A (zh) | 数据库中的唯一标识符的管理 | |
CN107977504A (zh) | 一种非对称堆芯燃料管理计算方法、装置及终端设备 | |
CN108874395A (zh) | 一种组件化流处理过程中的硬编译方法及装置 | |
CN112364021A (zh) | 业务数据处理方法、装置及存储介质 | |
WO2005106713A1 (ja) | 情報処理方法及び情報処理システム | |
CN106250559A (zh) | 网络io的异步非阻塞应用于数据库中间件的方法 | |
CN106897224A (zh) | 一种软件测试范围的确定方法及装置 | |
JP2008225686A (ja) | 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム | |
CN112148792B (zh) | 一种基于HBase的分区数据调整方法、系统及终端 | |
US20140280385A1 (en) | Hierarchical intersections | |
CN101359337A (zh) | 用于交互式地编辑gis拓扑数据集的方法 | |
CN114328486A (zh) | 基于模型的数据质量核查方法及装置 | |
US20140149360A1 (en) | Usage of Filters for Database-Level Implementation of Constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151111 |