CN103365923A - 用于评估数据库的分区方案的方法和装置 - Google Patents

用于评估数据库的分区方案的方法和装置 Download PDF

Info

Publication number
CN103365923A
CN103365923A CN2012101023868A CN201210102386A CN103365923A CN 103365923 A CN103365923 A CN 103365923A CN 2012101023868 A CN2012101023868 A CN 2012101023868A CN 201210102386 A CN201210102386 A CN 201210102386A CN 103365923 A CN103365923 A CN 103365923A
Authority
CN
China
Prior art keywords
database
partition
data
operating load
partition scheme
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
CN2012101023868A
Other languages
English (en)
Other versions
CN103365923B (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.)
EMC Corp
Original Assignee
EMC Corp
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 EMC Corp filed Critical EMC Corp
Priority to CN201210102386.8A priority Critical patent/CN103365923B/zh
Publication of CN103365923A publication Critical patent/CN103365923A/zh
Application granted granted Critical
Publication of CN103365923B publication Critical patent/CN103365923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的各实施方式涉及用于评估数据库的分区方案的方法和装置。具体地,提供了一种用于评估数据库的分区方案的方法,包括:加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载;解译数据库的分区方案以形成分区信息;基于分区信息,对数据库执行工作负载中定义的至少一部分操作以获得统计日志;以及基于统计日志,根据评估标准来评估分区方案。在另一实施方式中,提供了一种用于评估数据库的分区方案的装置。

Description

