CN107193851A - 数据查询方法及装置 - Google Patents

数据查询方法及装置 Download PDF

Info

Publication number
CN107193851A
CN107193851A CN201610482015.5A CN201610482015A CN107193851A CN 107193851 A CN107193851 A CN 107193851A CN 201610482015 A CN201610482015 A CN 201610482015A CN 107193851 A CN107193851 A CN 107193851A
Authority
CN
China
Prior art keywords
data
enum
database
checked
stored
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
CN201610482015.5A
Other languages
English (en)
Other versions
CN107193851B (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.)
Beijing Feinno Communication Technology Co Ltd
Original Assignee
Beijing Feinno Communication Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Feinno Communication Technology Co Ltd filed Critical Beijing Feinno Communication Technology Co Ltd
Priority to CN201610482015.5A priority Critical patent/CN107193851B/zh
Publication of CN107193851A publication Critical patent/CN107193851A/zh
Application granted granted Critical
Publication of CN107193851B publication Critical patent/CN107193851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query 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

本发明公开了一种数据查询方法及装置,属于信息技术领域。该方法包括:接收数据查询请求,数据查询请求中至少携带待查询的ENUM数据;从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据;在逐层级查询的过程中,如果数据库中的任一ENUM数据与待查询的ENUM数据在指定层级上的数据不匹配,返回失败消息;如果数据库中的任一ENUM数据与待查询的ENUM数据的每个层级数据均匹配,返回成功消息。本发明无需遍历数据库中的全部数据,在接收到数据查询请求后,通过在数据库的多个层级中查询,即可返回查询结果,不仅提高了查询效率,而且避免了查询无用资源所造成的资源消耗,大大节省了查询成本。

Description

