CN110727672A - 数据映射关系查询方法、装置、电子设备及可读介质 - Google Patents
数据映射关系查询方法、装置、电子设备及可读介质 Download PDFInfo
- Publication number
- CN110727672A CN110727672A CN201810691949.9A CN201810691949A CN110727672A CN 110727672 A CN110727672 A CN 110727672A CN 201810691949 A CN201810691949 A CN 201810691949A CN 110727672 A CN110727672 A CN 110727672A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- mapping
- result
- queried
- 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 71
- 238000013506 data mapping Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 128
- 238000012545 processing Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 17
- 230000003416 augmentation Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000003190 augmentative effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 101150117538 Set2 gene Proteins 0.000 description 8
- 101150055297 SET1 gene Proteins 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据映射关系查询方法、装置、电子设备及计算机可读介质。该方法包括:根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;判断所述主数据是否在查询表中;判断所述映射数据是否在查询集合中;当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合;以及通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。本公开涉及的数据映射关系查询方法、装置、电子设备及计算机可读介质,能够在不做全映射快照的基础上,获取待查询信息的其全部层级关系,解决SQL工作者遇到的难题。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种数据映射关系查询方法、装置、电子设备及计算机可读介质。
背景技术
为了方便记录两个特征或属性间的依赖关系,一般会在数据仓库(或数据库)中建立一张关系映射表并对应的构造两个字段,将它们的依赖关系以元组的方式存储,其中一个字段可视为主数据,另外一个字段可视为其映射数据。在执行查询操作时,通过控制过滤条件,即可通过主数据获取映射数据,主数据可由用户有选择性的指定两个特征中任意一个,则对应的另外一个视为其映射数据。在真实的场景中,数据间依赖关系往往是超过一层的,比如省、市、区这种地址依赖关系属于两层依赖关系,类似的还有更多层级的依赖关系。
在现有技术中,为了快速获取如上文所述的某个数据与和其具有依赖关系的全部映射数据可例如:建立一张全量的映射表,以此来减少查询时间,但前期的工作量巨大且势必造成存储冗余,指数化增长对如何存储全量表提出了过高的要求。在现有技术中,为了快速获取如上文所述的某个数据与和其具有依赖关系的全部映射数据还可例如:在查询多层依赖关系时,通过编写多层嵌套的SQL语句来获得。但是随着依赖关系层级的增加,为了降低存储空间就会需要付出更多执行时间作为代价,以及用户也需要编写更为复杂的SQL语句。
因此,需要一种新的数据映射关系查询方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种数据映射关系查询方法、装置、电子设备及计算机可读介质,能够在不做全映射快照的基础上,获取待查询信息的其全部层级关系,解决SQL工作者遇到的难题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种数据映射关系查询方法,该方法包括:根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;判断所述主数据是否在查询表中;判断所述映射数据是否在查询集合中;当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合;以及通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
在本公开的一种示例性实施例中,还包括:当所述主数据在所述查询表中,且所述映射数据不在所述查询集合中时,将所述映射数据集合储存至所述查询集合中;以及通过所述映射数据集合确定所述待查询数据的查询结果。
在本公开的一种示例性实施例中,还包括:当所述主数据不在所述查询表中时,将所述主数据与所述映射数据储存至查询集合中;以及将空值作为所述待查询数据的查询结果。
在本公开的一种示例性实施例中,判断所述映射数据是否在查询集合中包括:获取所述主数据的属性值;以及通过所述属性值判断所述映射数据是否在查询集合中。
在本公开的一种示例性实施例中,将所述映射数据储存至所述查询集合中还包括:更新所述主数据的属性值。
在本公开的一种示例性实施例中,通过迭代方式确定结果集合包括:获取所述映射数据在查询集合中对应的第一数据集合;通过所述映射数据与所述第一数据集合生成第二数据集合;以及通过迭代方式对所述第二数据集合中数据进行增广处理以获取所述结果集合。
在本公开的一种示例性实施例中,通过迭代方式确定结果集合还包括:将所述结果集合中的数据储存至所述查询集合中。
在本公开的一种示例性实施例中,通过所述映射数据与所述第一数据集合生成第二数据集合还包括:在生成所述第二数据集合的过程中剔除重复数据。
在本公开的一种示例性实施例中,通过迭代方式对所述第二数据集合中数据进行增广处理以获取所述结果集合包括:将所述第二数据集合的长度与预设阈值作为限制条件;以及在迭代处理所述第二数据集合的过程中,通过所述限制条件实时确定是否继续进行迭代处理,以获取所述结果集合。
在本公开的一种示例性实施例中,通过所述结果集合确定所述待查询数据的查询结果包括:将所述结果集合中的数据转化为字符串;以及将最大长度的字符串最为所述待查询数据的查询结果。
根据本公开的一方面,提出一种数据映射关系查询装置,该装置包括:元组模块,用于根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;第一判断模块,用于判断所述主数据是否在查询表中;第二判断模块,用于判断所述映射数据是否在查询集合中;迭代模块,用于当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合;以及第一结果模块,用于通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
在本公开的一种示例性实施例中,还包括:第二结果模块,用于当所述主数据在所述查询表中,且所述映射数据不在所述查询集合中时,将所述映射数据集合储存至所述查询集合中;以及通过所述映射数据集合确定所述待查询数据的查询结果;以及第三结果模块,用于当所述主数据不在所述查询表中时,将所述主数据与所述映射数据储存至查询集合中;以及将空值作为所述待查询数据的查询结果。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的数据映射关系查询方法、装置、电子设备及计算机可读介质,能够在不做全映射快照的基础上,获取待查询信息的其全部层级关系,解决SQL工作者遇到的难题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种数据映射关系查询方法及装置的***框图。
图2是根据一示例性实施例示出的一种数据映射关系查询方法的流程图。
图3是根据另一示例性实施例示出的一种数据映射关系查询方法的流程图。
图4是根据另一示例性实施例示出的一种数据映射关系查询方法的流程图。
图5是根据一示例性实施例示出的一种数据映射关系查询装置的框图。
图6是根据另一示例性实施例示出的一种数据映射关系查询装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
图8是根据一示例性实施例示出一种计算机可读存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
本申请的发明人发现,在真实的场景中,数据间依赖关系往往是超过一层的。譬如行政区地址信息,以区为最低级别信息,设为1级地址,市为2级地址,省为3级地址。对应于此类问题,编写SQL语句来解决时,通常会在数据库中建立一张地址信息表,为了降低存储量,通常会在表中构造两个字段(因为层级越多,势必会造成存储冗余,存储空间的消耗往往呈指数化增长),即字段1(记录低级别行政地址)和字段2(记录高级别地址)。可以将1级地址存在字段1中,2级地址存在字段2中,之后采用同样的方式将2级地址存在字段1中,3级地址存在字段2中。
在这种解决方式时,在查询一个1级地址及与其具有映射关系的高级别地址时,往往需要写入一个双层嵌套的SQL语句来获得。随着层级的增加,为了降低存储空间就会需要付出更多执行时间作为代价,以及用户也需要编写更为复杂的SQL语句。
而且,在这种解决方式时,将全部依赖的映射关系存储到两个字段中,若嵌套层数越多,映射关系越复杂,则SQL代码的复杂度越高,且开发者几乎不知道写多少层嵌套SQL才能做到全映射关系的覆盖。
针对以上的问题,本发明的数据映射关系查询方法能够解决现有技术存在的缺点,达到以下技术效果:
1.不做全映射快照,将存在依赖关系的每组数据存储到两个字段中;
2.解决大量SQL的嵌套查询,减少代码开发,降低查询时间;
3.对层数未知的依赖关系,也能根据需要查询的信息获取其全部层级关系,实现全覆盖,解决SQL工作者遇到的难题。
以下是对本申请内容的详细说明,值得一提的是,本申请实施例是基于hive数据库添加udf函数实现的,具体实现过程完全可在其他数据库实现,本申请不以此为限。
其中,hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
其中,用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。用户可以使用Java编写自己的UDF,一旦将用户自定义函数加入到用户会话中,它们就将和内置的函数一样使用,甚至可以提供联机帮助。
图1是根据一示例性实施例示出的一种数据映射关系查询方法及装置的***框图。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器。后台管理服务器可以对接收到的依赖关系查询请求进行分析等处理,并将处理结果(例如依赖关系数据)反馈给终端设备。
服务器105可例如根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;服务器105可例如判断所述主数据是否在查询表中;服务器105可例如判断所述映射数据是否在查询集合中;当所述主数据在查询表中,且所述映射数据在查询集合中时,服务器105通过迭代方式确定结果集合;服务器105可例如通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,需要说明的是,本公开实施例所提供的数据映射关系查询方法可以由服务器105执行,相应地,数据映射关系查询装置可以设置于服务器105中。而提供给用户进行数据搜索的网页端一般位于终端设备101、102、103中。
图2是根据一示例性实施例示出的一种数据映射关系查询方法的流程图。数据映射关系查询方法20至少包括步骤S202至S208。
如图2所示,在S202中,根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据。如上文所述,查询数据可例如为行政区地址信息,查询数据可例如为“北京”。
在一个实施例中,可例如构造查询表map_result<key,value>,其中key为在映射关系内的数据,value为其对应最低层级(每个key有可能在多个层级,在本申请实施例中取其最先到达的层级),将主数据作为key存入map_result,对应value默认0。查询数据可例如作为数据结构map_result中key数据。即为,对查询数据判断其是否在map_result的key中主数据中。将查询得到的key与其对应的映射数据作为元组数据。
值得一提的是,在首次计算时,key对应的value为0,可认为key并没有与其对应的映射数据,此时,检索的结果为数据库中查询数据对应的表中的字段的内容。可例如为表中构造两个字段,即字段1为“北京”和字段2“通州区”。查询结果为“通州区”。
在S204中,判断所述主数据是否在查询表中。判断所述主数据是否在map_result<key,value>中。
在S206中,判断所述映射数据是否在查询集合中。在内存中定义全局查询集合map_knowledge<key,value>,其中key为读取的主数据,value为其全部映射数据构成的集合。判断所述映射数据是否在map_knowledge<key,value>中。
在一个实施例中,判断所述映射数据是否在查询集合中包括:获取所述主数据的属性值;以及通过所述属性值判断所述映射数据是否在查询集合中。从map_result中获取主数据的value(即其所在层级)记为v,根据v对当前元组主数据的映射数据判断,其是否在全局历史集map_knowledge的key中。
在一个实施例中,将所述映射数据储存至所述查询集合中还包括:更新所述主数据的属性值。将映射数据存入map_result后,其对应的value更新为v+1。
在S208中,当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合。
在一个实施例中,通过迭代方式确定结果集合包括:获取所述映射数据在查询集合中对应的第一数据集合;通过所述映射数据与所述第一数据集合生成第二数据集合;以及通过迭代方式对所述第二数据集合中数据进行增广处理以获取所述结果集合。其中,在生成所述第二数据集合的过程中剔除重复数据。其中,将所述第二数据集合的长度与预设阈值作为限制条件;以及在迭代处理所述第二数据集合的过程中,通过所述限制条件实时确定是否继续进行迭代处理,以获取所述结果集合。
在一个实施例中,通过迭代方式确定结果集合还包括:将所述结果集合中的数据储存至所述查询集合中。
在S210中,通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。包括:将所述结果集合中的数据转化为字符串;以及将最大长度的字符串最为所述待查询数据的查询结果。
根据本公开的数据映射关系查询方法,通过迭代方式实时确定结果集合的方式,能够在不做全映射快照的基础上,获取待查询信息的其全部层级关系,解决SQL工作者遇到的难题。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种数据映射关系查询方法的流程图。图3所示的流程是对图2所示的流程中S210中“当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合”的详细描述。
如图3所示,在S302中,初始化集合set2,将当前映射数据放入set2。
在S304中,将set2集合数据放入map_result,并在map_knowledge中删除其记录。
在S306中,对第二数据集合过滤map_result中已包含的数据,并取当前集合长度为l1。
在S308中,令i=0,it=0,初始化set1集合。
在S310中,判断i是否小于l1。
在S312中,映射数据set[i]是否在map_knowledge中。
在S314中,获取其在map_knowledge对应数据集,加入set1中,i=i+1。
在S316中,对set1集合过滤map_result中已包含的数据,it=it+1。
在S318中,重新初始化set2,将第二数据集合数据存入set2。
在S320中,将set1集合合并到查询集合中,并取当前集合长度为l2。
在S322中,判断是否l2大于l1,且it小于阈值。
在S324中,输出结果集合map_result。
初始化set2集合,将当前映射数据中映射数据(第二数据集合)放入set2。
将set2集合数据放入map_result中,其对应value值根据其上一层迭代后自动加1(第一次放入时value值参考初始值)。
将第二数据集合中已经存入map_result里的数据去掉,记录第二数据集合长度为l1,并且设置迭代次数it为0,初始化set1集合,对第二数据集合内的数据遍历,将第二数据集合内在map_knowledge内有记录的全部历史集放入set2集合中,直至遍历结束。
将set1集合中已经存入map_result里的数据去掉(去重机制),同时记录迭代次数加1。将set2集合初始化,放入当前第二数据集合内的数据(set2集合始终是上一次迭代数据的快照),之后将set1集合合并到第二数据集合中,记录第二数据集合长度为l2。
若l2>l1且迭代次数未超过设置阈值(阈值的设置可以使得用户有选择性的找出在阈值层级内的映射关系),表明有新的映射数据加入,进入下一层迭代。
若l2=l1(不会出现<情况)或者迭代次数达到所设阈值,则证明迭代结束,只需将最后更新的map_result作为输出即可。
根据本公开的数据映射关系查询方法,通过动态调整迭代的次数,使得迭代器不是仅仅迭代遍历每一层所有映射数据在历史集中获取的数据,而是设计一种动态优化的迭代器来避免由于跨层重复、死循环和无限增长等恶劣情况所造成的巨额时间或空间的消耗。
在本公开的一种示例性实施例中,还包括:当所述主数据在所述查询表中,且所述映射数据不在所述查询集合中时,将所述映射数据集合储存至所述查询集合中;以及通过所述映射数据集合确定所述待查询数据的查询结果。
在本公开的一种示例性实施例中,还包括:当所述主数据不在所述查询表中时,将所述主数据与所述映射数据储存至查询集合中;以及将空值作为所述待查询数据的查询结果。
图4是根据另一示例性实施例示出的一种数据映射关系查询方法的流程图。图4所示的流程是对本申请实施例中,数据映射关系查询方法全过程的描述。
如图4所示,在S402中,读取元组数据,元组数据包含主数据及其映射数据。在本申请实施例中,构造map_result<key,value>,其中key为在映射关系内的数据,value为其对应最低层级(每个key有可能在多个层级,这里只取其最先到达的层级),将查询主数据作为key存入map_result,对应value默认0。
在内存中定义全局历史集map_knowledge<key,value>,其中key为读取的主数据,value为其全部映射数据构成的集合。
在S404中,判断主数据是否在map_result中。在的话进入S408,否则进入S406。读入每个元组数据,对主数据判断是否在map_result的key中,若没有则表明该主数据目前不在全映射关系中,将当前主数据和其映射数据存入到map_knowledge中,此时返回空值。
在S406中,返回空值。
在S408中,判断映射数据是否在map_knowledge中。在的话进入S410,否则进入S414。
从map_result中获取主数据的value(即其所在层级)记为v,对当前元组主数据的映射数据判断,其是否在全局历史集map_knowledge的key中,若没有,则将该映射数据存入map_result(其对应value为v+1),表明该映射数据目前没有历史映射关系,但其本身在映射关系内,返回map_result。
在S410中,将映射数据与其在map_knowledge中对应的历史集合数据放入第二数据集合中。若映射数据在知识集中有历史映射关系,则将该映射数据和从map_knowledge获取的其对应的历史数据集一起存入新的第二数据集合中,进入优化迭代器后将全部在映射关系内的数据存入map_result中。
在S412中,迭代器进行迭代处理。
在S414中,将数据储存入结果集map_result中。
在S416中,取最大长度结果集作为查询结果。将返回的全部记录(包含空值和map_result)转化为字符串,返回的最大长度字符串可视为所查询数据的全部映射关系。
根据本公开的数据映射关系查询方法,查询一张依赖超过10层关系的数据表,基于udf函数仅用时1min,任务启动job数为1,而基于SQL的嵌套查询除去大量代码的耗时,执行时间基本在10min以上,启动job数也过高。
根据本公开的数据映射关系查询方法,通过在内存中构造全局的map变量存储数据,只需遍历一次数据,避免全量数据的重复迭代(比如嵌套SQL)。
根据本公开的数据映射关系查询方法,根据当前映射数据是否在历史记录中将覆盖过程拆分为两个方向,若在历史记录中则通过向上迭代获取已记录的全部在映射关系内的数据,若不在历史记录中则向下加入新映射数据,该动态局部遍历与全局遍历相比在时间和空间上的复杂度都更低。
根据本公开的数据映射关系查询方法,在向上迭代过程中,用户可根据实际需要设置最大迭代次数来获取任意范围内的层级映射关系。并且优化迭代器的设计具有很好的鲁棒性,基于自身的动态优化迭代能够大大降低计算时间和内存的消耗。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图5是根据一示例性实施例示出的一种数据映射关系查询装置的框图。数据映射关系查询装置50包括:元组模块502,第一判断模块504,迭代模块506,以及第一结果模块508。
元组模块502用于根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据。
第一判断模块504用于判断所述主数据是否在查询表中;第二判断模块,用于判断所述映射数据是否在查询集合中。
迭代模块506用于当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合。
第一结果模块508用于通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
图6是根据另一示例性实施例示出的一种数据映射关系查询装置的框图。数据映射关系查询装置60在数据映射关系查询装置50的基础上还包括:第二结果模块602,第三结果模块604。
第二结果模块602用于当所述主数据在所述查询表中,且所述映射数据不在所述查询集合中时,将所述映射数据集合储存至所述查询集合中;以及通过所述映射数据集合确定所述待查询数据的查询结果;
第三结果模块604用于当所述主数据不在所述查询表中时,将所述主数据与所述映射数据储存至查询集合中;以及将空值作为所述待查询数据的查询结果。
根据本公开的数据映射关系查询装置,通过迭代方式实时确定结果集合的方式,能够在不做全映射快照的基础上,获取待查询信息的其全部层级关系,解决SQL工作者遇到的难题。
图7是根据一示例性实施例示出的一种电子设备的框图。
下面参照图7来描述根据本公开的这种实施方式的电子设备200。图7显示的电子设备200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同***组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书上述电子处方流转处理方法部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元210可以执行如图2,图3,图4中所示的步骤。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
图8示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。
参考图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品400,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;判断所述主数据是否在查询表中;判断所述映射数据是否在查询集合中;当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合;以及通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“第一”、“第二”及“一”等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本公开可实施的范畴。
Claims (14)
1.一种数据映射关系查询方法,其特征在于,包括:
根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;
判断所述主数据是否在查询表中;
判断所述映射数据是否在查询集合中;
当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合;以及
通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述主数据在所述查询表中,且所述映射数据不在所述查询集合中时,将所述映射数据集合储存至所述查询集合中;以及
通过所述映射数据集合确定所述待查询数据的查询结果。
3.如权利要求1所述的方法,其特征在于,还包括:
当所述主数据不在所述查询表中时,将所述主数据与所述映射数据储存至查询集合中;以及
将空值作为所述待查询数据的查询结果。
4.如权利要求1所述的方法,其特征在于,判断所述映射数据是否在查询集合中包括:
获取所述主数据的属性值;以及
通过所述属性值判断所述映射数据是否在查询集合中。
5.如权利要求4或2所述的方法,其特征在于,将所述映射数据储存至所述查询集合中还包括:
更新所述主数据的属性值。
6.如权利要求1所述的方法,其特征在于,通过迭代方式确定结果集合包括:
获取所述映射数据在查询集合中对应的第一数据集合;
通过所述映射数据与所述第一数据集合生成第二数据集合;以及
通过迭代方式对所述第二数据集合中数据进行增广处理以获取所述结果集合。
7.如权利要求6所述的方法,其特征在于,通过迭代方式确定结果集合还包括:
将所述结果集合中的数据储存至所述查询集合中。
8.如权利要求6所述的方法,其特征在于,通过所述映射数据与所述第一数据集合生成第二数据集合还包括:
在生成所述第二数据集合的过程中剔除重复数据。
9.如权利要求6所述的方法,其特征在于,通过迭代方式对所述第二数据集合中数据进行增广处理以获取所述结果集合包括:
将所述第二数据集合的长度与预设阈值作为限制条件;以及
在迭代处理所述第二数据集合的过程中,通过所述限制条件实时确定是否继续进行迭代处理,以获取所述结果集合。
10.如权利要求1所述的方法,其特征在于,通过所述结果集合确定所述待查询数据的查询结果包括:
将所述结果集合中的数据转化为字符串;以及
将最大长度的字符串最为所述待查询数据的查询结果。
11.一种数据映射关系查询装置,其特征在于,包括:
元组模块,用于根据待查询数据确定元组数据,所述元组数据包括主数据与映射数据;
第一判断模块,用于判断所述主数据是否在查询表中;
第二判断模块,用于判断所述映射数据是否在查询集合中;
迭代模块,用于当所述主数据在查询表中,且所述映射数据在查询集合中时,通过迭代方式确定结果集合;以及
第一结果模块,用于通过所述结果集合确定所述待查询数据的查询结果,所述结果集合中包括所述待查询数据对应的全部映射数据集合。
12.如权利要求11所述的装置,其特征在于,还包括:
第二结果模块,用于当所述主数据在所述查询表中,且所述映射数据不在所述查询集合中时,将所述映射数据集合储存至所述查询集合中;以及通过所述映射数据集合确定所述待查询数据的查询结果;以及
第三结果模块,用于当所述主数据不在所述查询表中时,将所述主数据与所述映射数据储存至查询集合中;以及将空值作为所述待查询数据的查询结果。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810691949.9A CN110727672A (zh) | 2018-06-28 | 2018-06-28 | 数据映射关系查询方法、装置、电子设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810691949.9A CN110727672A (zh) | 2018-06-28 | 2018-06-28 | 数据映射关系查询方法、装置、电子设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110727672A true CN110727672A (zh) | 2020-01-24 |
Family
ID=69216704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810691949.9A Pending CN110727672A (zh) | 2018-06-28 | 2018-06-28 | 数据映射关系查询方法、装置、电子设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727672A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597162A (zh) * | 2020-05-19 | 2020-08-28 | 北京明略软件***有限公司 | 信息确定方法和装置、存储介质及电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567329A (zh) * | 2010-12-15 | 2012-07-11 | 金蝶软件(中国)有限公司 | 一种数据查询方法及*** |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105468634A (zh) * | 2014-09-05 | 2016-04-06 | 富士通株式会社 | 数据查询装置和方法 |
CN106997393A (zh) * | 2017-04-10 | 2017-08-01 | 深圳乐信软件技术有限公司 | 数据查询方法、装置、服务器及存储介质 |
CN107038207A (zh) * | 2017-02-20 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、数据处理方法及装置 |
US20180165306A1 (en) * | 2016-12-09 | 2018-06-14 | International Business Machines Corporation | Executing Queries Referencing Data Stored in a Unified Data Layer |
-
2018
- 2018-06-28 CN CN201810691949.9A patent/CN110727672A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567329A (zh) * | 2010-12-15 | 2012-07-11 | 金蝶软件(中国)有限公司 | 一种数据查询方法及*** |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105468634A (zh) * | 2014-09-05 | 2016-04-06 | 富士通株式会社 | 数据查询装置和方法 |
US20180165306A1 (en) * | 2016-12-09 | 2018-06-14 | International Business Machines Corporation | Executing Queries Referencing Data Stored in a Unified Data Layer |
CN107038207A (zh) * | 2017-02-20 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、数据处理方法及装置 |
CN106997393A (zh) * | 2017-04-10 | 2017-08-01 | 深圳乐信软件技术有限公司 | 数据查询方法、装置、服务器及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597162A (zh) * | 2020-05-19 | 2020-08-28 | 北京明略软件***有限公司 | 信息确定方法和装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163739B2 (en) | Database table format conversion based on user data access patterns in a networked computing environment | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
US10915532B2 (en) | Supporting a join operation against multiple NoSQL databases | |
CN102214208B (zh) | 一种基于非结构化文本生成结构化信息实体的方法与设备 | |
US11216474B2 (en) | Statistical processing of natural language queries of data sets | |
US9659023B2 (en) | Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system | |
US11200231B2 (en) | Remote query optimization in multi data sources | |
US11074267B2 (en) | Staged approach to automatic data discovery and performance | |
US10936640B2 (en) | Intelligent visualization of unstructured data in column-oriented data tables | |
CN110914814A (zh) | 分布式存储环境的认知文件和对象管理 | |
US11704345B2 (en) | Inferring location attributes from data entries | |
CN112783887A (zh) | 一种基于数据仓库的数据处理方法及装置 | |
CN110390011B (zh) | 数据分类的方法和装置 | |
US11487708B1 (en) | Interactive visual data preparation service | |
US20220121665A1 (en) | Computerized Methods and Systems for Selecting a View of Query Results | |
CN115918110A (zh) | 使用键值存储库的空间搜索 | |
CN113190517A (zh) | 数据集成方法、装置、电子设备和计算机可读介质 | |
CN110727672A (zh) | 数据映射关系查询方法、装置、电子设备及可读介质 | |
US12001458B2 (en) | Multi-cloud object store access | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN114356945A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US10114864B1 (en) | List element query support and processing | |
CN113515504B (zh) | 数据管理方法、装置、电子设备以及存储介质 | |
CN113448957A (zh) | 一种数据查询方法和装置 | |
US11550760B1 (en) | Time-based partitioning to avoid in-place updates for data set copies |
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 |