用于评估数据库的分区方案的方法和装置
技术领域
本发明的各实施方式涉及数据库***,更具体地,涉及用于评估数据库的分区方案的方法、装置和相关计算机程序产品。
背景技术
计算机技术的发展为人们的工作和生活提供了诸多便利,越来越多的数据采用数字化方式在数据库中存储和管理。在提供方便的同时,长期以来如何以更有效的方式存储和管理这些数据一直是数据库领域的研究重点。
为了改进数据库应用的性能,在需要管理的数据规模越来越大并且数据库应用越来越复杂的情况下,为了提高数据库***的扩展性、可用性和可管理性、并提高数据库应用的性能,目前已经针对事务型(transactional)应用和分析型(analytical)应用开发了数据库分区(database partitioning)技术。多数主要的数据库提供商(诸如,
Figure BSA00000698622800012
等)已经提出了支持数据库分区的解决方案。并且目前已经提出了多种数据库分区算法,例如,round-robin算法、基于范围的算法以及哈希算法等,这些算法已经广泛应用于数据库的各种分区方案。另外,已经提出了针对特殊需求而定制的更加灵活的数据库分区方案,例如Dynamo***的一致性哈希方案,针对社交网络的OneHop方案等。
面临各种可供选择的数据库分区方案,数据库管理员(DBA)难以辨别应当选择何种分区方案。在选择数据库分区方案时,数据库管理员通常需要考虑多项因素,例如分区键的选择、数据分区算法、数据放置策略、数据库的重分区、实现复杂性,等等。面临大量备选分区方案,数据库管理员如何选择适当的分区方案以实现性能优良的数据库,这成为一项亟待解决的问题。
尽管目前某些数据库的提供商开发了用于评估数据库分区方案的辅助工具,然而这些工具普遍存在诸多缺陷。例如,现有辅助工具通常仅向用户推荐单一的分区方案,然而并不描述使用该分区方案的优势或者效果;在比较各个分区方案的性能时,现有辅助工具通常基于计划开销估计来进行预测,难以保障准确性;并且现有辅助工具仅仅考虑数量有限的数据库分区方案,用户并不能利用辅助工具来评估自定义的分区方案;另外现有工具普遍是针对特定的数据库管理***开发的,不具备兼容性。
发明内容
因而,期望提供一种能够对数据库分区方案进行评估、并能够清晰地比较不同数据库分区方案在不同方面性能优劣的方法,以便降低选择分区方案时的大量人力和物力投入;并且,还期望提供一种可以跨越不同数据库管理***使用的兼容的评估工具。为此,本发明的各个实施方式提供了一种于评估数据库的分区方案的方法、装置和计算机程序产品。
在本发明的一个实施方式中,提供了一种用于评估数据库的分区方案的方法。该方法包括:加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载;解译数据库的分区方案以形成分区信息;基于分区信息,对数据库执行工作负载中定义的至少一部分操作以获得统计日志;以及基于统计日志,根据评估标准来评估分区方案。
在本发明的一个实施方式中,分区信息至少包括:分区键、查找表以及***配置。
在本发明的一个实施方式中,在加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载之前还包括:针对数据文件和/或工作负载进行压缩。
在本发明的一个实施方式中,提供了一种用于评估数据库的分区方案的装置,包括:加载装置,配置用于加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载;解译装置,配置用于解译数据库的分区方案以形成分区信息;执行装置,配置用于基于分区信息,对数据库执行工作负载中定义的至少一部分操作以获得统计日志;以及评估装置,配置用于基于统计日志,根据评估标准来评估分区方案。
在本发明的一个实施方式中,分区信息至少包括:分区键、查找表以及***配置。
在本发明的一个实施方式中,还包括:压缩装置,配置用于针对数据文件和/或工作负载进行压缩。
采用根据本发明的各实施方式,用户仅需要提供数据库数据以及针对数据库数据执行的操作,利用预存的数据库的分区方案或者自定义数据库的分区方案,即可针对各项数据库分区方案的多个方面进行评估;进而选择适当的数据库的分区方案或者针对特定数据库的分区方案进行进一步调整和评估。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了分布式数据库的架构图;
图2示意性示出了根据本发明一个实施方式的用于评估数据库分区方案的方法的流程图;
图3示意性示出了根据本发明一个实施方式的模拟执行中所构造伪表的数据结构;
图4示意性示出了根据本发明一个实施方式的用于评估数据库分区方案的架构图;
图5A示意性示出了根据本发明一个实施方式的显示分区后数据库中数据分布的界面,图5B示意性示出了根据本发明一个实施方式利用不同分区方案时产生分布式事务数量的界面;
图6示意性示出了根据本发明一个实施方式的用于评估数据库分区方案的装置的框图;以及
图7示意性示出了适于实现本发明实施方式的示例性计算***的框图。
具体实施方式
下面参考附图详细描述本发明的各实施方式。附图中的流程图和框图,图示了按照本发明各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
图1示意性示出了分布式数据库的架构图100。应当注意,随着数据库中数据量的增长,数据库应用中越来越多地采用了分布式数据库的存储方式。也即,将数据库中的数据分别存储在多个物理节点上。这些物理节点可以位于相同或者不同的物理位置,并且作为一个整体向外提供数据服务。应当注意,将数据放置在多个物理节点上,可以使得多个物理节点并行处理查询操作进而提高性能。另外每个操作可以只在一个物理节点或者几个物理节点上进行。当每个操作所要处理的数据集合更小,诸如只在全部数据的一部分上进行操作时,可以实现更加快速的查询处理。通过合理地设计分布式数据库中各个节点中的数据分布,可以提高数据库整体的运行效率。
例如,在图1所示的数据库100中,数据可以分布于节点1110、节点2120、...、以及节点N 130。对于某些小型数据库而言,尽管可以仅将数据存储在一个节点上,出于通用性考虑,在本发明采用分布于多个节点的分布式数据库作为描述本发明所述的方法和装置的应用环境。应当注意,在本文中所指的“用户”可以是数据库管理员,也可以是期望对数据库的分区方案进行评估的其他人员。
目前,为了选择适当的数据库分区方案,通常需要数据库管理员具备关于数据库分区技术的深厚技术基础,并且一般而言,数据库管理员基于以往积累的经验来评估数据库的各个分区方案是否适合于当前的数据库。这种方式一方面要求数据库管理员具备相当高的技术能力和丰富的经验积累;另一方面,单纯基于人为经验的判断缺乏实验数据的支持,并且由于不同数据库管理员的判断标准不一致,很难针对数据库的各个分区方案给出统一的评估结果。
为克服基于人工经验评估的不足,另一种评估方式是,基于数据库中的真实数据来逐一评估每个数据库分区方案。换言之,这种方式需要将数据库中的数据按照每个数据库分区方案来实际进行分区,并基于真实的数据库分区来评估每个方案的优劣。此方式虽然能够保证完全基于真实操作中的统计数据进行评估,然而当数据库设计复杂并且涉及海量数据时,完成针对一个分区方案的评估就需要数天甚至更多的时间。因而该方式在数据库技术领域中应用范围相当有限。
为解决上述方式的不足,在本发明的一个实施方式中提供了一种用于评估数据库的分区方案的方法,包括:加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载;解译数据库的分区方案以形成分区信息;基于分区信息,对数据库执行工作负载中定义的至少一部分操作以获得统计日志;以及基于统计日志,根据评估标准来评估分区方案。
具体地,图2示意性示出了根据本发明一个实施方式的用于评估数据库的分区方案的方法的流程图200。
首先,在步骤S202中,加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载。本发明的一个实施方式其原理在于,基于数据库中的数据以及需要对数据库执行的操作,来分析评估数据库的分区方案的各项指标。在本发明的一个实施方式中,描述数据库的数据文件可以是数据库实例和/或纯文本文件,定义针对数据库执行的操作的工作负载可以是结构化查询语言(SQL)的集合。
在步骤S204中,解译数据库的分区方案以形成分区信息。在此,数据库的分区方案即为待评估的分区方案,可以选择仅针对一个数据库分区方案进行评估,以获取有关数据库特定方面(例如,数据分布和工作负载分布等)的信息;或者还可以比较多个分区方案在某一特定方面的评估结果,以供选择最优的数据库分区方案。分区信息描述数据库分区方案的特征,正是由于不同方案各自分区信息的不同,使得当将相同数据库按照不同分区方案执行分区之后,在执行相同工作负载时会产生不同的性能,例如,产生响应时间的差异等。
接着,在步骤S206中,基于分区信息,对数据库执行工作负载中定义的至少一部分操作以获得统计日志。本发明的一个目的在于,在按照数据库分区方案进行分区后,对数据库执行工作负载中定义的操作以获得各种运行参数。因而,需要基于分区信息、数据库和工作负载三者获得来获得记录运行参数的统计日志。
应当注意,在此的统计日志可以是可配置的。例如,当用户希望获得工作负载在分布式数据库的各个节点间的负载分配时,可以配置本发明的方法来记录有关工作负载分配方面的统计日志;当用户特别关心在每个节点上执行工作负载的运行时间时,可以配置本发明的方法来记录有关运行时间的统计日志。本领域技术人员还可以基于具体需求来记录有关其他方面的统计日志。在本发明的一个实施方式中,统计日志可以与评估标准相关联。可以仅记录与评估标准有关的统计日志,以便降低在时间成本、计算资源和存储资源方面的不必要开销。
最后,在步骤S208中,基于统计日志,根据评估标准来评估分区方案。由于本发明采用在执行工作负载时记录的统计日志作为评估的依据,因而可以提供较为准确的评估结果。在本发明的一个实施方式中,可以以可视化界面的方式显示评估结果,例如显示某一分区方案在特定配置下的性能指标,显示某一分区方案在不同配置下的不同性能指标的比较,或者显示不同分区方案在相同配置下的性能指标的比较,等等。本发明的方法还可以推荐优选的分区方案,或者用户还可以调整配置参数,以便优化数据库分区方案的设置,并且获得期望的数据库分区方案。
在本发明的一个实施方式中,分区信息至少包括:分区键、查找表以及***配置。在此,分区键表示用于划分数据库中数据的键;查找表是基于特定的分区算法构造的,用于描述在分区期间将哪个数据划分至哪个节点,以便在查询路由期间可以通过查找表获知将查询操作路由至哪个节点;***配置可以表示数据多少、底层数据库的类型等。当数据库分布于不同的节点时,分区信息还可以包括节点数量以及分区方案的其他设置信息。
在本发明的一个实施方式中,在加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载之前还包括:针对数据文件和/或工作负载进行压缩。
应当注意,随着数据库技术的发展,数据库中存储信息的数量越来越多,因而造成数据文件日益庞大;另外,由于用户通常采用服务器跟踪工具来记录在某一时间段期间执行的全部操作来形成工作负载,造成提供作为本发明方法的输入的工作负载包括大量信息,甚至包括重复或者不必要的信息。由于数据文件和工作负载的数量级越来越大,很可能导致加载数据文件以及工作负载的时间过长。出于提高效率考虑,本发明提出了一种通过压缩来降低需要加载的数据文件和/或工作负载的大小的方法。
应当注意,本发明中所述的“压缩”具有特殊含义,是指为确保能够产生与利用未压缩数据文件和工作负载进行评估时基本相同的结果,而对原始数据文件和工作负载进行的预处理。在预处理中,可以丢弃部分不太重要的信息以便降低数据文件和工作负载的大小。
针对数据文件的压缩可以采用UpSizeR技术,该技术输入经验关系数据集D和缩放因子s(在本发明中s<1),作为压缩结果而产生经采样的数据集D’,该数据集D’类似于数据集D然而仅为其s倍大小。以此方式,可以缩减输入数据文件的大小并且尽可能保留了有效数据。关于UpSizeR的具体细节,请参见Y.C.Tay,B.Dai,T.Wang et.al.UpSizeR:Synthetically Scaling an Empirical RelationalDatabase.Technical Report TR  12/10,National University ofSingapore。针对工作负载的压缩,可以采用基于每个查询的签名划分工作流的方法实现,具体细节请参见S.Chaudhuri,A.Gupta and V.Narasayya.Compressing SQL Workloads.In SIGMOD 2004。
应当注意,根据具体需求可以选择针对数据文件和工作负载中之一进行压缩,或者还可以针对以上两者进行压缩。尽管压缩过程会在一定程度上影响最终评估结果,然而,由于可以大大降低被加载的数据文件以及工作负载的数据量,这使得在加载过程以及在后续针对所加载的数据文件执行工作负载中定义的操作期间,可以大大降低处理的数据量和处理的复杂性,进而可以较大程度地降低整个评估过程的时间开销。应当注意,压缩过程是可选操作,如果原始数据文件和/或工作负载本身较小,或者用户期望基于原始文件进行处理时,可以不进行压缩。
在本发明的一个实施方式中,基于分区信息、对数据库执行工作负载中定义的至少一部分操作以获得统计日志包括,通过实际执行以及模拟执行中的至少一项来获得统计日志。
本发明的实施方式提供了实际执行和模拟执行两种备选方式以获得统计日志。
在本发明的一个实施方式中,实际执行是指在数据库***的真实环境中执行,即将按照待评估数据库分区方案分区后的数据加载到特定的数据库管理***中。例如,当采用IBM DB2数据库时,所执行的工作负载可以在IBM DB2数据库的真实环境中执行。此时加载的数据文件应当是完整的或者是合理压缩的,并且待评估的数据库分区方案数量应当较小,否则难以在有限时间内完成。实际执行能够在有限的时间段内生成准确的统计日志,适合于小规模数据库。
在本发明的一个实施方式中,模拟执行并不将按照待评估数据库分区方案分区后的数据加载到特定的数据库管理***中,而是仅基于一种模拟方式,模拟在真实数据库环境中执行工作负载中各操作的过程,并针对工作负载中的各个操作给出预测开销,进而基于该预测开销获得整体的估计开销。模拟执行无需实际将数据库进行分区,也无需逐一执行工作负载中的每个操作,因而可以在较短时间内完成但准确性比实际执行稍低。
在本发明的一个实施方式中,实际执行包括:将数据库部署至分区节点;将工作负载中的操作路由至相应的分区节点并执行;以及在执行期间记录统计日志。
实际执行需要按照待评估数据库分区方案,将数据库分区并且将数据部署至各个分区节点。例如,如果数据库分区方案中指定节点数量为10并且数据库的类型为IBM DB2,则需要选择IBM DB2运行环境,并将所加载的数据库部署到10个节点。当实际执行工作负载中的查询操作时,需要利用查找表将查询路由至目标数据所在的节点。此时工作负载中的每个查询都在相应节点处执行,并且将真正涉及每个节点中的数据存储。继而,记录下执行期间的统计日志。查询路由是实际执行中的关键因素,其通过查找表将工作负载中的每个查询路由至相关的分区。
在本发明的一个实施方式中,模拟执行包括:基于数据库和分区信息,构建描述分区方案以及数据库的伪表;以及基于伪表执行工作负载中的操作以获得统计日志。
不同于实际执行需要在真实数据库环境中使用底层数据库,在模拟执行中并不需要底层数据库而是仅基于伪表来模拟真实查询过程。伪表中存储了描述按照待评估数据库分区方案进行划分后的数据库的信息,通过查询伪表可以模拟在真实的底层数据库中执行查询的各种开销。
例如,图3示意性示出了根据本发明一个实施方式的伪表的数据结构300。在伪表300中可以包括:有关数据放置的信息310、数据库分区方案中的分区键的信息320、以及数据库中主键的信息330,还可以包括其他可用信息340。应当注意,模拟执行并不真正执行工作负载中的每个操作,而是基于历史经验给出执行每个操作时所需的预测开销。
在生成伪表时,需要扫描数据库的信息以及待评估数据库分区方案的分区信息;并且所生成的伪表以分区方式进行组织以便将属于同一节点的伪表分组在一起,这样可以有效模拟经过数据库分区后的底层数据库。应当注意,由于伪表中可以忽略原始数据中不必要的信息并且仅提取有效信息,因而伪表的数据量相当小并且可以保存在计算机的主存储器中以便快速访问。
应当注意,在模拟执行中的日志中记载的数据是基于预测开销计算获得的。例如,基于伪表300中所示的数据放置信息310,可以得知每个节点上存储了哪些数据;当数据库中出现节点数量变化时,可以基于伪表进行统计以便预测在出现重分区时需要迁移多少数据;另外,还可以基于伪表获得执行工作负载中操作的预测开销。由于模拟执行不必在各个节点之间路由查询,而是仅需要访问主存储器中的伪表,因而执行时间大大降低。
图4示意性示出了根据本发明一个实施方式的用于评估数据库的分区方案的架构图400。该架构图示出了根据本发明的方法来进行评估时,在不同步骤之间的数据流向的图示。
在方框402处,加载数据文件(如箭头A所示)和工作负载(如箭头B所示),在此处加载数据文件不必真正加载数据库,而是可以仅获得访问数据库的入口。应当注意,在架构图400中,还可以包括如前文所述的可选压缩处理。在方框404处,接收并解译分区方案(如箭头C所示)。这里的分区方案可以包括预置的数据库分区方案,还可以是用户自定义的数据库分区方案。解译后的分区信息(如箭头D所示)被输出至方框406处用于执行。
在方框406处,输入加载后的数据文件和工作负载、以及解译后的分区信息。在执行期间,可以选择实际执行406A和/或模拟执行406B,根据具体情况还可以针对时间性要求较高的部分选择采用模拟执行406B,而针对准确性要求较高的部分选择实际执行406A。经过实际执行406A和/或模拟执行406B,将输出统计日志(如箭头E所示)。
统计日志中记录了评估特定数据库分区方案的某一方面特征的统计数据,在方框408处,基于读入的评估标准(如箭头F所示),输出最终评估结果(如箭头G所示)。评估结果可以采取文字、统计表、统计图(如,柱状图、曲线图、饼图等)各种形式表示,目的在于便于用户评价数据库分区方案的各方面指标。
在本发明的一个实施方式中,评估标准包括以下至少一项:数据分布、工作负载分布、分布式事务的数量以及重分区数据迁移、执行时间、响应时间、单位时间内执行的工作负载。具体而言,数据分布可以用于表示在进行数据库分区操作时,多少数据跨越不同的分区(节点)分布。工作负载分布可以用于表示在执行工作负载期间,有多少数据访问跨越不同分区分布。分布式事务的数量可以用于表示,由于进行了数据库分区而导致有多少事务处理跨越不同的分区。由于分布式事务将产生额外的执行开销,因而在评估数据库分区方案时通常优选导致较少分布式事务的数据库分区方案。重分区数据迁移可以用于表示当出现数据库的重分区时,有多少数据量将被迁移。可以认为,数据库中节点的增加和/或降低是导致数据库重分区的触发条件。通常,在评估数据库分区方案时优选导致较小数据迁移的方案。
应当注意,在上文中仅仅示意性示出了评估标准的几个示例,针对具体需求,本领域技术人员可以定义其他评估标准,并且可以将多个标准进行组合以评估数据库分区方案的整体性能。例如,对于事务型应用和分析性应用,可以采用不同的评估标准。
在本发明的一个实施方式中,分区方案包括预定义的分区方案以及自定义的分区方案。在本发明的实施方式中,可以提供多个预置的数据库分区方案(例如,基于round-robin算法、基于范围的算法以及哈希算法等)。还提供了自定义数据库分区方案的接口,本领域技术人员可以通过该接口自己定制数据库分区方案。例如,用户可以采用诸如Java语言编写数据库分区方案,或者还可以采用其他方式定义数据库分区方案,只要能够清晰描述数据库分区方案的分区键、查找表以及***配置、数据库节点的数量以及在评估中所需的其他信息即可。
在本发明的一个实施方式中,描述数据库的数据文件是数据库实例和/或纯文本文件。本发明的各实施方式并不具体限定数据库的格式,例如,数据文件可以是IBM数据库实例、Oracle数据库实例或者Microsoft数据库的实例;另外,该数据库文件还可以是从各种格式的数据库中导出的纯文本文件。因而,本发明提供了一种兼容各种数据库格式的通用解决方案,这有利于用户基于现有数据库来评估多种数据库分区方案以便进行数据库优化。
在本发明的一个实施方式中,还包括:调整分区方案的设置以获得新的分区方案。从上文描述中可知,本发明的用于评估数据库分区方案的方法可以采用多种方式呈现评估数据,可以在多个数据库分区方案间进行比较并且还支持用户修改配置参数。因而用户可以基于对预置的或者自定义的数据库分区方案进行修改,来获得新的分区方案。
在本发明的一个实施方式中,可以以不同方式显示针对数据库的分区方案的评估。各种可视化的方式不但可以展示单个分区方案的评估结果,还可以以图形化方式将多个分区方案进行。另外如果用户想要知道某个分区的具体细节,还可以以动画的形式向用户提供对数据库进行分区的过程。这些具体的展示即可以使用户清晰地看到分区的效果,又可以方便用户清楚具体分区的细节。
在本发明的一个实施方式中,可以以图形方式来展示单个分区方案的效果。图5A示意性示出了根据本发明一个实施方式的显示分区后数据库中数据分布的界面500A。例如用户希望查看分区后的数据分布是否均匀,则可以采用图5A来显示。在图5A中,每个柱图代表一个节点上面的数据数目,这样用户可以清楚地了解被划分到每个节点上的数据是否为均匀的。
在本发明的一个实施方式中,可以以图形化方式展示各个分区方案在某些评估标准下的具体差异。图5B示意性示出了根据本发明一个实施方式利用不同分区方案时产生分布式事务数量的界面500B。如图5B所示,每个柱图代表特定分区方案所产生的分布式事务的数目。通过图5B所示的界面,用户可以清楚地了解:针对分布式事务数量而言,第3种分区方案的效果最好,并且可以清楚该分区方案与其他分区方案之间的差异有多少。
在本发明的一个实施方式中,还可以展示分区方案的分区过程和具体细节。例如,可以展示特定分区方案所选的每个表的分区键分别是什么,以动画方式显示表中的各个元组是以什么方式划分到各个分区,以及显示相应的查询如何被分配到各个节点以便执行。
在本发明的一个实施方式中,用户可以修改分区方案的设置并可以立即看到修改的效果,从而可以方便地进行参数调整和优化。例如,用户可以将某些领域内的专业知识作为本发明方法的输入,以便实现更好的分区策略;可以和相关领域内的专家进行交互,充分利用计算机的计算能力,从而支持将专家指导引入本发明的方法;另外,用户还可以进行循环调整和优化,通过修改分区方案相关参数来找到最优的参数。
例如,对于范围分区方案而言,具体范围区间的大小是一个可以调节的参数,用户可以通过修改该参数来获得不同区间大小下的评估效果,进而选出最适合的区间大小。另外,如果用户认为某个区间大小是最优的,则该用户也可以直接将该最优数值作为本发明各方法的输入,以便指导评估。
又例如,对于任何一个分区方案,通过提供分区的具体细节而使得用户可以利用自己的先验知识来调整分区方案,例如可以更改某个表的分区键,更改某个表的数据放置策略等等。用户可以立即看到调整效果从而判断修改是否有效。应当注意,采用本发明的方法可以在无需重新构建新的分区方案的情况下,获得调整后分区方案的各项参数。
图6示意性示出了根据本发明一个实施方式的用于评估数据库的分区方案的装置的框图600。该装置包括:加载装置610,配置用于加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载;解译装置620,配置用于解译数据库的分区方案以形成分区信息;执行装置630,配置用于基于分区信息,对数据库执行工作负载中定义的至少一部分操作以获得统计日志;以及评估装置640,配置用于基于统计日志,根据评估标准来评估分区方案。
在本发明的一个实施方式中,分区信息至少包括:分区键、查找表以及***配置。
在本发明的一个实施方式中,还包括:压缩装置,配置用于针对数据文件和/或工作负载进行压缩。
在本发明的一个实施方式中,执行装置包括以下至少一项:实际执行装置以及模拟执行装置。
在本发明的一个实施方式中,实际执行装置包括:部署装置,配置用于将数据库部署至分区节点;路由装置,配置用于将工作负载中的操作路由至相应的分区节点并执行;以及记录装置,配置用于在执行期间记录统计日志。
在本发明的一个实施方式中,模拟执行装置包括:构建装置,配置用于基于数据库和分区信息,构建按照分区方案进行分区后的数据库的伪表;以及获得装置,配置用于基于伪表执行工作负载中的操作以获得统计日志。
在本发明的一个实施方式中,评估标准包括以下至少一项:数据分布、工作负载分布、分布式事务的数量以及重分区数据迁移、执行时间、响应时间、单位时间内执行的工作负载。
在本发明的一个实施方式中,分区方案包括预定义的分区方案以及自定义的分区方案。
在本发明的一个实施方式中,描述数据库的数据文件是数据库实例和/或纯文本文件。
在本发明的一个实施方式中,还包括:调整装置,配置用于调整分区方案的设置以获得新的分区方案。
根据本发明各实施方式的方法和装置可以克服现有技术中人工评估数据库分区方案中的各种不足,提供了自动评估工具,还提供了用户交互以便对已有的数据库分区方案进行调整进而得到最优的分区方案。通过压缩技术,根据本发明的方法和装置使得能够基于超大容量的数据库和工作负载,来评估数据库分区方案的性能。根据本发明的方法和装置提供了高度可视化的评估和比较工具,并基于不同评估标准向用户推荐候选方案,使得用户可以清晰理解不同数据库分区方案在不同的评估标准方面的性能优劣。此外,根据本发明的方法和装置还提供了一种高度可定制的工具,用户可以自定义数据库分区方案和评估标准,并且该工具可以采用单独应用的方式实现,或者作为现有数据库管理***的插件来实现。
图7示意性示出了适于实现本发明实施方式的示例性计算***的框图700。如所示,计算机***700可以包括:CPU(中央处理单元)701、RAM(随机存取存储器)702、ROM(只读存储器)703、***总线704、硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口控制器708、显示控制器709、硬盘710、键盘711、串行外部设备712、并行外部设备713和显示器714。在这些设备中,与***总线704耦合的有CPU 701、RAM 702、ROM 703、硬盘控制器705、键盘控制器706、串行控制器707、并行控制器708和显示控制器709。硬盘710与硬盘控制器705耦合,键盘711与键盘控制器706耦合,串行外部设备712与串行接口控制器707耦合,并行外部设备713与并行接口控制器708耦合,以及显示器714与显示控制器709耦合。应当理解,图7的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
本技术领域的技术人员知道,本发明的多个方面可以体现为***、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“***”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。
可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的***、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组合。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如“C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其他可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。
也可以把计算机程序指令加载到计算机或其他可编程数据处理装置上,使得在计算机或其他可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其他可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
从上述描述应当理解,在不脱离本发明真实精神的情况下,可以对本发明各实施方式进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。本发明的范围仅受所附权利要求书的限制。

Claims (21)

1.一种用于评估数据库的分区方案的方法,包括:
加载描述数据库的数据文件以及定义针对数据库执行的操作的工作负载;
解译所述数据库的分区方案以形成分区信息;
基于所述分区信息,对所述数据库执行所述工作负载中定义的至少一部分操作以获得统计日志;以及
基于所述统计日志,根据评估标准来评估所述分区方案。
2.根据权利要求1所述的方法,其中所述分区信息至少包括:分区键、查找表以及***配置。
3.根据权利要求1所述的方法,其中在加载描述所述数据库的数据文件以及定义针对所述数据库执行的操作的工作负载之前还包括:针对所述数据文件和/或所述工作负载进行压缩。
4.根据权利要求1至3中的任一项所述的方法,其中基于所述分区信息、对所述数据库执行所述工作负载中定义的至少一部分操作以获得统计日志包括,通过实际执行以及模拟执行中的至少一项来获得所述统计日志。
5.根据权利要求4所述的方法,其中所述实际执行包括:
将所述数据库部署至分区节点;
将所述工作负载中的操作路由至相应的分区节点并执行;以及
在执行期间记录所述统计日志。
6.根据权利要求4所述的方法,其中所述模拟执行包括:
基于所述数据库和所述分区信息,构建按照所述分区方案进行分区后的数据库的伪表;以及
基于所述伪表执行所述工作负载中的操作以获得所述统计日志。
7.根据权利要求1至3中的任一项所述的方法,其中所述评估标准包括以下至少一项:数据分布、工作负载分布、分布式事务的数量以及重分区数据迁移、执行时间、响应时间、单位时间内执行的工作负载。
8.根据权利要求1至3中的任一项所述的方法,其中所述分区方案包括预定义的分区方案以及自定义的分区方案。
9.根据权利要求1至3中的任一项所述的方法,其中描述所述数据库的数据文件是数据库实例和/或纯文本文件。
10.根据权利要求1至3中的任一项所述的方法,还包括:调整所述分区方案的设置以获得新的分区方案。
11.一种用于评估数据库的分区方案的装置,包括:
加载装置,配置用于加载描述所述数据库的数据文件以及定义针对所述数据库执行的操作的工作负载;
解译装置,配置用于解译所述数据库的分区方案以形成分区信息;
执行装置,配置用于基于所述分区信息,对所述数据库执行所述工作负载中定义的至少一部分操作以获得统计日志;以及
评估装置,配置用于基于所述统计日志,根据评估标准来评估所述分区方案。
12.根据权利要求11所述的装置,其中所述分区信息至少包括:分区键、查找表以及***配置。
13.根据权利要求11所述的装置,其中还包括:压缩装置,配置用于针对所述数据文件和/或所述工作负载进行压缩。
14.根据权利要求11至13中的任一项所述的装置,其中所述执行装置包括以下至少一项:实际执行装置以及模拟执行装置。
15.根据权利要求14所述的装置,其中所述实际执行装置包括:
部署装置,配置用于将所述数据库部署至分区节点;
路由装置,配置用于将所述工作负载中的操作路由至相应的分区节点并执行;以及
记录装置,配置用于在执行期间记录所述统计日志。
16.根据权利要求14所述的装置,其中所述模拟执行装置包括:
构建装置,配置用于基于所述数据库和所述分区信息,构建按照所述分区方案进行分区后的数据库的伪表;以及
获得装置,配置用于基于所述伪表执行所述工作负载中的操作以获得所述统计日志。
17.根据权利要求11至13中的任一项所述的装置,其中所述评估标准包括以下至少一项:数据分布、工作负载分布、分布式事务的数量以及重分区数据迁移、执行时间、响应时间、单位时间内执行的工作负载。
18.根据权利要求11至13中的任一项所述的装置,其中所述分区方案包括预定义的分区方案以及自定义的分区方案。
19.根据权利要求11至13中的任一项所述的装置,其中描述所述数据库的数据文件是数据库实例和/或纯文本文件。
20.根据权利要求11至13中的任一项所述的装置,还包括:调整装置,配置用于调整所述分区方案的设置以获得新的分区方案。
21.一种具有可执行计算机程序代码指令的计算机可读存储介质,当由数据处理装置执行时,所述可执行计算机程序代码指令使得所述数据处理装置执行根据权利要求1至10中的任一项所述的方法。
CN201210102386.8A 2012-03-30 2012-03-30 用于评估数据库的分区方案的方法和装置 Active CN103365923B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210102386.8A CN103365923B (zh) 2012-03-30 2012-03-30 用于评估数据库的分区方案的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210102386.8A CN103365923B (zh) 2012-03-30 2012-03-30 用于评估数据库的分区方案的方法和装置

Publications (2)

Publication Number Publication Date
CN103365923A true CN103365923A (zh) 2013-10-23
CN103365923B CN103365923B (zh) 2018-12-07

Family

ID=49367285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210102386.8A Active CN103365923B (zh) 2012-03-30 2012-03-30 用于评估数据库的分区方案的方法和装置

Country Status (1)

Country Link
CN (1) CN103365923B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220126A (zh) * 2017-05-27 2017-09-29 中国南方电网有限责任公司调峰调频发电公司 x86服务器动态硬分区方法、装置、存储介质和计算机设备
CN108009261A (zh) * 2017-12-12 2018-05-08 北京奇艺世纪科技有限公司 一种数据同步方法、装置及电子设备
CN108228718A (zh) * 2017-12-06 2018-06-29 链家网(北京)科技有限公司 一种确定评估数据目标分区的处理方法及服务器
CN108628972A (zh) * 2018-04-25 2018-10-09 咪咕音乐有限公司 一种数据表的处理方法、装置及存储介质
CN109154933A (zh) * 2016-05-04 2019-01-04 华为技术有限公司 分布式数据库***以及分布和访问数据的方法
WO2021185338A1 (zh) * 2020-03-19 2021-09-23 华为技术有限公司 事务处理***的管理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256516A (zh) * 2007-02-28 2008-09-03 Sap股份公司 网格环境中的数据分布和任务实例
CN102201010A (zh) * 2011-06-23 2011-09-28 清华大学 无共享架构的分布式数据库***及其实现方法
CN102262636A (zh) * 2010-05-25 2011-11-30 ***通信集团浙江有限公司 生成数据库分区执行计划的方法及装置
US20120036249A1 (en) * 2010-08-05 2012-02-09 Karthik Chandrasekaran Autonomous intelligent workload management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256516A (zh) * 2007-02-28 2008-09-03 Sap股份公司 网格环境中的数据分布和任务实例
CN102262636A (zh) * 2010-05-25 2011-11-30 ***通信集团浙江有限公司 生成数据库分区执行计划的方法及装置
US20120036249A1 (en) * 2010-08-05 2012-02-09 Karthik Chandrasekaran Autonomous intelligent workload management
CN102201010A (zh) * 2011-06-23 2011-09-28 清华大学 无共享架构的分布式数据库***及其实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卢朝霞 等: ""基于数据库分区的海量数据存储技术的研究"", 《2006中国控制与决策学术主会论文集》 *
张新建等: ""Oracle数据库分区优化技术研究与应用"", 《指挥信息***与技术》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109154933A (zh) * 2016-05-04 2019-01-04 华为技术有限公司 分布式数据库***以及分布和访问数据的方法
CN109154933B (zh) * 2016-05-04 2021-06-22 华为技术有限公司 分布式数据库***以及分布和访问数据的方法
CN107220126A (zh) * 2017-05-27 2017-09-29 中国南方电网有限责任公司调峰调频发电公司 x86服务器动态硬分区方法、装置、存储介质和计算机设备
CN108228718A (zh) * 2017-12-06 2018-06-29 链家网(北京)科技有限公司 一种确定评估数据目标分区的处理方法及服务器
CN108009261A (zh) * 2017-12-12 2018-05-08 北京奇艺世纪科技有限公司 一种数据同步方法、装置及电子设备
CN108628972A (zh) * 2018-04-25 2018-10-09 咪咕音乐有限公司 一种数据表的处理方法、装置及存储介质
CN108628972B (zh) * 2018-04-25 2020-11-06 咪咕音乐有限公司 一种数据表的处理方法、装置及存储介质
WO2021185338A1 (zh) * 2020-03-19 2021-09-23 华为技术有限公司 事务处理***的管理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN103365923B (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
US11762882B2 (en) System and method for analysis and management of data distribution in a distributed database environment
CN109726174A (zh) 数据归档方法、***、设备以及存储介质
US10013656B1 (en) Methods and apparatus for analytical processing of provenance data for HPC workflow optimization
CN103020150B (zh) 多维分组运算符
US9141666B2 (en) Incremental maintenance of range-partitioned statistics for query optimization
CN103365923A (zh) 用于评估数据库的分区方案的方法和装置
CN102479217B (zh) 一种分布式数据仓库中实现计算均衡的方法及装置
CN111159180A (zh) 一种基于数据资源目录构建的数据处理方法及***
CN103455489A (zh) 一种快速构建企业关键业绩指标的方法和***
US11899810B2 (en) Systems and methods for determining database permissions
US12026160B2 (en) Query plan cache in database systems
AU2020101071A4 (en) A Parallel Association Mining Algorithm for Analyzing Passenger Travel Characteristics
CN102158533B (zh) 基于QoS的分布式web服务选择方法
CN105095515A (zh) 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备
CN108628972A (zh) 一种数据表的处理方法、装置及存储介质
CN103793401B (zh) 建立多个数据库表的共享索引的方法及装置
US20100332501A1 (en) System and method for on-demand indexing
US10657126B2 (en) Meta-join and meta-group-by indexes for big data
CN108763276A (zh) 一种基于关系型数据库转存大数据平台的方法及***
CN115168389A (zh) 请求处理方法以及装置
CN104572648B (zh) 一种基于高性能计算的存储统计***及方法
CN113297252A (zh) 一种模式无感知的数据查询服务方法
Hong et al. Big Data Analysis System Based on Cloudera Distribution Hadoop
Hu et al. GAIDR: An efficient time series subsets retrieval method for geo-distributed astronomical data
Yang et al. Survey on Query Optimization of GPU database

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200407

Address after: Massachusetts, USA

Patentee after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Patentee before: EMC Corp.

TR01 Transfer of patent right