数据查询方法及装置
技术领域
本发明涉及信息技术领域,特别涉及一种数据查询方法及装置。
背景技术
在信息技术领域,ENUM数据(E.164 Number URI Mapping,电话号码映射)可通过将E.164号码转换成域名数据得到。通常ENUM数据以条为单位存储在DNS(Domain NameSystem,域名解析系统)服务器的数据库中。
基于ENUM数据的存储方式,当前如果要从DNS服务器的数据库中查询某一条ENUM数据时,需要逐条进行查询、比对。例如,DNS数据库中存储10万条ENUM数据,在进行查询时,可能需要查询10万次。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在查询某一条数据时,需要遍历整个DNS服务器的数据库,不仅查询效率较低,而且查询成本较高。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据查询方法及装置。所述技术方案如下:
一方面,提供了一种数据查询方法,所述方法包括:
接收数据查询请求,所述数据查询请求中至少携带待查询的电话号码映射ENUM数据,所述待查询的ENUM数据包括多个层级数据;
从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据,所述数据库存储有多个ENUM数据,每个ENUM数据分层存储于所述数据库中;
在逐层级查询的过程中,如果所述数据库中的任一ENUM数据与所述待查询的ENUM数据在指定层级上的数据不匹配,返回失败消息;
如果所述数据库中的任一ENUM数据与所述待查询的ENUM数据的每个层级数据均匹配,返回成功消息。
在本发明的另一个实施例中,所述从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到所述数据库。
在本发明的另一个实施例中,所述多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,所述顶级域名包括e164.arpa,所述第一位置序列码包括国家码,用于区分不同的国家,所述第二位置序列码包括移动接入码,用于区分不同的运营商,所述第三位置序列码包括用户标识码,用于区分不同的用户。
在本发明的另一个实施例中,所述从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
基于不同的国家数据库和运营商数据库,建立所述数据库。
在本发明的另一个实施例中,所述从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据,包括:
根据所述待查询的ENUM数据的第一位置序列码,确定所述待查询的ENUM数据所属的国家数据库;
在所述国家数据库中,根据所述待查询的ENUM数据的第二位置序列码,确定所述待查询的ENUM数据所属的运营商数据库;
在所述运营商数据库中,逐层级查询与所述待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
另一方面,提供了一种数据查询装置,所述装置包括:
接收模块,用于接收数据查询请求,所述数据查询请求中至少携带待查询的电话号码映射ENUM数据,所述待查询的ENUM数据包括多个层级数据;
查询模块,用于从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据,所述数据库存储有多个ENUM数据,每个ENUM数据分层存储于所述数据库中;
第一返回模块,用于在逐层级查询的过程中,当所述数据库中的任一ENUM数据与所述待查询的ENUM数据在指定层级上的数据不匹配时,返回失败消息;
第二返回模块,用于当所述数据库中的任一ENUM数据与所述待查询的ENUM数据的每个层级数据均匹配时,返回成功消息。
在本发明的另一个实施例中,所述装置还包括:
第一获取模块,用于获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
第一存储模块,用于对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到所述数据库。
在本发明的另一个实施例中,所述多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,所述顶级域名包括e164.arpa,所述第一位置序列码包括国家码,用于区分不同的国家,所述第二位置序列码包括移动接入码,用于区分不同的运营商,所述第三位置序列码包括用户标识码,用于区分不同的用户。
在本发明的另一个实施例中,所述装置还包括:
第二获取模块,用于获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
第一划分模块,用于根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
第二划分模块,用于在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
第二存储模块,用于在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
建立模块,用于基于不同的国家数据库和运营商数据库,建立所述数据库。
在本发明的另一个实施例中,所述查询模块,用于根据所述待查询的ENUM数据的第一位置序列码,确定所述待查询的ENUM数据所属的国家数据库;在所述国家数据库中,根据所述待查询的ENUM数据的第二位置序列码,确定所述待查询的ENUM数据所属的运营商数据库;在所述运营商数据库中,逐层级查询与所述待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
本发明实施例提供的技术方案带来的有益效果是:
无需遍历数据库中的全部数据,在接收到数据查询请求后,通过在数据库的多个层级中查询,即可返回查询结果,不仅提高了查询效率,而且避免了查询无用资源所造成的资源消耗,大大节省了查询成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种数据查询方法流程图;
图2是本发明另一个实施例提供的一种数据查询方法流程图;
图3是本发明另一个实施例提供的一种数据存储结构的示意图;
图4是本发明另一个实施例提供的一种数据存储结构的示意图;
图5是本发明另一个实施例提供的一种数据存储结构的示意图;
图6是本发明另一个实施例提供的一种数据查询装置的结构示意图;
图7是根据一示例性实施例示出的一种用于数据查询的服务器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种数据查询方法,参见图1,本发明实施例提供的方法流程包括:
101、接收数据查询请求,该数据查询请求中至少携带待查询的电话号码映射ENUM数据,该待查询的ENUM数据包括多个层级数据。
102、从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据,该数据库存储有多个ENUM数据,每个ENUM数据分层存储于数据库中。
103、在逐层级查询的过程中,如果数据库中的任一ENUM数据与待查询的ENUM数据在指定层级上的数据不匹配,返回失败消息。
104、如果数据库中的任一ENUM数据与待查询的ENUM数据的每个层级数据均匹配,返回成功消息。
本发明实施例提供的方法,无需遍历数据库中的全部数据,在接收到数据查询请求后,通过在数据库的多个层级中查询,即可返回查询结果,不仅提高了查询效率,而且避免了查询无用资源所造成的资源消耗,大大节省了查询成本。
在本发明的另一个实施例中,从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到数据库。
在本发明的另一个实施例中,多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,顶级域名包括e164.arpa,第一位置序列码包括国家码,用于区分不同的国家,第二位置序列码包括移动接入码,用于区分不同的运营商,第三位置序列码包括用户标识码,用于区分不同的用户。
在本发明的另一个实施例中,从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
基于不同的国家数据库和运营商数据库,建立数据库。
在本发明的另一个实施例中,从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据,包括:
根据待查询的ENUM数据的第一位置序列码,确定待查询的ENUM数据所属的国家数据库;
在国家数据库中,根据待查询的ENUM数据的第二位置序列码,确定待查询的ENUM数据所属的运营商数据库;
在运营商数据库中,逐层级查询与待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
本发明实施例提供了一种数据查询方法,参见图2,本发明实施例提供的方法流程包括:
201、服务器预先建立数据库。
本实施例中所述的服务器为DNS服务器,该DNS服务器的数据库中存储有多个ENUM数据。ENUM是IEIF(The Internet Engineering Task Force,国际互联网任务工作组)定义的一个协议(RFC2916),其指示了将e.164号码转换为域名形式,以得到ENUM数据的方法。采用ENUM协议将e.164号码转换为ENUM数据时,可先将e.164号码中的非数字字符去掉,并在所有数字字符之间添加分隔符,然后将添加分隔符的数字字符前后顺序颠倒,最后在颠倒后的数字字符的末尾添加顶级域名e.164.arpa,得到ENUM数据。例如,一个e.164号码为86-15801649135,采用上述方法转换得到的ENUM数据为:5.3.1.9.4.6.1.0.8.5.1.6.8.e.164.arpa。
在通信领域,e.164号码是国际电信联盟定义的在PSTN(Public SwitchedTelephone Network,公共交换电话网络)和一些数据网使用的国际公共电话号码,同时也是主叫用户在移动通信网络中所使用的拨号号码。e.164号码实质上为电话号码,一般为13位,由国家码、移动接入码及用户标识码构成。通常e.164号码的格式可以为:CC+N1N2N3+H0H1H2H3+ABCD,其中,CC为(Country Code,国家码)国家码,用于区分不同的国家,中国大陆地区的国家码为86;N1N2N3为移动接入码,用于区分不同的运营商,例如,中国移动的移动接入码为135、136、137、138、139等等,中国联通的移动接入码为130、131、132等等;H0H1H2H3+ABCD为用户标识码,用于区分不同的用户,其中,H0H1H2H3为HLR(Home LocationRegister,本地用户位置寄存器)识别码,由运营商统一分配,ABCD为移动用户号,由各HLR自行分配。
ENUM数据的位数一般为15位,前13位为倒序的e.164号码,每位为0~9的数字,后两位为顶级域名,一般固定为e.164.arpa。除了顶级域名外,剩余的13位(即倒序的e.164号码)可以唯一地确定一个ENUM数据,基于倒序的e.164号码中不同字符的作用,可按倒序顺序,将剩余的13位划分为第一位置序列码、第二位置序列码、第三位置序列码,其中,第一位置序列码与国家码对应,用于区分不同的国家;第二位置序列码与移动接入码对应,用于区分不同的运营商;第三位置序列码与用户标识码对应,用于区分不同的用户。
在本实施例中,为了提高对ENUM数据的查询效率,将ENUM数据中的每一位数称为一个层级数据。为了便于后续的存储与查询,本实施例在确定ENUM数据中的多个层级数据的上下级关系时,按照从后到前的顺序,将最后一位作为第一层级,将倒数第二位作为第二层级,此时第一层级为第二层级的上一层级,将倒数第三位作为第三层级,此时第二层级为第三层级的上一层级,以此类推,将第一位作为最后一层级。
为了解决现有技术中每秒千万级查询ENUM数据时查询效率低的问题,同时降低查询延迟和服务器端性能损耗,节省存储空间,在本实施例中,服务器将采用树形结构存储每个ENUM数据,得到一个数据库。具体过程参见下述步骤2011~2012:
2011、服务器获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据。
本实施例中的服务器可具有信息输入功能,基于该功能,用户可在服务器上输入多个e.164号码,服务器检测到用户的输入操作时,获取用户输入的多个e.164号码,将用户输入的多个e.164号码转换为多个ENUM数据,并将所转换的多个ENUM数据作为多个待存储的ENUM数据。当然,除了采用该种方式外,服务器还可通过互联网从不同的运营商服务器上获取多个e.164号码,将获取到的多个e.164号码转换为多个ENUM数据,并将所转换的多个ENUIM数据作为多个待存储的ENUM数据。其中,每个待存储的ENUM数据也包括多个层级数据。
2012、对于每个待存储的ENUM数据,服务器以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到数据库。
对于每个待存储的ENUM数据,服务器采用末尾倒叙的方式进行树插入,首先存储第一层级数据,以该第一层级作为根节点,第二层级作为根节点的叶子节点存储第二层级数据,以此类推,以上一层级数据为父节点,下一层级的数据为叶子节点,逐层级进行存储。通过采用该种树形结构存储ENUM数据,可得到一个数据库。
参见图3,其示了一种数据存储结构,其仅示出了对某一待存储数据的最后五位的存储结构,即第一层级数据、第二层级数据、第三层级数据、第四层级数据、第五层级数据,但对于其他层级的存储方式与上述五个层级的存储方式相同。在图3中,该第一层级数据为顶级域名的第二位,第二层级为顶级域名的第一位,第三层级为国家码的第一位,第四层级为国家码的第二位,第五层级为移动接入码的第一位。
由于服务器的数据库存储的数据量较大,每秒可能进行千万级的查询,为了提高查询效率,减轻服务器的数据处理压力,本实施例中的服务器可建立一个分布式数据库系统,每个数据库负责存储不同区域的ENUM数据。具体建立过程如下述步骤(1)~(5):
(1)、服务器获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据。
该步骤具体实现时与上述步骤2011相同,具体参见上述步骤2011,此处不再赘述。
(2)、服务器根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中。
由于第一位置序列码可区分不同的国家,当获取到多个待存储的ENUM数据后,服务器可根据第一位置序列码,将多个待存储的ENUM数据划分到不同的国家数据库中。
例如,获取到1000个待存储的ENUM数据,其中,500个待存储的ENUM数据的第一位置序列码为中国大陆地区的国家码86,300个待存储的ENUM数据的第一位置序列码为日本的国家码81,200个待存储的ENUM数据的第一位置序列码为韩国的国家码82,根据第一位置序列码,可将获取到的1000个待存储的ENUM数据划分到3个不同的国家数据库中,其中,中国国家数据中包括500个待存储的ENUM数据,日本国家数据库中包括300个待存储的ENUM数据,韩国国家数据库中包括200个待存储的ENUM数据。对于中国国家数据库的数据结构,可参见图4。
(3)、在同一个国家数据库中,服务器根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中。
由于第二位置序列码用于区分不同的运营商,在同一个国家数据库中,可能包含着指示不同运营商的ENUM数据,因此,根据第二位置序列码,服务器可将属于同一国家数据库的多个待存储的ENUM数据划分到不同的运营商数据中。以上述包含500个待存储的ENUM数据的中国国家数据库为例,该中国国家数据库中可能包括属于中国移动、中国联通、中国电信不同运营商的ENUM数据,根据第二位置序列码,可将第二位置序列码为134、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188等的ENUM数据划分为中国移动数据库,将第二位置序列码为130、131、132、155、156、185、186、145、176等的ENUM数据划分为中国联通数据库,将第二位置序列码为133、153、177、180、181、189等的ENUM数据划分为中国电信数据库。
(4)、在同一运营商数据库中,对于每个待存储的ENUM数据,服务器以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码。
在同一运营商数据库中,对于每个待存储的ENUM数据,服务器采用末尾倒叙的方式进行插入,首先存储第三位置序列码的第一位所在层级的数据,以该层级数据为父节点,以第二位置序列码的第二位所在层级的数据为叶子节点进行存储,以此类推,将第三位置序列码中的上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储。
(5)、基于不同的国家数据库和运营商数据库,服务器建立数据库。
通过采用不同的位置序列码,对多个待存储的ENUM数据进行划分,服务器可建立一个数据库系统,该数据库系统为分布式数据库系统,能够分级存储不同区域的ENUM数据。
当然,为了进一步减轻服务器的数据处理压力,在同一运营商数据库中,服务器可根据运营商的不同号码段,将同一运营商数据库划分为多个号码段数据库。例如,可将中国移动数据库,划分为134数据库、135数据库、136数据库等等。在同一号码段数据库中,服务器还可将第三位置序列码中特定层级所对应的0~9的数字,将同一号码段数据库划分为多个子数据库,每个子数据库中存储一定数字段的ENUM数据。其中,特定层级可以为第三位置序列码中的第一位所在的层级,也可以为第三位置序列码的第二位所在的层级,本实施例不对特定层级作具体的限定。例如,设定第三位置序列码的第一位所在的层级为特定层级,在136数据库中,可将136数据库划分为3个子数据库,其中,第一个子数据库负责存储第三位置序列码的第一位上的数字为0或1或2的ENUM数据,第二个子数据库负责存储第三位置序列码的第一位上的数字为3或4或5的ENUM数据,第三数据库负责存储第二位置序列码的第一位上的数字为6或7或8或9的ENUM数据。
对于一个e.164号码15810649135其对应的ENUM数据为5.3.1.9.4.6.0.1.8.5.1.e.164.arpa,基于上述ENUM数据的存储过程,该ENUM数据的存储结构可参见图5。
202、服务器接收数据查询请求,该数据查询请求中至少携带待查询的电话号码映射ENUM数据。
在通信领域,每个由e.164号码转换而成的ENUM数据都对应一系列的统一资源定位符(Uniform Resource Identifier),基于该统一资源定位符,当接收到数据查询请求时,服务器可从预先建立的数据库中,查询待查询的ENUM数据。
203、从预先建立的数据库中,服务器逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据。
基于预先建立的数据库,当接收到数据查询请求时,服务器可从数据库中逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据。针对所建立的数据库不同,具体查询时也不同。
在本发明的一个实施例中,服务器可从待查询的ENUM数据的第一层级开始,逐层级查询与待存储的ENUM数据的每个层级数据均匹配的ENUM数据。
在本发明的另一个实施例中,服务器可根据待查询的ENUM数据的第一位置序列码,确定待查询的ENUM数据所属的国家数据库,在国家数据库中,根据待查询的ENUM数据的第二位置序列码,确定待查询的ENUM数据所属的运营商数据库,进而在运营商数据库中,逐层级查询与待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
204、在逐层级查询的过程中,如果数据库中的任一ENUM数据与待查询的ENUM数据在指定层级上的数据不匹配,服务器返回失败消息。
在逐层级查询的过程中,当数据库的任一ENUM数据与待查询的ENUM数据在指定层级上的数据不匹配,说明数据库中并不存储该待查询的ENUM数据,此时服务器将无需遍历数据库中的全部数据,而是直接返回无此数据的失败消息,以避免带来的无用资源消耗。
由于ENUM数据中除顶级域名外每一层级只有0~9十个数字,每一层级最多数据项为10项,每一层级查询匹配的次数最多为10次,每一层级的查询复杂度也为10,对于一个ENUM数据,其查询匹配层数为13层,因而采用本发明的存储方式构建数据库后,从数据库中查询一个待查询的ENUM数据的查询次数最多为10*13=130次,远小于现有技术中N条数据的N次,大大提升了查询性能。
基于本发明中数据库的树形结构,当数据库系统中的数据库数量有限时,可大大降低被匹配的数据库的数量。例如,某个数据库为136数据库,只负责存储6.3.1.6.8.e164.arpa为父节点的数据,当查询非此结尾开头的ENUM数据时,直接返回失败消息,无需遍历整个136数据库。
对于同一号码段数据库所划分的多个子数据库,这些多个子数据库之间彼此通信,当在一个子数据库中未查询到与待查询的ENUM数据的第三位置序列码的第一位匹配的数据时,该子数据库可向将数据查询请求发送至另一子数据库,由另一数据库进行查询,该另一子数据库负责存储以待查询的ENUM数据的第三位置序列码的第一位上数据为父节点的数据。
205、如果数据库中的任一ENUM数据与待查询的ENUM数据的每个层级数据均匹配,服务器返回成功消息。
在逐层级查询过程中,如果数据库中的任一ENUM数据与待查询的ENUM数据的每个层级数据均匹配,说明数据库中存储该待查询的ENUM数据,此时服务器将返回成功消息。
本发明实施例提供的方法,无需遍历数据库中的全部数据,在接收到数据查询请求后,通过在数据库的多个层级中查询,即可返回查询结果,不仅提高了查询效率,而且避免了查询无用资源所造成的资源消耗,大大节省了查询成本。
参见图6,本发明实施例提供了一种数据查询装置,该装置包括:
接收模块601,用于接收数据查询请求,数据查询请求中至少携带待查询的电话号码映射ENUM数据,待查询的ENUM数据包括多个层级数据;
查询模块602,用于从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据,数据库存储有多个ENUM数据,每个ENUM数据分层存储于数据库中;
第一返回模块603,用于在逐层级查询的过程中,当数据库中的任一ENUM数据与待查询的ENUM数据在指定层级上的数据不匹配时,返回失败消息;
第二返回模块604,用于当数据库中的任一ENUM数据与待查询的ENUM数据的每个层级数据均匹配时,返回成功消息。
在本发明的另一个实施例中,该装置还包括:
第一获取模块,用于获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
第一存储模块,用于对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到数据库。
在本发明的另一个实施例中,多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,顶级域名包括e164.arpa,第一位置序列码包括国家码,用于区分不同的国家,第二位置序列码包括移动接入码,用于区分不同的运营商,第三位置序列码包括用户标识码,用于区分不同的用户。
在本发明的另一个实施例中,该装置还包括:
第二获取模块,用于获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
第一划分模块,用于根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
第二划分模块,用于在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
第二存储模块,用于在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
建立模块,用于基于不同的国家数据库和运营商数据库,建立数据库。
在本发明的另一个实施例中,查询模块602,用于根据待查询的ENUM数据的第一位置序列码,确定待查询的ENUM数据所属的国家数据库;在国家数据库中,根据待查询的ENUM数据的第二位置序列码,确定待查询的ENUM数据所属的运营商数据库;在运营商数据库中,逐层级查询与待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
综上所述,本发明实施例提供的装置,无需遍历数据库中的全部数据,在接收到数据查询请求后,通过在数据库的多个层级中查询,即可返回查询结果,不仅提高了查询效率,而且避免了查询无用资源所造成的资源消耗,大大节省了查询成本。
图7是根据一示例性实施例示出的一种用于数据查询的服务器。参照图7,服务器700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述数据查询中服务器所执行的功能,该方法包括:
接收数据查询请求,数据查询请求中至少携带待查询的电话号码映射ENUM数据,待查询的ENUM数据包括多个层级数据;
从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据,数据库存储有多个ENUM数据,每个ENUM数据分层存储于数据库中;
在逐层级查询的过程中,如果数据库中的任一ENUM数据与待查询的ENUM数据在指定层级上的数据不匹配,返回失败消息;
如果数据库中的任一ENUM数据与待查询的ENUM数据的每个层级数据均匹配,返回成功消息。
在本发明的另一个实施例中,从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到数据库。
在本发明的另一个实施例中,多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,顶级域名包括e164.arpa,第一位置序列码包括国家码,用于区分不同的国家,第二位置序列码包括移动接入码,用于区分不同的运营商,第三位置序列码包括用户标识码,用于区分不同的用户。
在本发明的另一个实施例中,从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
基于不同的国家数据库和运营商数据库,建立数据库。
在本发明的另一个实施例中,从预先建立的数据库中,逐层级查询与待查询的ENUM数据的每个层级数据均匹配的ENUM数据,包括:
根据待查询的ENUM数据的第一位置序列码,确定待查询的ENUM数据所属的国家数据库;
在国家数据库中,根据待查询的ENUM数据的第二位置序列码,确定待查询的ENUM数据所属的运营商数据库;
在运营商数据库中,逐层级查询与待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
服务器700还可以包括一个电源组件726被配置为执行服务器700的电源管理,一个有线或无线网络接口750被配置为将服务器700连接到网络,和一个输入输出(I/O)接口758。服务器700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本发明实施例提供的服务器,无需遍历数据库中的全部数据,在接收到数据查询请求后,通过在数据库的多个层级中查询,即可返回查询结果,不仅提高了查询效率,而且避免了查询无用资源所造成的资源消耗,大大节省了查询成本。
需要说明的是:上述实施例提供的数据查询装置在查询数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据查询装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据查询装置与数据查询方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据查询方法,其特征在于,所述方法包括:
接收数据查询请求,所述数据查询请求中至少携带待查询的电话号码映射ENUM数据,所述待查询的ENUM数据包括多个层级数据;
从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据,所述数据库存储有多个ENUM数据,每个ENUM数据分层存储于所述数据库中;
在逐层级查询的过程中,如果所述数据库中的任一ENUM数据与所述待查询的ENUM数据在指定层级上的数据不匹配,返回失败消息;
如果所述数据库中的任一ENUM数据与所述待查询的ENUM数据的每个层级数据均匹配,返回成功消息。
2.根据权利要求1所述的方法,其特征在于,所述从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到所述数据库。
3.根据权利要求1所述的方法,其特征在于,所述多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,所述顶级域名包括e164.arpa,所述第一位置序列码包括国家码,用于区分不同的国家,所述第二位置序列码包括移动接入码,用于区分不同的运营商,所述第三位置序列码包括用户标识码,用于区分不同的用户。
4.根据权利要求3所述的方法,其特征在于,所述从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据之前,还包括:
获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
基于不同的国家数据库和运营商数据库,建立所述数据库。
5.根据权利要求4所述的方法,其特征在于,所述从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据,包括:
根据所述待查询的ENUM数据的第一位置序列码,确定所述待查询的ENUM数据所属的国家数据库;
在所述国家数据库中,根据所述待查询的ENUM数据的第二位置序列码,确定所述待查询的ENUM数据所属的运营商数据库;
在所述运营商数据库中,逐层级查询与所述待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
6.一种数据查询装置,其特征在于,所述装置包括:
接收模块,用于接收数据查询请求,所述数据查询请求中至少携带待查询的电话号码映射ENUM数据,所述待查询的ENUM数据包括多个层级数据;
查询模块,用于从预先建立的数据库中,逐层级查询与所述待查询的ENUM数据的每个层级数据均匹配的ENUM数据,所述数据库存储有多个ENUM数据,每个ENUM数据分层存储于所述数据库中;
第一返回模块,用于在逐层级查询的过程中,当所述数据库中的任一ENUM数据与所述待查询的ENUM数据在指定层级上的数据不匹配时,返回失败消息;
第二返回模块,用于当所述数据库中的任一ENUM数据与所述待查询的ENUM数据的每个层级数据均匹配时,返回成功消息。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
第一存储模块,用于对于每个待存储的ENUM数据,以上一层级数据为父节点,下一层级数据为叶子节点,逐层级进行存储,得到所述数据库。
8.根据权利要求6所述的装置,其特征在于,所述多个层级数据组成顶级域名、第一位置序列码、第二位置序列码及第三位置序列码,所述顶级域名包括e164.arpa,所述第一位置序列码包括国家码,用于区分不同的国家,所述第二位置序列码包括移动接入码,用于区分不同的运营商,所述第三位置序列码包括用户标识码,用于区分不同的用户。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取多个待存储的ENUM数据,每个待存储的ENUM数据包括多个层级数据;
第一划分模块,用于根据第一位置序列码,将多个待存储的ENUM数据划分到不同国家数据库中;
第二划分模块,用于在同一个国家数据库中,根据第二位置序列码,将多个待存储的ENUM数据划分到不同的运营商数据库中;
第二存储模块,用于在同一运营商数据库中,对于每个待存储的ENUM数据,以上一层级数据为父节点,以下一层级数据为叶子节点,逐层级存储第三位置序列码;
建立模块,用于基于不同的国家数据库和运营商数据库,建立所述数据库。
10.根据权利要求9所述的装置,其特征在于,所述查询模块,用于根据所述待查询的ENUM数据的第一位置序列码,确定所述待查询的ENUM数据所属的国家数据库;在所述国家数据库中,根据所述待查询的ENUM数据的第二位置序列码,确定所述待查询的ENUM数据所属的运营商数据库;在所述运营商数据库中,逐层级查询与所述待查询的ENUM数据的第三位置序列码对应的层级数据相匹配的数据。
CN201610482015.5A 2016-06-27 2016-06-27 数据查询方法及装置 Active CN107193851B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610482015.5A CN107193851B (zh) 2016-06-27 2016-06-27 数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610482015.5A CN107193851B (zh) 2016-06-27 2016-06-27 数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN107193851A true CN107193851A (zh) 2017-09-22
CN107193851B CN107193851B (zh) 2020-09-15

