CN110309169A - 关系链存储系统的数据查询方法、装置、介质及电子设备 - Google Patents
关系链存储系统的数据查询方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN110309169A CN110309169A CN201810326507.4A CN201810326507A CN110309169A CN 110309169 A CN110309169 A CN 110309169A CN 201810326507 A CN201810326507 A CN 201810326507A CN 110309169 A CN110309169 A CN 110309169A
- Authority
- CN
- China
- Prior art keywords
- data
- screening
- mode
- threshold value
- rarefication
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000003860 storage Methods 0.000 title claims abstract description 81
- 238000012216 screening Methods 0.000 claims abstract description 209
- 238000013480 data collection Methods 0.000 claims abstract description 74
- 230000008569 process Effects 0.000 claims description 28
- 239000012141 concentrate Substances 0.000 claims description 4
- 238000013481 data capture Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000007873 sieving Methods 0.000 claims 2
- 238000012986 modification Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 6
- 239000012634 fragment Substances 0.000 abstract description 4
- 230000007423 decrease Effects 0.000 abstract description 3
- 238000004445 quantitative analysis Methods 0.000 abstract description 2
- 210000003813 thumb Anatomy 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
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
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
技术领域
本公开涉及数据处理,特别地,涉及用于关系链存储系统的数据查询方法、装置、存储介质及其电子设备。
背景技术
关系链存储系统是一种定制的存储系统,能够对保存数据的多个属性建立索引,方便业务拉取展示。
对于关系链数据的查询请求,目前最基础的查询方式是根据请求的排序属性值的索引,依次遍历各条数据,同时判断每条数据是否满足筛选属性的筛选条件的要求。若满足筛选条件则返回数据,否则继续寻找,直到达到用户所要求的数据数量或数据集合中的数据已经遍历完成。
但是对于遍历过程中的筛选方式,当符合筛选条件的数据在总数据集中出现很少时,会使得存储侧不断遍历数据集。这个过程可能非常漫长,而在此期间用户无法看到需要展示的数据,用户体验比较差。另外一方面,如果大量的查询请求都符合上述特征,那么也会造成存储服务侧的吞吐率急剧下降,甚至可能使整个存储服务系统雪崩。
存储结果缓存的方式能在某种程度上缓解这个问题,但是这种方式不够灵活。一般能够缓存的结果数量是一定的,那么在某些复杂的业务场景下,缓存的方式无法满足复杂的业务需求,最终还是会退化到遍历筛选的方式。
因此,存在对数据查询进行改进的需求。
发明内容
本公开的目的在于提供一种数据查询方法、装置、存储介质及其电子设备,解决在数据查询中,特别是针对关系链存储系统中的数据查询中符合筛选条件的数据在总数据集中占比较少时出现的用户体验下降和系统吞吐率降低的问题,提高数据查询的效率,提高用户体验。
根据本公开的一方面,提出一种用于数据查询的方法,所述数据包括第一属性和第二属性,该方法包括:
获取所述数据的总数据集和结果数据集,其中所述总数据集包括以所述第一属性对所述总数据集的数据进行排序生成的第一索引,所述结果数据集包括以所述第二属性的筛选条件从所述总数据集中筛选的数据;
基于所述数据的稀疏度选择所述数据的查询方式,其中所述稀疏度为所述总数据集中的数据数量与所述结果数据集中的数据数量的比值;
基于所选择的查询方式,生成所述总数据集中的数据的第二索引,其中所述第二索引包括以所述第二属性对在查询中筛选出的数据进行排序生成的第一子索引和以所述第一属性对所述总数据集中与在查询中筛选出的数据不同的其它数据进行排序生成的第二子索引。
根据本公开的实施例,基于所述数据的稀疏度选择所述数据的查询方式包括:当所述稀疏度大于或等于筛选阈值、并且所述结果数据集的数据数量大于或等于排序阈值时,选择慢查询遍历筛选方式;当所述稀疏度大于或等于所述筛选阈值、并且所述结果数据集的数据数量小于所述排序阈值时,选择动态排序方式;当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,选择遍历筛选方式;当所述稀疏度小于所述筛选阈值;并且所述结果数据集的数据数量小于所述快排序阈值时,选择所述动态排序方式,
其中在所述遍历筛选方式中,以所述第一索引从所述总数据集中筛选数据,当满足所述筛选条件的数据数量达到设定值或者对所述总数据集中的所有数据完成筛选时停止筛选,在所述慢查询遍历筛选方式中,在与所述遍历筛选方式的进程不同的外部进程中处理所述数据并返回遍历筛选结果,在所述动态排序方式中,以所述第二属性对所述总数据集中的数据进行排序以便从所述总数据集中筛选数据。
根据本公开的实施例,当所述稀疏度大于或等于所述筛选阈值、并且所述结果数据集的数据数量小于所述排序阈值时,选择动态排序方式还包括:当所述结果数据集的数据数量大于或等于慢排序阈值时,选择慢查询动态排序方式;当所述结果数据集的数据数量小于所述慢排序阈值时,继续选择所述动态排序方式,在所述慢查询动态排序方式中,在与所述动态排序方式的进程不同的外部进程中处理所述数据并返回动态排序结果。
根据本公开的实施例,当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,选择所述遍历筛选方式还包括:当所述稀疏度大于或等于慢筛选阈值时,选择所述慢查询遍历筛选方式;当所述稀疏度小于所述慢筛选阈值时,继续选择所述遍历筛选方式。
根据本公开的实施例,当选择所述遍历筛选方式时,设置跳跃计数最大值和跳跃步长,当不满足所述筛选条件的数据数量累计超过所述跳跃计数最大值时,在所述总数据集中跳过当前数据之后所述跳跃步长数量的数据继续筛选并且重新累计不满足所述筛选条件的数据数量。
根据本公开的实施例,基于所选择的查询方式,生成所述总数据集中的所述数据的第二索引包括:当选择所述遍历筛选方式时,以所述第二属性对在所述遍历筛选中筛选出的数据进行排序生成所述第一子索引;当选择所述动态排序方式时,以在所述动态排序中筛选出的数据的筛选顺序生成所述第一子索引。
根据本公开的实施例,该方法还包括将所述第二索引存储在缓冲存储中。
根据本公开的实施例,该方法应用于关系链数据系统。
根据本公开的另一方面,提出一种用于数据查询的装置,所述数据包括第一属性和第二属性,包括:
数据获取单元,设置为获取所述数据的总数据集和结果数据集,所述总数据集包括以所述第一属性对所述总数据集的数据进行排序生成的第一索引,所述结果数据集包括以所述第二属性的筛选条件从所述总数据集中筛选的数据;
查询选择单元,设置为基于所述数据的稀疏度选择所述数据的查询方式,其中所述稀疏度为所述总数据集中的数据数量与所述结果数据集中的数据数量的比值;
索引生成单元,设置为基于所选择的查询方式,生成所述总数据集中的数据的第二索引,所述第二索引包括以所述第二属性对在查询中筛选出的数据进行排序生成的第一子索引和以所述第一属性对所述总数据集中与在查询中筛选出的数据不同的其它数据进行排序生成的第二子索引。
根据本公开的实施例,所述查询选择单元还设置为:当所述稀疏度大于或等于筛选阈值、并且所述结果数据集的数据数量大于或等于排序阈值时,选择慢查询遍历筛选方式;当所述稀疏度大于或等于所述筛选阈值、并且所述结果数据集的数据数量小于所述排序阈值时,选择动态排序方式;当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,选择遍历筛选方式;当所述稀疏度小于所述筛选阈值;并且所述结果数据集的数据数量小于所述快排序阈值时,选择所述动态排序方式,
其中在所述遍历筛选方式中,以所述第一索引从所述总数据集中筛选数据,当满足所述筛选条件的数据数量达到设定值或者对所述总数据集中的所有数据完成筛选时停止筛选,在所述慢查询遍历筛选方式中,在与所述遍历筛选方式的进程不同的外部进程中处理所述数据并返回遍历筛选结果,在所述动态排序方式中,以所述第二属性对所述总数据集中的数据进行排序以便从所述总数据集中筛选数据。
根据本公开的实施例,所述查询选择单元还设置为:当所述稀疏度大于或等于所述筛选阈值、所述结果数据集的数据数量小于所述排序阈值时,当所述结果数据集的数据数量大于或等于慢排序阈值时,选择慢查询动态排序方式;当所述结果数据集的数据数量小于所述慢排序阈值时,继续选择所述动态排序方式,
在所述慢查询动态排序方式中,在与所述动态排序方式的进程不同的外部进程中处理所述数据并返回动态排序结果。
根据本公开的实施例,所述查询选择单元还设置为:当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,当所述稀疏度大于或等于慢筛选阈值时,选择所述慢查询遍历筛选方式;当所述稀疏度小于所述慢筛选阈值时,继续选择所述遍历筛选方式。
根据本公开的实施例,所述索引生成单元还设置为:当选择所述遍历筛选方式时,以所述第二属性对在所述遍历筛选中筛选出的数据进行排序生成所述第一子索引;当选择所述动态排序方式时,以在所述动态排序中筛选出的数据的筛选顺序生成所述第一子索引。
根据本公开的又一方面,提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如上所述的方法。
根据本公开的再一方面,提出一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器设置为执行所述可执行指令以实施如上所述的方法。
通过使用本公开实施例中的用于数据查询的方法、装置、存储介质及其电子设备,通过对查询的结果数据集进行定量分析,结合不同的数据拉取策略和柔性服务策略,解决目前同类系统所存在的例如查询速度慢,存储分片吞吐率低等问题,并且可以通过修改配置,适应多种不同的使用场景。
附图说明
通过参照附图详细描述其示例性实施例,本公开的上述和其它特征及优点将变得更加明显。
图1是根据本公开实施例的使用关系链存储系统进行数据查询的示意性架构图;
图2是根据本公开实施例的关系链存储系统的应用场景示意图;
图3是根据本公开另一实施例的关系链存储系统的应用场景示意图;
图4是根据本公开又一实施例的关系链存储系统的应用场景示意图;
图5是标准遍历筛选方式的示例性数据查询流程图;
图6是根据本公开实施例的数据查询方法的逻辑框图;
图7是根据本公开实施例的数据查询方法的示例性流程图;
图8是根据本公开实施例的数据查询方法中选择查询方式的示例性流程图;
图9是根据本公开实施例的数据查询方法中选择动态排序方式的示例性流程图;
图10是根据本公开实施例的数据查询方法中选择遍历筛选方式的示例性流程图;
图11是根据本公开实施例的改进的遍历筛选方式的示例性数据查询流程图;
图12是根据本公开实施例的数据查询方法中生成第一子索引的示例性流程图;
图13是根据本公开实施例的数据查询装置的结构示意图;
图14是根据本公开另一实施例的数据查询装置的结构示意图;以及
图15为根据本公开实施例的一种电子设备的示意框图。
具体实施方式
现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本公开将全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中,为了清晰,可能会夸大部分元件的尺寸或加以变形。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本公开的各方面。
需要说明的是,本公开中涉及的数据查询方法及装置,虽然旨在针对关系链存储系统中的遍历筛选方式的缺陷所提出,但是该方法和装置并不限于仅应用于关系链存储系统,而可以适用于其它任何需要提高数据查询效率的数据存储系统中。下文将以关系链存储系统为例介绍本公开的方法及其装置的具体细节。
互联网产品中有很多场景需要存储按某种属性排序的数据,而且这些产品基本要求后台存储系统的吞吐率高,承载存储量大,使用方式灵活,对数据的一致性要求稍低一些。通用的关系型数据库(例如MySQL)虽然对数据一致性的保障优秀,但是其代价是降低了整个系统的吞吐率以及水平扩展的能力。因而对于这类产品需求,业内主要的做法都是根据业务需求定制的专用关系链存储系统。
关系链存储系统是一种定制的存储系统,能够对保存数据的多个属性建立索引,方便业务拉取展示。被广泛的应用于诸如评论索引存储的评论系统、诸如用户播放记录存储的用户关系链系统和诸如弹幕的用户播放记录等业务中。
图1示出根据本公开实施例的使用关系链存储系统进行数据查询的基本架构。关系链存储用户可以通过诸如智能手机的移动客户端101或诸如个人电脑的固定客户端102经由网络103访问关系链存储系统的业务接入服务器104。网络103可以是局域网或者互联网,也可以是有线网络或者无线网络。业务接入服务器104获取用户的数据更新请求和数据查询请求等服务请求时,将该服务请求转发给逻辑服务器105进行处理。然后,逻辑服务器105将处理的数据返回到业务接入服务器104以向用户提供服务,并且将该处理过的数据存储到关系链存储系统106中。
下面将结合应用场景具体介绍使用关系链存储系统进行数据查询的过程。
图2和图3示出使用关系链存储系统的典型应用场景,即评论产品。评论产品一般包含三个基本功能:发表评论,查看评论和点赞。
用户使用手机101或浏览器访问某条新闻,并在这条新闻下发表评论,评论内容通过网络103传输到业务接入服务器104,再转发给逻辑服务器105进行业务流程处理。在图2的评论页面201中,用户发表评论202,其它用户可以在查看该评论202后在该评论202下添加自己的评论或点赞203。发表评论202的用户和添加评论或点赞203的用户均可以查看这些评论的实时动态。
图3的评论页面301中,逻辑服务器105将评论302的内容结合评论的多个属性,例如点赞数303,发表时间,是否存在敏感内容等,存储到关系链存储系统106之中。关系链存储系统106根据业务指定的多个属性,为这条评论的多个属性建立索引;当用户认为某条评论有趣时,可以给这条评论点赞。这个“点赞”请求在接入服务器104和逻辑服务器105处理之后,转化到关系链存储系统106,对应了这条评论数据的点赞数303属性修改的操作。因此关系链存储系统106会将这条评论的点赞数303修改到新的值,并且在索引中进行重新排序;在一条新闻有了多个评论之后,评论产品在显示时一般会采取如下的方式:首先筛选“点赞数303”大于某个值的评论,将其置顶并按照点赞数303排序。余下的所有评论按照发布的时间由新到旧依次显示。
在上述评论应用中,新闻评论应用的数据包括新闻评论、点赞数等多个属性。新闻的新闻评论302发布的时间作为关系链存储系统106的总数据集中的数据的第一属性,首先按照发布时间由新到旧排序获得以时间顺序的第一索引。然后,再将新闻评论302的点赞数303作为筛选属性(即第二属性),设定点赞数303的某一预设数值作为筛选条件,当点赞数303大于等于该预设数值时,该数据被筛选出作为构成结果数据集的数据。最终,将筛选出的结果数据集中所有点赞数303超过该预设数值的数据再进行以第一属性的发布时间的新旧排序获得新的第二索引,然后在该第二索引后将余下的不满足筛选属性(即点赞数303小于预设数值)的评论按照原始的发布时间进行排序并显示。
图4则示出根据本公开实施例中在弹幕应用产品中的关系链存储系统的查询数据的应用场景示意图。在视频播放画面401上,以弹幕方式显示观看视频的用户对视频的评论402,其他用户针对该评论402的点赞数403紧随评论402显示。与图2和图3的场景类似,逻辑服务器105将评论402的内容结合评论的点赞数403存储到关系链存储系统106之中。关系链存储系统106根据业务指定的属性,例如评论的发布时间作为第一属性建立第一索引;当其他用户对该评论的“点赞”请求在接入服务器104和逻辑服务器105处理之后,转化到关系链存储系统106,对应了这条评论数据的点赞数403属性修改的操作。关系链存储系统106将这条评论402的点赞数403修改到新的值,并且在索引中进行重新排序:首先筛选“点赞数403”大于某个值的评论,将其置顶并按照点赞数403排序,余下的所有评论402按照发布时间由新到旧依次以弹幕显示在视频画面上。
在图2至图4中的关系链存储系统,在从总数据集中的查询满足针对筛选属性(即第二属性)的数据进行筛选并获得结果数据集过程中,标准的查询方式为遍历筛选。在遍历筛选方式中,根据请求的排序属性(即第一属性)的索引,依次遍历总数据集中的各条数据,同时判断每条数据是否满足筛选属性的筛选条件的要求。若满足筛选条件则返回数据,否则继续寻找,直到达到用户所要求的数据数量或数据集合中的数据已经遍历完成。经过遍历筛选得出的数据构成以第二属性筛选的结果数据集,将其按照第二属性排序。同时,总数据集中不具有上述筛选出的数据仍然按照第一属性排序,将排序后的筛选出的结果数据集的数据置顶,随后是排序后的未被筛选出的数据,这样构成总数据集的第二索引。
在数据查询中使用的标准遍历筛选方式如图5所示,从步骤S501开始后,首先在步骤S502中查找下一数据,根据请求的排序属性(第一属性)生成的索引,依次遍历每条数据,同时在判断步骤S504中判断每条数据是否满足筛选属性(第二属性)的筛选条件的要求。若满足筛选条件则在步骤S505返回筛选数据,否则返回步骤S502继续查找下一数据。返回筛选数据后,在判断步骤S506中判断是否已经返回设定值数量的数据,如果达到设定值,则在步骤S507结束,否则返回步骤S502继续查找下一数据。该流程直到数据集合中的数据已经遍历完成(判断步骤S503中确定没有更多数据)或者返回用户所要求的设置值的数据数量(步骤S506)时结束。
通过大量的线上请求分析,以遍历筛选方式查询数据存在如下情况:如果符合筛选条件的数据数量在总数据集中占比较多时,由于每次拉取的数据的条数相较于总数据集的数据数量一般很少,那么遍历筛选方式不会出现问题。但是,当符合筛选条件的数据数量较少时,遍历筛选方式不得不跳过大量的无效数据,产生无法容忍的时间开销。在这种情况下,如果使用以筛选属性(即第二属性)对总数据集中的数据按照排序属性(即第一属性)的值进行一次排序,将结果按照用户的需求返回给用户,这样的方式产生的时间开销显著小于遍历筛选的方式,这是由于符合筛选条件的结果数据集的数据数量较少,一次排序所产生的开销也较小。
例如,对于具有1000条数据的总数据集的新闻评论关系链存储系统,评论的发布时间作为排序的第一属性,点赞数作为第二属性,以点赞数超过100作为筛选条件。如果在总数据集中,满足筛选条件的数据有900条,则结果数据集中的900条数据在总数据集中的占比很大,此时使用遍历筛选点赞数超过100条的数据效率较高。但是,如果仅有10条数据的点赞数超过100,并且这些数据按照评论的发布时间由新到旧排序时都位于索引的后部,则使用遍历筛选方式查询数据时将会跳过大量的无效数据。而使用点赞数由大到小的顺序重新对总数据集中的数据进行排序时,可以快速筛选出点赞数超过100条的结果数据集。筛选出的点赞数超过100的数据直接作为置顶的评论,余下的900条数据再以第一属性的发布时间由新到旧排序放在置顶评论之后,可以快速生成新的评论索引。
为此,本公开实施例为了解决符合筛选条件的数据在总结果集中占比较少时出现的用户体验下降和系统吞吐率降低的问题,提出了改进的用于数据查询的方法和装置。
首先,定义稀疏度的概念。总数据集的数据至少包括第一属性和第二属性。默认的总数据集以第一属性进行排序以获得第一索引。而稀疏度为总数据集的数据数量与符合第二属性的筛选条件的数据构成的结果数据集的数据数量的比值。稀疏度越大,说明符合筛选条件的数据,即结果数据集的数据在总数据集中所占比例越小;反之则说明符合筛选条件的数据在总数据集中所占的比例越大。
图6示出根据本公开实施例的用于数据查询的方法的逻辑框图。在步骤S601,方法开始;步骤S602中计算在总数据集中筛选出的结果数据集的数据数量;在步骤S603中计算稀疏度。
在判断步骤S604中,判断稀疏度是否大于或等于筛选阈值。该筛选阈值定义为当稀疏度大于该值时,遍历筛选的方式将产生严重的性能问题。
如果稀疏度大于或等于筛选阈值,则优先使用动态排序方式。进一步在判断步骤S604中判断结果数据集的数据数量是否大于或等于排序阈值。该排序阈值定义为当结果数据集的数据数量大于该排序阈值时,动态排序方式将产生严重的性能问题。
如果在判断步骤S604中判断结果为是,则在步骤S605中继续使用遍历筛选的方式。如果判断步骤S604的结果为否,则在判断步骤S606中进一步判断结果数据集的数据数量是否大于或等于慢排序阈值。该慢排序阈值定义为当结果数据集的数据数量大于或等于该慢排序阈值并且小于排序阈值时,动态排序方式耗时较多。
如果步骤S606的结果为是,则在步骤S607中选择慢查询动态排序方式。如果步骤S606的结果为否,则在步骤S608中直接使用选择动态排序方式返回结果数据集。
慢查询动态排序方式仍然使用动态排序的方式,并且将查询请求标记为“慢查询”。由于“慢查询”耗时较多,为了不影响存储系统的吞吐率,将慢查询的动态排序方式的进程调度到与该进程不同的额外的外部慢查询进程(或进程池)中进行处理并返回动态排序结果,如此以实现普通查询和慢查询的隔离,防止大量的慢查询导致系统雪崩。同理,慢查询的遍历筛选方式仍然使用遍历筛选的方式,并且将查询请求标记为“慢查询”。将慢查询的遍历筛选方式的进程调度到与该进程不同的额外的外部慢查询进程(或进程池)中进行处理并返回动态排序结果,实现与慢查询动态排序方式类似的效果。
接下来,介绍当稀疏度小于筛选阈值的情况。
当步骤S604的结果为否时,则优先使用遍历筛选方式。进一步在判断步骤S609中判断结果数据集的数据数量是否小于快排序阈值。该快排序阈值定义为当结果数据集的数据数量小于此阈值时,无论稀疏度如何,使用动态排序都将获得更好的性能。
当判断步骤S609的结果为是时,在步骤S610直接选择动态排序方式。当判断步骤S609的结果为否时,选择遍历筛选方式。进一步,在判断步骤S611中针对不同的情况,选择何种遍历筛选方式。
在判断步骤S611中判断稀疏度是否大于或等于慢筛选阈值。该慢筛选阈值定义为当稀疏度小于稀疏度筛选阈值并且结果数据集的数据数量大于或等于该慢筛选阈值时,结果数据集的总量处于一种中间状态,此时无法直接使用动态排序的方法,直接遍历筛选也耗时较多。
当判断步骤S611的结果为是时,选择慢查询遍历筛选方式。当步骤S611的结果为否时,继续选择遍历筛选方式输出结果数据集。
上述两个分支最终都在输出结果数据集后于步骤S614结束。
因此,根据本公开的实施例的用于数据查询的方法,包括如图7所示的如下步骤:
S710:获取数据的总数据集和结果数据集;
S720:基于数据的稀疏度选择数据的查询方式;
S730:基于所选择的查询方式,生成总数据集中的数据的第二索引。
在步骤S710中,总数据集包括以第一属性对总数据集的数据进行排序生成的第一索引,结果数据集包括以第二属性的筛选条件从总数据集中筛选的数据。
在步骤S720中,稀疏度为总数据集中的数据数量与结果数据集中的数据数量的比值。
在步骤S730中,第二索引包括以第二属性对在查询中筛选出的数据进行排序生成的第一子索引和以第一属性对总数据集中与在查询中筛选出的数据不同的其它数据进行排序生成的第二子索引。
根据如图8所示的本公开的实施例,步骤S720进一步包括如下步骤:
S721:当稀疏度大于或等于筛选阈值、并且结果数据集的数据数量大于或等于排序阈值时,选择慢查询遍历筛选方式;
S722:当稀疏度大于或等于筛选阈值、并且结果数据集的数据数量小于排序阈值时,选择动态排序方式;
S723:当稀疏度小于筛选阈值、并且结果数据集的数据数量大于或等于快排序阈值时,选择遍历筛选方式;
S724:当稀疏度小于筛选阈值;并且结果数据集的数据数量小于快排序阈值时,选择动态排序方式。
其中在遍历筛选方式中,以第一索引从总数据集中筛选数据,当满足筛选条件的数据数量达到设定值或者对总数据集中的所有数据完成筛选时停止筛选;在慢查询遍历筛选方式中,在与遍历筛选方式的进程不同的外部进程中处理数据并返回遍历筛选结果;在动态排序方式中,以第二属性对总数据集中的数据进行排序以便从总数据集中筛选数据。
图9则示出根据本公开实施例的数据查询方法中关于步骤S722中选择动态排序方式的进一步细节。步骤S722进一步包括如下步骤:
S7221:当结果数据集的数据数量大于或等于慢排序阈值时,选择慢查询动态排序方式;
S7222:当所结果数据集的数据数量小于慢排序阈值时,继续选择动态排序方式。
其中在慢查询动态排序方式中,在与动态排序方式的进程不同的外部进程中处理数据并返回动态排序结果。
对应地,图10示出根据本公开实施例的方法中关于步骤S724中选择遍历筛选方式的进一步细节,步骤S724进一步包括如下步骤:
S7241:当所稀疏度大于或等于慢筛选阈值时,选择慢查询遍历筛选方式;
S7242:当所稀疏度小于慢筛选阈值时,继续选择遍历筛选方式。
另一方面,当使用遍历筛选的方式时,稀疏度虽然能够对符合筛选条件的数据进行定性的分析,但是这种分析得到的只是筛选数据在总数据集的平均分布状况,而实际的分布可能在局部并不均衡。基于此,虽然有的查询请求稀疏度并不高,但是某几次查询已经会耗时较多。为此,根据本公开实施例的方法进一步改进遍历筛选方式,提供如下两个配置:跳跃计数最大值和跳跃步长。在遍历筛选的过程中,若已经遍历的不满足筛选条件的数据数量超过跳跃计数最大值,则直接在总数据集中向下跳过“跳跃步长”个数据继续遍历。这种遍历优化过程如图11所示。
在图11中,步骤S1101至S1108与图5中的步骤S501至S507类似,区别在于图11中增加了将数据加入结果数据集以及返回结果数据集的步骤S1105和S1107。图11右侧的步骤则反映了使用跳跃计数器进行跳跃遍历的细节。当数据不符合第二属性的筛选条件时,步骤S1109将跳跃计数器加1,并在步骤S1100判断累计的跳跃计数器的值是否大于跳跃计数最大值。如果超过跳跃计数最大值,则在步骤S1111中从总数据集中向下跳跃“跳跃步长”个数据继续遍历以加快遍历速度,同时在步骤S1112中将跳跃计数器清零并重新查找数据以及计数。如果计数器的值并未达到跳跃计数最大值,则直接返回步骤S1102查找下一数据进行筛选。
因此,根据本公开实施例的方法中,当选择遍历筛选方式时,还包括如下步骤:
当选择遍历筛选方式时,设置跳跃计数最大值和跳跃步长,当不满足筛选条件的数据数量累计超过跳跃计数最大值时,在总数据集中跳过当前数据之后跳跃步长数量的数据继续筛选并且重新累计不满足筛选条件的数据数量。
根据本公开的实施例,图7中生成总数据集中的数据的第二索引的步骤S730进一步包括如图12所示的步骤:
S731:当选择遍历筛选方式时,以第二属性对在遍历筛选中筛选出的数据进行排序生成第一子索引;
S732:当选择动态排序方式时,以在动态排序中筛选出的数据的筛选顺序生成第一子索引。
此外,在某些情况下,如果能够预先得知筛选属性的取值范围和占比较多的筛选条件,那么可以在存储结果数据集的时候额外存储一份符合筛选条件的数据的索引,建立筛选的数据索引的缓冲存储,提高多次查询的效率。但是这样的方式需要会导致存储系统不够通用灵活,只针对特定的应用场景有效。
因此,根据本公开实施例的方法还包括将第二索引存储在缓冲存储中。
本公开实施例的方法主要优化了关系链存储系统中的三个方面。第一,对结果数据集进行预先的分析,得到最优的查询方法,降低了客户侧的等待时间;第二,将一般查询请求和慢查询请求区分开,防止慢查询降低整个系统的性能,增加了存储系统的吞吐率;第三,通过跳跃计数最大值和跳跃步长两个配置参数,能够灵活的适应多种不同的业务,对数据完备性要求较高的业务返回较完备的数据,对完备性要求略低的业务可以采取柔性的策略,总体上能够降低整个关系链存储系统的成本,提高用户体验。解决目前同类系统所存在的例如查询速度慢,存储分片吞吐率低等问题,并且可以通过修改配置,适应多种不同的使用场景。
下文将介绍根据本公开实施例的用于数据查询的装置。
图13示出数据查询装置1300,包括数据获取单元1310,查询选择单元和索引生成单元1330。
数据获取单元1310设置为获取数据的总数据集和结果数据集,总数据集包括以第一属性对总数据集的数据进行排序生成的第一索引,结果数据集包括以第二属性的筛选条件从总数据集中筛选的数据。
查询选择单元1320设置为基于数据的稀疏度选择数据的查询方式,其中稀疏度为总数据集中的数据数量与结果数据集中的数据数量的比值。
索引生成单元1330设置为基于所选择的查询方式,生成总数据集中的数据的第二索引,第二索引包括以第二属性对在查询中筛选出的数据进行排序生成的第一子索引和以第一属性对总数据集中与在查询中筛选出的数据不同的其它数据进行排序生成的第二子索引。
根据本公开的实施例,查询选择单元1320还设置为:
当稀疏度大于或等于筛选阈值、并且结果数据集的数据数量大于或等于排序阈值时,选择慢查询遍历筛选方式;
当稀疏度大于或等于筛选阈值、并且结果数据集的数据数量小于排序阈值时,选择动态排序方式;
当稀疏度小于筛选阈值、并且结果数据集的数据数量大于或等于快排序阈值时,选择遍历筛选方式;
当稀疏度小于筛选阈值;并且结果数据集的数据数量小于快排序阈值时,选择动态排序方式,
其中在遍历筛选方式中,以第一索引从总数据集中筛选数据,当满足筛选条件的数据数量达到设定值或者对总数据集中的所有数据完成筛选时停止筛选,
在慢查询遍历筛选方式中,在与遍历筛选方式的进程不同的外部进程中处理数据并返回遍历筛选结果,
在动态排序方式中,以第二属性对总数据集中的数据进行排序以便从总数据集中筛选数据。
进一步,根据本公开的实施例,查询选择单元1320还设置为:
当稀疏度大于或等于筛选阈值、结果数据集的数据数量小于排序阈值时,当结果数据集的数据数量大于或等于慢排序阈值时,选择慢查询动态排序方式;当结果数据集的数据数量小于慢排序阈值时,继续选择动态排序方式,
在慢查询动态排序方式中,在与动态排序方式的进程不同的外部进程中处理数据并返回动态排序结果。
当稀疏度小于筛选阈值、并且结果数据集的数据数量大于或等于快排序阈值时,当稀疏度大于或等于慢筛选阈值时,选择慢查询遍历筛选方式;当稀疏度小于慢筛选阈值时,继续选择遍历筛选方式。
根据本公开的实施例,索引生成单元1330还设置为:
当选择遍历筛选方式时,以第二属性对在遍历筛选中筛选出的数据进行排序生成第一子索引;
当选择动态排序方式时,以在动态排序中筛选出的数据的筛选顺序生成第一子索引。
根据本公开的实施例,索引生成单元1330在使用遍历筛选方式生成第二索引时,还可以设置跳跃计数最大值和跳跃步长,当不满足筛选条件的数据数量累计超过跳跃计数最大值时,在总数据集中跳过当前数据之后跳跃步长数量的数据继续筛选并且重新累计不满足筛选条件的数据数量。
图14则示出根据本公开另一实施例的数据查询装置的结构图。相比图13的装置,图14中增加了缓冲存储单元1340,设置为将第二索引存储在缓冲存储中。
与方法类似,本公开实施例的装置主要优化了关系链存储系统中的三个方面。第一,对结果数据集进行预先的分析,得到最优的查询方法,降低了客户侧的等待时间;第二,将一般查询请求和慢查询请求区分开,防止慢查询降低整个系统的性能,增加了存储系统的吞吐率;第三,通过跳跃计数最大值和跳跃步长两个配置参数,能够灵活的适应多种不同的业务,对数据完备性要求较高的业务返回较完备的数据,对完备性要求略低的业务可以采取柔性的策略,总体上能够降低整个关系链存储系统的成本,提高用户体验。解决目前同类系统所存在的例如查询速度慢,存储分片吞吐率低等问题,并且可以通过修改配置,适应多种不同的使用场景。
应当注意,尽管在上文详细描述中提及了用于数据查询的装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包括可执行指令,该可执行指令被例如处理器执行时可以实现上述任意一个实施例中所述用于数据查询的方法的步骤。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书用于数据查询的方法中描述的根据本公开各种示例性实施例的步骤。
根据本公开的实施例的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中的用于数据查询的方法的步骤。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图15来描述根据本公开的这种实施方式的电子设备1500。图15显示的电子设备1500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图15所示,电子设备1500以通用计算设备的形式表现。电子设备1500的组件可以包括但不限于:至少一个处理单元1510、至少一个存储单元1520、连接不同系统组件(包括存储单元1520和处理单元1510)的总线1530、显示单元1540等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1510执行,使得所述处理单元1510执行本说明书用于数据查询的方法中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1510可以执行如图7-10和图12中所示的步骤。
所述存储单元1520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)15201和/或高速缓存存储单元15202,还可以进一步包括只读存储单元(ROM)15203。
所述存储单元1520还可以包括具有一组(至少一个)程序模块15205的程序/实用工具15204,这样的程序模块15205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1500也可以与一个或多个外部设备1600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1500交互的设备通信,和/或与使得该电子设备1500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1550进行。并且,电子设备1500还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器1560可以通过总线1530与电子设备1500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的用于数据查询的方法。
本公开已由上述相关实施例加以描述,然而上述实施例仅为实施本公开的范例。必需指出的是,已揭露的实施例并未限制本公开的范围。相反,在不脱离本公开的精神和范围内所作的变动与润饰,均属本公开的专利保护范围。
Claims (15)
1.一种用于数据查询的方法,所述数据包括第一属性和第二属性,其特征在于,该方法包括:
获取所述数据的总数据集和结果数据集,其中所述总数据集包括以所述第一属性对所述总数据集的数据进行排序生成的第一索引,所述结果数据集包括以所述第二属性的筛选条件从所述总数据集中筛选的数据;
基于所述数据的稀疏度选择所述数据的查询方式,其中所述稀疏度为所述总数据集中的数据数量与所述结果数据集中的数据数量的比值;
基于所选择的查询方式,生成所述总数据集中的数据的第二索引,其中所述第二索引包括以所述第二属性对在查询中筛选出的数据进行排序生成的第一子索引和以所述第一属性对所述总数据集中与在查询中筛选出的数据不同的其它数据进行排序生成的第二子索引。
2.根据权利要求1所述的方法,其特征在于,基于所述数据的稀疏度选择所述数据的查询方式包括:
当所述稀疏度大于或等于筛选阈值、并且所述结果数据集的数据数量大于或等于排序阈值时,选择慢查询遍历筛选方式;
当所述稀疏度大于或等于所述筛选阈值、并且所述结果数据集的数据数量小于所述排序阈值时,选择动态排序方式;
当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,选择遍历筛选方式;
当所述稀疏度小于所述筛选阈值;并且所述结果数据集的数据数量小于所述快排序阈值时,选择所述动态排序方式,
其中在所述遍历筛选方式中,以所述第一索引从所述总数据集中筛选数据,当满足所述筛选条件的数据数量达到设定值或者对所述总数据集中的所有数据完成筛选时停止筛选,
在所述慢查询遍历筛选方式中,在与所述遍历筛选方式的进程不同的外部进程中处理所述数据并返回遍历筛选结果,
在所述动态排序方式中,以所述第二属性对所述总数据集中的数据进行排序以便从所述总数据集中筛选数据。
3.根据权利要求2所述的方法,其特征在于,当所述稀疏度大于或等于所述筛选阈值、并且所述结果数据集的数据数量小于所述排序阈值时,选择动态排序方式还包括:
当所述结果数据集的数据数量大于或等于慢排序阈值时,选择慢查询动态排序方式;
当所述结果数据集的数据数量小于所述慢排序阈值时,继续选择所述动态排序方式,
在所述慢查询动态排序方式中,在与所述动态排序方式的进程不同的外部进程中处理所述数据并返回动态排序结果。
4.根据权利要求2所述的方法,其特征在于,当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,选择所述遍历筛选方式还包括:
当所述稀疏度大于或等于慢筛选阈值时,选择所述慢查询遍历筛选方式;
当所述稀疏度小于所述慢筛选阈值时,继续选择所述遍历筛选方式。
5.根据权利要求2所述的方法,其特征在于,
当选择所述遍历筛选方式时,设置跳跃计数最大值和跳跃步长,当不满足所述筛选条件的数据数量累计超过所述跳跃计数最大值时,在所述总数据集中跳过当前数据之后所述跳跃步长数量的数据继续筛选并且重新累计不满足所述筛选条件的数据数量。
6.根据权利要求1所述的方法,其特征在于,基于所选择的查询方式,生成所述总数据集中的所述数据的第二索引包括:
当选择所述遍历筛选方式时,以所述第二属性对在所述遍历筛选中筛选出的数据进行排序生成所述第一子索引;
当选择所述动态排序方式时,以在所述动态排序中筛选出的数据的筛选顺序生成所述第一子索引。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:
将所述第二索引存储在缓冲存储中。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法应用于关系链数据系统。
9.一种用于数据查询的装置,所述数据包括第一属性和第二属性,其特征在于,包括:
数据获取单元,设置为获取所述数据的总数据集和结果数据集,所述总数据集包括以所述第一属性对所述总数据集的数据进行排序生成的第一索引,所述结果数据集包括以所述第二属性的筛选条件从所述总数据集中筛选的数据;
查询选择单元,设置为基于所述数据的稀疏度选择所述数据的查询方式,其中所述稀疏度为所述总数据集中的数据数量与所述结果数据集中的数据数量的比值;
索引生成单元,设置为基于所选择的查询方式,生成所述总数据集中的数据的第二索引,所述第二索引包括以所述第二属性对在查询中筛选出的数据进行排序生成的第一子索引和以所述第一属性对所述总数据集中与在查询中筛选出的数据不同的其它数据进行排序生成的第二子索引。
10.根据权利要求9所述的装置,其特征在于,所述查询选择单元还设置为:
当所述稀疏度大于或等于筛选阈值、并且所述结果数据集的数据数量大于或等于排序阈值时,选择慢查询遍历筛选方式;
当所述稀疏度大于或等于所述筛选阈值、并且所述结果数据集的数据数量小于所述排序阈值时,选择动态排序方式;
当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,选择遍历筛选方式;
当所述稀疏度小于所述筛选阈值;并且所述结果数据集的数据数量小于所述快排序阈值时,选择所述动态排序方式,
其中在所述遍历筛选方式中,以所述第一索引从所述总数据集中筛选数据,当满足所述筛选条件的数据数量达到设定值或者对所述总数据集中的所有数据完成筛选时停止筛选,
在所述慢查询遍历筛选方式中,在与所述遍历筛选方式的进程不同的外部进程中处理所述数据并返回遍历筛选结果,
在所述动态排序方式中,以所述第二属性对所述总数据集中的数据进行排序以便从所述总数据集中筛选数据。
11.根据权利要求10所述的装置,其特征在于,所述查询选择单元还设置为:
当所述稀疏度大于或等于所述筛选阈值、所述结果数据集的数据数量小于所述排序阈值时,
当所述结果数据集的数据数量大于或等于慢排序阈值时,选择慢查询动态排序方式;
当所述结果数据集的数据数量小于所述慢排序阈值时,继续选择所述动态排序方式,
在所述慢查询动态排序方式中,在与所述动态排序方式的进程不同的外部进程中处理所述数据并返回动态排序结果。
12.根据权利要求10所述的装置,其特征在于,所述查询选择单元还设置为:
当所述稀疏度小于所述筛选阈值、并且所述结果数据集的数据数量大于或等于快排序阈值时,
当所述稀疏度大于或等于慢筛选阈值时,选择所述慢查询遍历筛选方式;
当所述稀疏度小于所述慢筛选阈值时,继续选择所述遍历筛选方式。
13.根据权利要求9所述的装置,其特征在于,所述索引生成单元还设置为:
当选择所述遍历筛选方式时,以所述第二属性对在所述遍历筛选中筛选出的数据进行排序生成所述第一子索引;
当选择所述动态排序方式时,以在所述动态排序中筛选出的数据的筛选顺序生成所述第一子索引。
14.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如权利要求1至8任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器设置为执行所述可执行指令以实施如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810326507.4A CN110309169A (zh) | 2018-04-12 | 2018-04-12 | 关系链存储系统的数据查询方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810326507.4A CN110309169A (zh) | 2018-04-12 | 2018-04-12 | 关系链存储系统的数据查询方法、装置、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110309169A true CN110309169A (zh) | 2019-10-08 |
Family
ID=68073880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810326507.4A Pending CN110309169A (zh) | 2018-04-12 | 2018-04-12 | 关系链存储系统的数据查询方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309169A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615510A (zh) * | 2020-12-08 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 直播界面显示方法及设备 |
WO2023173733A1 (zh) * | 2022-03-14 | 2023-09-21 | 达而观信息科技(上海)有限公司 | 数据追踪方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020579A1 (en) * | 2004-07-22 | 2006-01-26 | Microsoft Corporation | System and method for graceful degradation of a database query |
WO2011091471A1 (en) * | 2010-01-27 | 2011-08-04 | National Ict Australia Limited | Query processing of tree-structured data |
US20130282704A1 (en) * | 2012-04-20 | 2013-10-24 | Microsoft Corporation | Search system with query refinement |
US20150019583A1 (en) * | 2013-07-12 | 2015-01-15 | International Business Machines Corporation | Intelligently utilizing non-matching weighted indexes |
US20150127666A1 (en) * | 2013-11-01 | 2015-05-07 | International Business Machines Corporation | Processing a database table |
US20150363442A1 (en) * | 2014-06-12 | 2015-12-17 | International Business Machines Corporation | Index merge ordering |
US20160063109A1 (en) * | 2014-08-29 | 2016-03-03 | Yuanjie Liu | Query-breadth selected search result sorting mechanism |
CN105512247A (zh) * | 2015-11-30 | 2016-04-20 | 上海交通大学 | 基于一致性特征的非交互式差分隐私发布模型的优化方法 |
WO2017180144A1 (en) * | 2016-04-15 | 2017-10-19 | Hitachi Data Systems Corporation | Deduplication index enabling scalability |
US20170322962A1 (en) * | 2016-05-04 | 2017-11-09 | International Business Machines Corporation | Reorganizing a data table to improve analytical database performance |
CN107679158A (zh) * | 2017-09-28 | 2018-02-09 | 泰康保险集团股份有限公司 | 数据管理方法、装置、计算机可读介质和电子设备 |
-
2018
- 2018-04-12 CN CN201810326507.4A patent/CN110309169A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020579A1 (en) * | 2004-07-22 | 2006-01-26 | Microsoft Corporation | System and method for graceful degradation of a database query |
WO2011091471A1 (en) * | 2010-01-27 | 2011-08-04 | National Ict Australia Limited | Query processing of tree-structured data |
US20130282704A1 (en) * | 2012-04-20 | 2013-10-24 | Microsoft Corporation | Search system with query refinement |
US20150019583A1 (en) * | 2013-07-12 | 2015-01-15 | International Business Machines Corporation | Intelligently utilizing non-matching weighted indexes |
US20150127666A1 (en) * | 2013-11-01 | 2015-05-07 | International Business Machines Corporation | Processing a database table |
US20150363442A1 (en) * | 2014-06-12 | 2015-12-17 | International Business Machines Corporation | Index merge ordering |
US20160063109A1 (en) * | 2014-08-29 | 2016-03-03 | Yuanjie Liu | Query-breadth selected search result sorting mechanism |
CN105512247A (zh) * | 2015-11-30 | 2016-04-20 | 上海交通大学 | 基于一致性特征的非交互式差分隐私发布模型的优化方法 |
WO2017180144A1 (en) * | 2016-04-15 | 2017-10-19 | Hitachi Data Systems Corporation | Deduplication index enabling scalability |
US20170322962A1 (en) * | 2016-05-04 | 2017-11-09 | International Business Machines Corporation | Reorganizing a data table to improve analytical database performance |
CN107679158A (zh) * | 2017-09-28 | 2018-02-09 | 泰康保险集团股份有限公司 | 数据管理方法、装置、计算机可读介质和电子设备 |
Non-Patent Citations (2)
Title |
---|
徐妍妍;王宏志;高宏;李建中;: "基于高维稀疏数据的k-分桶高效skyline查询算法", 新型工业化, no. 08, 20 August 2012 (2012-08-20), pages 44 - 58 * |
葛微;罗圣美;周文辉;赵;唐云;周娟;曲文武;袁春风;黄宜华;: "HiBase:一种基于分层式索引的高效HBase查询技术与系统", 计算机学报, no. 01, pages 142 - 155 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615510A (zh) * | 2020-12-08 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 直播界面显示方法及设备 |
CN114615510B (zh) * | 2020-12-08 | 2024-04-02 | 抖音视界有限公司 | 直播界面显示方法及设备 |
WO2023173733A1 (zh) * | 2022-03-14 | 2023-09-21 | 达而观信息科技(上海)有限公司 | 数据追踪方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10599313B2 (en) | System for high volume data analytic integration and channel-independent advertisement generation | |
CN109062919B (zh) | 一种基于深度强化学习的内容推荐方法及装置 | |
US9117007B2 (en) | Visualization of streaming real-time data | |
CN110730387B (zh) | 视频播放控制方法和装置、存储介质及电子装置 | |
US9846708B2 (en) | Searching of images based upon visual similarity | |
CN108228169A (zh) | 基于eCharts工具的图表制作方法、装置、设备及介质 | |
US20150106391A1 (en) | Method and apparatus of generating update parameters and displaying correlated keywords | |
CN111680124A (zh) | 基于rpa的大规模定制客户需求获取、查询方法 | |
CN107729426A (zh) | 一种选房方法、装置、服务器及系统 | |
CN101038584A (zh) | 用于执行计算处理的系统和方法 | |
CN104220943B (zh) | 生产计划制定决定方法以及生产计划制定装置 | |
CN106454431B (zh) | 电视节目推荐方法和系统 | |
CN1265486A (zh) | 自适应计算机显示屏幕窗口 | |
US20120030598A1 (en) | Decision aiding user interfaces | |
CN110309169A (zh) | 关系链存储系统的数据查询方法、装置、介质及电子设备 | |
CN103440199B (zh) | 测试引导方法和装置 | |
CN106487784B (zh) | 一种会话迁移的方法、装置及防火墙 | |
CN109377401A (zh) | 一种数据处理方法、装置、系统、服务器及存储介质 | |
US20230334723A1 (en) | Post-processing special effect production system and method, and ar special effect rendering method and apparatus | |
CN109669767B (zh) | 一种面向多类型上下文依赖的任务封装和调度方法及系统 | |
CN111462843A (zh) | 表单生成方法、装置、计算机设备和存储介质 | |
CN108810617A (zh) | 一种根据视频制作图像海报的方法、装置和终端设备 | |
CN108959458A (zh) | 数据生成和使用方法、系统、介质及计算机设备 | |
CN104951477A (zh) | 用于过滤数据的方法和装置 | |
CN111083567B (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 |