Family

ID=59870881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610482015.5A Active CN107193851B (zh) 2016-06-27 2016-06-27 数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN107193851B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062936A (zh) * 2018-06-15 2018-12-21 中国平安人寿保险股份有限公司 一种数据查询方法、计算机可读存储介质及终端设备
CN113254419A (zh) * 2021-01-19 2021-08-13 青岛诺顿传媒有限公司 一种基于大数据微服务的物联网云平台管理系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1509085A (zh) * 2002-12-15 2004-06-30 华为技术有限公司 下一代网络中实现路由的方法
CN1565113A (zh) * 2002-01-07 2005-01-12 摩托罗拉公司 使用ip进行通信的网络
CN101114448A (zh) * 2006-07-28 2008-01-30 佛山市顺德区顺达电脑厂有限公司 语音辨识系统
CN101507253A (zh) * 2006-06-13 2009-08-12 泰克莱克公司 访问号码可携性(np)和e.164号码(enum)数据
CN101917493A (zh) * 2010-08-18 2010-12-15 中兴通讯股份有限公司 一种服务器迭代查询方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1565113A (zh) * 2002-01-07 2005-01-12 摩托罗拉公司 使用ip进行通信的网络
CN1509085A (zh) * 2002-12-15 2004-06-30 华为技术有限公司 下一代网络中实现路由的方法
CN101507253A (zh) * 2006-06-13 2009-08-12 泰克莱克公司 访问号码可携性(np)和e.164号码(enum)数据
CN101114448A (zh) * 2006-07-28 2008-01-30 佛山市顺德区顺达电脑厂有限公司 语音辨识系统
CN101917493A (zh) * 2010-08-18 2010-12-15 中兴通讯股份有限公司 一种服务器迭代查询方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062936A (zh) * 2018-06-15 2018-12-21 中国平安人寿保险股份有限公司 一种数据查询方法、计算机可读存储介质及终端设备
CN109062936B (zh) * 2018-06-15 2023-10-31 中国平安人寿保险股份有限公司 一种数据查询方法、计算机可读存储介质及终端设备
CN113254419A (zh) * 2021-01-19 2021-08-13 青岛诺顿传媒有限公司 一种基于大数据微服务的物联网云平台管理系统及方法

Also Published As

Publication number Publication date
CN107193851B (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
CN101222550B (zh) 通过高速缓冲存储和对等查找确定电话号码和ip地址的配对
CN107613085A (zh) 手机通讯录自动更新方法、服务器和用户终端
CN101252625B (zh) 因特网协议语音应用中的用户号码的收集方法及语音网关
CN101801059A (zh) 用于cpe的数据访问方法和cpe
CN101160930A (zh) 一种e.164号码域名存储和查询方法
CN105847565A (zh) 一种紧急通信号码确定方法及装置
CN107193851A (zh) 数据查询方法及装置
CN103281115B (zh) 一种应用于卫星通信网络的通信系统及方法
US9712667B2 (en) Identifying network entities in a peer-to-peer network
CN101110871A (zh) 一种e.164域名的解析方法以及域名服务器
CN105357650A (zh) 智能移动数字对讲方法、服务器及系统
CN101815285B (zh) 网间移动号码应用中数据同步方法和系统
CN101094449A (zh) 用户归属短消息网关的寻址方法及短消息业务系统
GB2472664A (en) Dialling plan analysis and cleanup
CN101707597A (zh) 用户信息的处理方法、服务器及终端
CN101483844A (zh) 索引移动电话号码的方法和系统
CN103812707A (zh) 一种线路标识报文的转发处理方法
CN110248354A (zh) 一种基于动态配置的数据处理方法及其应用
CN101389099A (zh) 一种移动通信终端及消息管理方法
CN100539620C (zh) 一种实现补充业务属性设置的方法
CN105245694B (zh) 数字编码与非数字编码的转换方法、通信系统和通信方法
CN101123751B (zh) 发起移动通信业务的方法与移动终端
CN105357105A (zh) 一种提升会话速度的装置和方法
CN100499897C (zh) 一种业务服务器识别用户终端的方法
CN100440906C (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080

Applicant after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building block A room 602

Applicant before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant