CN110020243A - 物联网数据的查询方法、装置、物联网服务器和存储介质 - Google Patents
物联网数据的查询方法、装置、物联网服务器和存储介质 Download PDFInfo
- Publication number
- CN110020243A CN110020243A CN201711048852.8A CN201711048852A CN110020243A CN 110020243 A CN110020243 A CN 110020243A CN 201711048852 A CN201711048852 A CN 201711048852A CN 110020243 A CN110020243 A CN 110020243A
- Authority
- CN
- China
- Prior art keywords
- target sub
- target
- database
- incidence relation
- internet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2423—Interactive query statement specification based on a database schema
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种物联网数据的查询方法,该方法包括:接收针对物联网数据的HTTP查询语句;解析HTTP查询语句,得到URL,从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件;获取目标子对象的关联关系;根据目标对象、查询条件以及目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;将数据库查询语句向数据库系统发送,接收来自数据库系统响应数据库查询语句的查询结果。本发明实施例还同时公开了一种物联网数据的查询装置、物联网服务器和计算机存储介质。
Description
技术领域
本发明涉及物联网数据的查询技术,尤其涉及一种物联网数据的查询方法、装置、物联网服务器和计算机存储介质。
背景技术
目前,物联网平台流行采用RESTful风格接口对外提供物联网设备和数据的相关服务,如设备数据获取;在物联网系统中,物联网设备和数据资源会以树状结构的形式对外暴露,这种资源树上的每个资源都会被一个统一资源定位符(URL,Uniform ResourceLocator)地址标识,外部可以通过CRUD(Create、Retrieve,Update和Delete)的方式对这些资源进行操作。
超文本传输协议(HTTP,HyperText Transfer Protocol)是一种最常见的支持CRUD操作的协议,因此,目前物联网平台的RESTful风格接口实现也基本是基于HTTP协议,其中,检索(Retrieve)操作通过HTTP GET方法实现。具体为通过GET某个URL,从而获取URL对应的资源信息。比如,在获取某个设备数据时,可以直接GET该设备数据对应的URL从而获取数据。面对数据获取时,需要对数据内容进行过滤筛选的需求,可以在URL后面通过?隔开添加相应的参数作为查询条件。比如:
GET http://www.iot.com/device/1234/data/temperature?q=value>20andtime>2017-07-11,这个是查询device 1234的温度数据,查询条件是数值大于20,时间日期在2017年7月11日之后。
目前,大部分物联网平台都是采用这种方式来获取数据资源,但是由于Restful风格的资源一致性要求,这种方式所附带的查询条件只能对URL所指向的资源对象进行设置,无法处理目标查询资源的约束条件来自于对其他相关资源的约束。
随着物联网的发展,数据的种类越来越多,查询的需求也越来越复杂,这种只针对目标对象的约束条件方式面临了很多局限,比如,如果只是查询某个已知设备的满足条件的温度数据很容易,但是如果是要查询一个业主年龄在30岁以上且地址在北京的家庭中温度为23度的温度传感器,目前的这种查询方式就无法通过一次请求进行查询。因为查询条件不只是针对温度传感器,还涉及到其他对象,有些对象甚至不会在URL中出现。
为了解决这种问题而又保持现有HTTP接口的兼容性,一种方式是在HTTP接口中内嵌另外一种支持关联的查询协议,如查询语言和数据获取协议(SPARQL,SPARQL Protocoland RDF Query Language)查询语言,目前物联网平台的oneM2M新版本中查询接口支持将SPARQL查询语句嵌入到HTTP的查询参数中进行查询过滤,但是,现有的SPARQL的方式基于图形数据库,需要额外的技术实现,采用该查询方法存在较大的交互开销和较高的运算复杂度。
发明内容
有鉴于此,本发明实施例期望提供一种物联网数据的查询方法、装置、物联网服务器和计算机存储介质,旨在扩展查询条件的同时提高对物联网数据的查询效率。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种物联网数据的查询方法,包括:接收针对物联网数据的超文本传输协议HTTP查询语句;解析所述HTTP查询语句,得到统一资源定位符URL,从所述URL中获取目标对象和针对所述目标对象中至少一个目标子对象的查询条件;获取所述目标子对象的关联关系;根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;将所述数据库查询语句向所述数据库系统发送,接收来自所述数据库系统响应所述数据库查询语句的查询结果。
进一步地,所述获取所述目标子对象的关联关系,包括:从所述目标子对象中选取出属性类型为关联属性的目标子对象;根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系。
进一步地,所述根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系,包括:当所述目标子对象的属性值为第一子对象标识时,将所述目标子对象与所述第一子对象之间的关联关系确定为所述目标子对象的关联关系。
进一步地,所述根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句,包括:将所述目标对象的名称、所述目标子对象的名称、所述查询条件以及所述关联关系写入指定的语言格式中,生成所述数据库查询语句。
进一步地,在接收针对物联网数据的超文本传输协议HTTP查询语句之前,所述方法还包括:获取所述目标子对象的属性类型;当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据所述目标子对象的关联关系,为所述第二子对象标识,生成对应的记录;当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据所述目标子对象的关联关系,为所述第三子对象标识中的每一个子对象标识,生成对应的记录;将生成的记录形成所述数据表,存储至所述数据库系统中;其中,所述数据库查询语句用于所述数据库系统查找与所述数据库查询语句相匹配的记录,根据相匹配的记录生成所述查询结果。
第二方面,本发明实施例提供一种物联网数据的查询装置,包括:接收模块,用于接收针对物联网数据的超文本传输协议HTTP查询语句;解析模块,用于解析所述HTTP查询语句,得到统一资源定位符URL,从所述URL中获取目标对象和针对所述目标对象中至少一个目标子对象的查询条件;获取模块,用于获取所述目标子对象的关联关系;生成模块,用于根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成数据库查询语句;收发模块,用于将所述数据库查询语句向所述数据库系统发送,接收来自所述数据库系统响应所述数据库查询语句的查询结果。
进一步地,所述获取模块,包括:选取子模块,用于从所述目标子对象中选取出属性类型为关联属性的目标子对象;获取子模块,用于根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系。
进一步地,所述获取子模块,具体用于:当所述目标子对象的属性值为第一子对象标识时,确定所述目标子对象与所述第一子对象之间的关联关系为所述目标子对象的关联关系。
进一步地,所述生成模块,具体用于:将所述目标对象的名称、所述目标子对象的名称、所述查询条件以及所述关联关系写入指定的语言格式中,生成所述数据库查询语句。
进一步地,在接收针对物联网数据的超文本传输协议HTTP查询语句之前,所述装置还用于:获取所述目标子对象的属性类型;当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据所述目标子对象的关联关系,为所述第二子对象标识,生成对应的记录;当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据所述目标子对象的关联关系,为所述第三子对象标识中的每一个子对象标识,生成对应的记录;将生成的记录形成所述数据表,存储至所述数据库系统中;其中,所述数据库查询语句用于所述数据库系统查找与所述数据库查询语句相匹配的记录,根据相匹配的记录生成所述查询结果。
第三方面,本发明实施例提供一种物联网服务器,所述物联网服务器包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的物联网数据的查询程序,以实现以下步骤:
接收针对物联网数据的超文本传输协议HTTP查询语句;解析所述HTTP查询语句,得到统一资源定位符URL,从所述URL中获取目标对象和针对所述目标对象中至少一个目标子对象的查询条件;获取所述目标子对象的关联关系;根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;将所述数据库查询语句向所述数据库系统发送,接收来自所述数据库系统响应所述数据库查询语句的查询结果。
进一步地,所述获取所包括的目标子对象的关联关系中,所述处理器用于执行存储器中存储的物联网服务器的查询程序,以实现以下步骤:从所述目标子对象中选取出属性类型为关联属性的目标子对象;根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系。
进一步地,所述根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系中,所述处理器用于执行存储器中存储的物联网服务器的查询程序,以实现以下步骤:当所述目标子对象的属性值为第一子对象标识时,将所述目标子对象与所述第一子对象之间的关联关系确定为所述目标子对象的关联关系。
进一步地,所述根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句中,所述处理器用于执行存储器中存储的物联网服务器的查询程序,以实现以下步骤:将所述目标对象的名称、所述目标子对象的名称、所述查询条件以及所述关联关系写入指定的语言格式中,生成所述数据库查询语句。
进一步地,在接收针对物联网数据的超文本传输协议HTTP查询语句之前,所述处理器用于执行存储器中存储的物联网服务器的查询程序,以实现以下步骤:获取所述目标子对象的属性类型;当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据所述目标子对象的关联关系,为所述第二子对象标识,生成对应的记录;当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据所述目标子对象的关联关系,为所述第三子对象标识中的每一个子对象标识,生成对应的记录;将生成的记录形成所述数据表,存储至所述数据库系统中;其中,所述数据库查询语句用于所述数据库系统查找与所述数据库查询语句相匹配的记录,根据相匹配的记录生成所述查询结果。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述一个或多个实施例中提供的物联网数据的查询方法。
本发明实施例所提供的一种物联网数据的查询方法、装置、物联网服务器和计算机存储介质,该方法包括:首先,接收针对物联网数据的HTTP查询语句,解析HTTP查询语句得到URL,然后,可以从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件,那么,在已知目标对象和针对目标对象中至少一个目标子对象的查询条件的基础上,再获取目标子对象的关联关系,并根据目标对象、查询条件以及目标子对象的关联关系,可以生成针对至少一个目标子对象的数据库查询语句,这样,加入了目标子对象的关联关系,能够避免现有的查询条件只能针对URL所指向的目标对象的查询条件,从而扩展了查询条件,得到了扩展后的查询条件的数据库查询语句,最后,能够将数据库查询语句向数据库系统发送,从而接收到来自数据库系统响应数据库查询语句的查询结果;也就是说,本发明实施例中,通过基于获取到的目标子对象的关联关系,知晓目标子对象之间的关联关系,进而对于查询条件不再仅仅限于针对目标对象的查询条件,能够兼容针对至少一个目标子对象的查询方式,并且,未引入其他的网络架构协议,使得在扩展了查询条件的同时提高了对物联网数据的查询效率,方便了用户进行查询。
附图说明
图1为本发明实施例中的物联网数据的查询方法的可选的流程示意图;
图2为本发明实施例中的物联网数据的查询装置的结构示意图;
图3为本发明实施例中的物联网服务器的结构示意图;
图4为本发明实施例中的计算机存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供一种物联网数据的查询方法,该方法可以应用于物联网服务器中,在实际应用中可以将该物联网服务器描述成物联网平台,用户可以通过该平台查询物联网数据。
图1为本发明实施例中的物联网数据的查询方法的可选的流程示意图,如图1所示,该物联网数据的查询方法可以包括:
S101:接收针对物联网数据的HTTP查询语句;
具体来说,在用户通过物联网平台输入HTTP查询语句来获取查询结果之前,平台中需要构建数据模型。
其中,在为物联网数据构建数据模型的过程中,为不同类型的物联网数据定义不同的数据模型,并映射到资源树,形成对应的URL;例如,对于物联网数据的类型为Home对象中可以包括有子对象Id、Owner、Location、Device,并将Home中可以包括有子对象Id、Owner、Location、Device的关系映射到资源树形成对应的URL。
然后,在不同类型的对象对应的数据模型中针对该类型的对象中所包括的子对象添加相应的关联属性定义,并将关联属性定义的属性值设为子对象标识或者子对象标识集合。例如,当对象Home的子对象中定义Owner和Device的属性类型为关联属性,那么,Owner的属性值为用户A的标识SubscriberA和用户B的标识SubscriberB,说明子对象Owner与SubscriberA之间相关联,子对象Owner与SubscriberB之间相关联;在建立完成物联网数据的每个对象中子对象的关联关系之后,将子对象的关联关系存储至数据库系统中。
那么,当用户要从平台中查询数据时,先向平台输入HTTP查询语句,使得平台接收到HTTP查询语句。
S102:解析HTTP查询语句,得到URL,从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件;
具体来说,平台接收到HTTP查询语句之后,解析HTTP查询语句可以得到对应的URL,由于URL中携带有目标对象和查询条件,所以可以直接从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件,例如,HTTP查询语句为:
GET http://www.iot.com/home?q=Location=”Beijing”and Owner_Age>30andDevice_{type=”DoorLocker”and DeviceStatus_{Status=”{“DoorLock”:True}”andTime>T09:00:00}}
得到的目标对象为家庭home,查询条件为q=Location=”Beijing”and Owner_Age>30and Device_{type=”DoorLocker”and DeviceStatus_{Status=”{“DoorLock”:True}”and Time>T09:00:00}},即查找位于北京的,业主年龄大于30岁且早上9点以后业主出门的家庭。
其中,上述查询条件书写的语法格式可以采用Get方法,使用如下语法形式:XAY;其中,XAY表明查询条件中要约束的目标对象的X属性关联的子对象的Y属性,其中,X,Y分别为目标对象的属性和目标子对象的属性,A为连接符,如可用_表示;当需要对X属性关联的子对象的多个属性进行约束时,如对XAY和XAZ同时进行约束,则采用如下语法形式XA{YCand ZD},其中and为查询条件的与关系的约束符,这里也可以用或(or)关系的约束符替代,C和D分别为对属性Y和Z约束的表达式,如=,<,>,这里,也可以用XAYC and XAZD方式表达。
S103:获取目标子对象的关联关系;
在得到目标对象和查询条件之后,再获取目标子对象的关联关系,为了获取目标子对象的关联关系,在一种可选的实施例中,S103可以包括:
从目标子对象中选取出属性类型为关联属性的目标子对象;根据属性类型为关联属性的目标子对象的属性值,确定目标子对象的关联关系。
由上述可知,为不同类型的对象对应的数据模型中针对该类型的对象中所包括的子对象添加相应的关联属性定义,这里,先获取添加了关联属性定义的子对象,即从目标子对象中选取出属性类型为关联属性的目标子对象,然后根据属性类型为关联属性的目标子对象的属性值确定目标子对象的关联关系;在具体实施过程中,根据属性类型为关联属性的目标子对象的属性值,确定目标子对象的关联关系,包括:
当目标子对象的属性值为第一子对象标识时,将目标子对象与第一子对象之间的关联关系确定为目标子对象的关联关系。
具体来说,当目标子对象的属性类型定义为关联属性referURI或者referURISets时,若属性值为一个子对象标识,那么,将目标子对象与该标识对应的子对象之间的关联关系确定为目标子对象的关联关系;例如,定义Device为关联属性referURISets,且属性值为DeviceA和DeviceB,那么,将Device与DeviceA的关联关系、Device与DeviceB的关联关系确定Device的关联关系。
S104:根据目标对象、查询条件以及目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;
在获取到目标子对象的关联关系之后,需要生成针对至少一个目标子对象的数据库查询语句,在具体实施过程中,S104可以包括:
将目标对象的名称、目标子对象的名称、查询条件以及关联关系写入指定的语言格式中,生成数据库查询语句。
具体来说,生成数据库查询语句,即将HTTP查询语句生成结构化查询语言(SQL,Structured Query Language),转换方法为将目标对象的名称、目标子对象的名称、查询条件以及关联关系写入指定的语言格式中,既可以转换生成SQL查询语句,即数据库查询语句。
S105:将数据库查询语句向数据库系统发送,接收来自数据库系统响应数据库查询语句的查询结果。
在得到数据库查询语句之后,将数据库查询语句发送至数据库系统,数据库系统中的SQL引擎根据数据库查询语句查找目标对象,得到与数据库查询语句相匹配的查询结果。
需要说明的是,在数据库系统中,先找到与数据库查询语句相匹配的记录,根据记录生成查询结果,那么为了生成记录,在一种可选的实施例中,S101之前,该方法可以包括:
获取目标子对象的属性类型;当目标子对象的属性类型为关联属性,且目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据目标子对象的关联关系,为第二子对象标识,生成对应的记录;当目标子对象的属性类型为关联属性,且目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据目标子对象的关联关系,为第三子对象标识中的每一个子对象标识,生成对应的记录;将生成的记录形成数据表,存储至数据库系统中。
其中,上述属性类型可以包括:字符串String、整数Integer、时间Data和关联属性等等,该关联属性可以包括referURI和referURISets,referURI定义为该目标子对象的属性值仅仅包含一个子对象标识,referURISets定义为该目标子对象的属性值包含至少两个子对象标识。
具体来说,当目标子对象的属性类型定义为referURI,且目标子对象的属性值为包含一个子对象标识的第二子对象标识,那么,该目标子对象与第二目标子对象之间相关联,根据目标子对象与第二目标子对象之间的关联关系,为第二子对象标识生成对应的记录;
当目标子对象的属性类型定义为referURISets,且目标子对象的属性值为包含至少两个子对象标识的第三子对象标识,那么,该目标子对象与第三目标子对象之间相关联,根据目标子对象与第三目标子对象中各子对象之间的关联关系,为第三子对象标识中的每个子对象标识生成对应的记录;
用所生成的全部记录形成数据表,存储至数据库系统中。
这样,数据库系统中存储有子对象具有关联关系的记录。
其中,数据库查询语句用于数据库系统查找与数据库查询语句相匹配的记录,根据相匹配的记录生成查询结果;也就是说,数据库系统在接收到数据库查询语句之后,从数据库系统中查找到与数据库查询语句相匹配的记录,并按照预设的格式生成查询结果,返回给物联网数据的查询平台。
下面举实例来对上述一个或多个实施例中物联网数据的查询方法进行说明。
在智能家居业务场景中,为Home的对象定义属性类型Type,这里,添加了关联属性referURI和referURISets的定义,其中,referURI为一个子对象标识,referURISets为子对象标识集合。
下面表1为Home的属性类型的定义:
表1
其中,表1中Id的属性类型为字符串,表示对象为Home的唯一身份标识,Owner的属性类型referURI,表示Home所属Subscriber的统一资源标识符(URI,Uniform ResourceIdentifier),Location的属性类型为字符串,标识Home的地址信息,Device的属性类型为referURISets,表示在Home中的Device的URI参数集合。
下面表2为Subscriber的属性类型的定义:
Name | Type | Description |
Id | String | The unique id of the subscriber |
Age | Integer | The age of the subscriber |
表2
上述表2中Id的属性类型为字符串,表示Subscriber的唯一身份标识,Age的属性类型为整数,表示Subscriber的年龄。
下面表3为Device的属性类型的定义:
表3
上表3中Id的属性类型为字符串,表示Device的唯一身份标识,Type的属性类型为字符串,例如,洗衣机和空调,DeviceStatus的属性类型为referURISets,表示与Device有关的设备状态的URI参数集合,Place的属性类型为referURI,表示Device所处地点的URI参数。
下面表4为DeviceStatus的属性类型的定义:
表4
其中,表4中Id的属性类型为字符串,表示DeviceStatus的唯一身份标识,Status的属性类型为对象,表示为DeviceStatus描述的JS对象标记(JSON,JavaScript ObjectNotation)格式的内容,Time的属性类型为时间,表示与状态的时间。其中,各类型对象对应的URL设计为:
Home:/home
Subscriber:/subscriber
Device:/device
DeviceStatus:/device/devicestatus
根据上述定义的模型在平台中,产生了相应类型的对象。例如下面表5的HomeA:
表5
SubscriberA
Name | Value |
Id | SubscriberA |
Age | 45 |
表6
DeviceA
表7
DeviceB
表8
DeviceStatus1
表9
DeviceStatus2
表10
DeviceStatus3
表11
DeviceStatus4
表12
将子对象存入数据库系统时,假设采用关系型数据库存储,不同类型的对象建立不同的表存储该类型的对象,表名用对象的类型命名。对于referURISet数据进行存储时,为了便于查询针对referURISet中的每个referURI形成多条行记录。
例如,对于HomeA,会针对Device属性里面的两个referURI在Home对象对应的表13中形成两条行记录。
Id | Owner | Location | Device |
HomeA | SubscriberA | Beijing | DeviceA |
HomeA | SubscriberA | Beijing | DeviceB |
表13
平台接收到HTTP查询语句,生成数据库查询语句,例如,想要查询位于北京的,业主年龄大于30岁且早上9点以后业主出门的家庭,请求形式如下:
GET http://www.iot.com/home?q=Location=”Beijing”and Owner_Age>30andDevice_{type=”DoorLocker”and DeviceStatus_{Status=”{“DoorLock”:True}”andTime>T09:00:00}}
其中,www.iot.com为物联网平台地址,/home为请求的对象类型,?后面为查询条件,and表示条件之间满足and关系,语法XAY中A连接符采用“_”形式。也可以写为:
GET http://www.iot.com/home?q=Location=”Beijing”and Owner_Age>30andDevice_type=”DoorLocker”and Device_DeviceStatus_Status=”{“DoorLock”:True}”and Device_DeviceStatus_Time>T09:00:00
Location=”Beijing”,目标对象Home的地址为Beijing,
Owner_Age>30,目标对象Home的Owner所关联的Age属性大于30
Device_{type=”DoorLocker”and DeviceStatus_{Status=”{“DoorLock”:True}”and Time>T09:00:00}}
目标对象Home的Device所关联的类型为DoorLocker且该目标对象的DeviceStatus所关联的Status属性为{“DoorLock”:True}且实际大于9点。
平台收到HTTP查询语句后,将HTTP查询语句转换为相应的数据库查询语句,如在该例中数据库为关系型数据库,可以转换为如下SQL语句进行查询,转换时具体方法为:
SELECT字段对应请求URL中目标资源(相当于目标对象)的表名.*
FROM字段添加参数中涉及的全部资源类型对应的表名
ON字段添加上述资源类型对应的表中涉及到的关联属性的对应关系
WHERE字段中添加请求URL后面的过滤条件对应的约束关系
具体转换后为:
SELECT Home.*
FROM Home,Device,Subscriber,DeviceStatus
ON Home.Owner=Subscriber.Id and Home.Device=Device.Id andDevice.DeviceStatus=DeviceStatus.Id
WHERE Home.Location=’Beijing’and Device.type=”DoorLocker”andSubscriber.Age>30and DeviceStatus.Status=”{“DoorLock”:True}”and DATEDIFF(hh,DeviceStatus.Time,‘2016-05-01 09:00:00’)<=0
那么,数据库查询结果如下面表14所示:
Home.Id | Home.Owner | Home.Location | Home.Devices |
HomeA | SubscriberA | Beijing | DeviceB |
表14
将数据库查询结果所对应的Home对象的内容返回给平台,如采用JSON表示:
通过上述实例可知,不需要内嵌SPARQL的查询方式,可以避免由于不同的数据架构之间进行交互的开销,并且技术实现复杂度低,并且不局限于图形数据库,数据库的适应性较好。
本发明实施例所提供的一种物联网数据的查询方法,该方法包括:首先,接收针对物联网数据的HTTP查询语句,解析HTTP查询语句得到URL,然后,可以从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件,那么,在已知目标对象和针对目标对象中至少一个目标子对象的查询条件的基础上,再获取目标子对象的关联关系,并根据目标对象、查询条件以及目标子对象的关联关系,可以生成针对至少一个目标子对象的数据库查询语句,这样,加入了目标子对象的关联关系,能够避免现有的查询条件只能针对URL所指向的目标对象的查询条件,从而扩展了查询条件,得到了扩展后的查询条件的数据库查询语句,最后,能够将数据库查询语句向数据库系统发送,从而接收到来自数据库系统响应数据库查询语句的查询结果;也就是说,本发明实施例中,通过基于获取到的目标子对象的关联关系,知晓目标子对象之间的关联关系,进而对于查询条件不再仅仅限于针对目标对象的查询条件,能够兼容针对至少一个目标子对象的查询方式,并且,未引入其他的网络架构协议,使得在扩展了查询条件的同时提高了对物联网数据的查询效率,方便了用户进行查询。
基于同一发明构思,本实施例提供一种物联网数据的查询装置,图2为本发明实施例中的物联网数据的查询装置的结构示意图,如图2所示,该物联网数据的查询装置包括:接收模块21、解析模块22、获取模块23、生成模块24和收发模块25;
其中,接收模块21,用于接收针对物联网数据的HTTP查询语句;解析模块22,用于解析HTTP查询语句,得到URL,从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件;获取模块23,用于获取目标子对象的关联关系;生成模块24,用于根据目标对象、查询条件以及目标子对象的关联关系,生成数据库查询语句;收发模块25,用于将数据库查询语句向数据库系统发送,接收来自数据库系统响应数据库查询语句的查询结果。
在一种可选的实施例中,获取模块23块,包括:选取子模块,用于从目标子对象中选取出属性类型为关联属性的目标子对象;获取子模块,用于根据属性类型为关联属性的目标子对象的属性值,确定目标子对象的关联关系。
在一种可选的实施例中,获取子模块,具体用于:当目标子对象的属性值为第一子对象标识时,确定目标子对象与第一子对象之间的关联关系为目标子对象的关联关系。
在一种可选的实施例中,生成模块24,具体用于:将目标对象的名称、目标子对象的名称、查询条件以及关联关系写入指定的语言格式中,生成数据库查询语句。
在一种可选的实施例中,上述装置还用于:在接收针对物联网数据的HTTP查询语句之前,获取目标子对象的属性类型;当目标子对象的属性类型为关联属性,且目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据目标子对象的关联关系,为第二子对象标识,生成对应的记录;当目标子对象的属性类型为关联属性,且目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据目标子对象的关联关系,为第三子对象标识中的每一个子对象标识,生成对应的记录;将生成的记录形成数据表,存储至数据库系统中;其中,数据库查询语句用于数据库系统查找与数据库查询语句相匹配的记录,根据相匹配的记录生成查询结果。
基于同一发明构思,本实施例提供一种物联网服务器,图3为本发明实施例中的物联网服务器的结构示意图,如图3所示,该物联网服务器包括:处理器31、存储器32和通信总线33;其中,通信总线33用于实现处理器31和存储器32之间的连接通信;所述处理器31用于执行存储器中存储的物联网服务器的查询程序,以实现以下步骤:
接收针对物联网数据的HTTP查询语句;解析HTTP查询语句,得到URL,从URL中获取目标对象和针对目标对象中至少一个目标子对象的查询条件;获取目标子对象的关联关系;根据目标对象、查询条件以及目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;将数据库查询语句向数据库系统发送,接收来自数据库系统响应数据库查询语句的查询结果。
在一种可选的实施例中,获取目标子对象的关联关系中,所述处理器31还用于执行所述物联网数据的查询程序,以实现以下步骤:从目标子对象中选取出属性类型为关联属性的目标子对象;根据属性类型为关联属性的目标子对象的属性值,确定目标子对象的关联关系。
在一种可选的实施例中,根据属性类型为关联属性的目标子对象的属性值,确定目标子对象的关联关系中,所述处理器31还用于执行所述物联网数据的查询程序,以实现以下步骤:
当目标子对象的属性值为第一子对象标识时,将目标子对象与第一子对象之间的关联关系确定为目标子对象的关联关系。
在一种可选的实施例中,根据所述目标对象、查询条件以及目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句中,所述处理器31还用于执行所述物联网数据的查询程序,以实现以下步骤:
将目标对象的名称、目标子对象的名称、查询条件以及关联关系写入指定的语言格式中,生成数据库查询语句。
在一种可选的实施例中,在接收针对物联网数据的HTTP查询语句之前,所述处理器31还用于执行所述物联网数据的查询程序,以实现以下步骤:
获取目标子对象的属性类型;当目标子对象的属性类型为关联属性,且目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据目标子对象的关联关系,为第二子对象标识,生成对应的记录;当目标子对象的属性类型为关联属性,且目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据目标子对象的关联关系,为第三子对象标识中的每一个子对象标识,生成对应的记录;将生成的记录形成数据表,存储至数据库系统中。
其中,数据库查询语句用于数据库系统查找与数据库查询语句相匹配的记录,根据相匹配的记录生成查询结果。
本发明实施例提供一种计算机存储介质,图4为本发明实施例中的计算机存储介质的结构示意图,如图4所示,所述计算机存储介质400中存储有计算机可执行指令,该计算机可执行指令配置为执行本发明其他实施例提供的物联网数据的查询方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种物联网数据的查询方法,其特征在于,包括:
接收针对物联网数据的超文本传输协议HTTP查询语句;
解析所述HTTP查询语句,得到统一资源定位符URL,从所述URL中获取目标对象和针对所述目标对象中至少一个目标子对象的查询条件;
获取所述目标子对象的关联关系;
根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;
将所述数据库查询语句向所述数据库系统发送,接收来自所述数据库系统响应所述数据库查询语句的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述获取所述目标子对象的关联关系,包括:
从所述目标子对象中选取出属性类型为关联属性的目标子对象;
根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系。
3.根据权利要求2所述的方法,其特征在于,所述根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系,包括:
当所述目标子对象的属性值为第一子对象标识时,将所述目标子对象与所述第一子对象之间的关联关系确定为所述目标子对象的关联关系。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句,包括:
将所述目标对象的名称、所述目标子对象的名称、所述查询条件以及所述关联关系写入指定的语言格式中,生成所述数据库查询语句。
5.根据权利要求3所述的方法,其特征在于,在接收针对物联网数据的超文本传输协议HTTP查询语句之前,所述方法还包括:
获取所述目标子对象的属性类型;
当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含一个子对象标识的第二子对象标识时,根据所述目标子对象的关联关系,为所述第二子对象标识,生成对应的记录;
当所述目标子对象的属性类型为关联属性,且所述目标子对象的属性值为包含至少两个子对象标识的第三子对象标识时,根据所述目标子对象的关联关系,为所述第三子对象标识中的每一个子对象标识,生成对应的记录;
将生成的记录形成所述数据表,存储至所述数据库系统中;
其中,所述数据库查询语句用于所述数据库系统查找与所述数据库查询语句相匹配的记录,根据相匹配的记录生成所述查询结果。
6.一种物联网数据的查询装置,其特征在于,包括:
接收模块,用于接收针对物联网数据的超文本传输协议HTTP查询语句;
解析模块,用于解析所述HTTP查询语句,得到统一资源定位符URL,从所述URL中获取目标对象和针对所述目标对象中至少一个目标子对象的查询条件;
获取模块,用于获取所述目标子对象的关联关系;
生成模块,用于根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成数据库查询语句;
收发模块,用于将所述数据库查询语句向所述数据库系统发送,接收来自所述数据库系统响应所述数据库查询语句的查询结果。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,包括:
选取子模块,用于从所述目标子对象中选取出属性类型为关联属性的目标子对象;
获取子模块,用于根据所述属性类型为关联属性的目标子对象的属性值,确定所述目标子对象的关联关系。
8.根据权利要求7所述的装置,其特征在于,所述获取子模块,具体用于:
当所述目标子对象的属性值为第一子对象标识时,确定所述目标子对象与所述第一子对象之间的关联关系为所述目标子对象的关联关系。
9.根据权利要求7或8所述的装置,其特征在于,所述生成模块,具体用于:
将所述目标对象的名称、所述目标子对象的名称、所述查询条件以及所述关联关系写入指定的语言格式中,生成所述数据库查询语句。
10.一种物联网服务器,其特征在于,所述物联网服务器包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的物联网数据的查询程序,以实现以下步骤:
接收针对物联网数据的超文本传输协议HTTP查询语句;
解析所述HTTP查询语句,得到统一资源定位符URL,从所述URL中获取目标对象和针对所述目标对象中至少一个目标子对象的查询条件;
获取所述目标子对象的关联关系;
根据所述目标对象、所述查询条件以及所述目标子对象的关联关系,生成针对至少一个目标子对象的数据库查询语句;
将所述数据库查询语句向所述数据库系统发送,接收来自所述数据库系统响应所述数据库查询语句的查询结果。
11.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述权利要求1至5任一项提供的物联网数据的查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711048852.8A CN110020243A (zh) | 2017-10-31 | 2017-10-31 | 物联网数据的查询方法、装置、物联网服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711048852.8A CN110020243A (zh) | 2017-10-31 | 2017-10-31 | 物联网数据的查询方法、装置、物联网服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110020243A true CN110020243A (zh) | 2019-07-16 |
Family
ID=67186726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711048852.8A Pending CN110020243A (zh) | 2017-10-31 | 2017-10-31 | 物联网数据的查询方法、装置、物联网服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020243A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177178A (zh) * | 2019-12-03 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111199406A (zh) * | 2019-12-17 | 2020-05-26 | 广州中国科学院计算机网络信息中心 | 一种面向机器的基于标识知识库的资源注册、识别方法及相应存储介质与电子装置 |
CN112822729A (zh) * | 2019-11-15 | 2021-05-18 | 中移物联网有限公司 | 一种边缘业务切换方法和边缘管理系统 |
WO2023050568A1 (zh) * | 2021-09-30 | 2023-04-06 | 西门子股份公司 | 数据查询的方法、数据服务和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991921A (zh) * | 2015-06-26 | 2015-10-21 | 北京奇虎科技有限公司 | 一种数据查询方法、客户端和服务器 |
CN105653709A (zh) * | 2015-12-30 | 2016-06-08 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种智能家居语音文本控制方法 |
CN106126646A (zh) * | 2016-06-21 | 2016-11-16 | 广州中国科学院计算机网络信息中心 | 建立物联网智能设备的倒排索引的方法及装置 |
US20170139996A1 (en) * | 2012-05-18 | 2017-05-18 | Splunk Inc. | Collection query driven generation of inverted index for raw machine data |
CN106953923A (zh) * | 2017-03-30 | 2017-07-14 | 佛山市南海区广工大数控装备协同创新研究院 | 一种工业物联网智能系统 |
-
2017
- 2017-10-31 CN CN201711048852.8A patent/CN110020243A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170139996A1 (en) * | 2012-05-18 | 2017-05-18 | Splunk Inc. | Collection query driven generation of inverted index for raw machine data |
CN104991921A (zh) * | 2015-06-26 | 2015-10-21 | 北京奇虎科技有限公司 | 一种数据查询方法、客户端和服务器 |
CN105653709A (zh) * | 2015-12-30 | 2016-06-08 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种智能家居语音文本控制方法 |
CN106126646A (zh) * | 2016-06-21 | 2016-11-16 | 广州中国科学院计算机网络信息中心 | 建立物联网智能设备的倒排索引的方法及装置 |
CN106953923A (zh) * | 2017-03-30 | 2017-07-14 | 佛山市南海区广工大数控装备协同创新研究院 | 一种工业物联网智能系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822729A (zh) * | 2019-11-15 | 2021-05-18 | 中移物联网有限公司 | 一种边缘业务切换方法和边缘管理系统 |
CN112822729B (zh) * | 2019-11-15 | 2022-11-29 | 中移物联网有限公司 | 一种边缘业务切换方法和边缘管理系统 |
CN111177178A (zh) * | 2019-12-03 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111199406A (zh) * | 2019-12-17 | 2020-05-26 | 广州中国科学院计算机网络信息中心 | 一种面向机器的基于标识知识库的资源注册、识别方法及相应存储介质与电子装置 |
WO2023050568A1 (zh) * | 2021-09-30 | 2023-04-06 | 西门子股份公司 | 数据查询的方法、数据服务和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104885078B (zh) | 用于大规模并行处理数据库集群中的两阶段查询优化的方法 | |
CN110032575A (zh) | 数据查询方法、装置、设备和存储介质 | |
CN101408877B (zh) | 树节点加载系统及其方法 | |
CN105786808B (zh) | 一种用于分布式执行关系型计算指令的方法与设备 | |
KR101004576B1 (ko) | 연쇄 발견 웹 서비스 | |
CN110020243A (zh) | 物联网数据的查询方法、装置、物联网服务器和存储介质 | |
CN103425726B (zh) | 使用业务智能工具访问开放数据 | |
CN104618433B (zh) | 一种基于eca规则的服务组合方法 | |
US9535966B1 (en) | Techniques for aggregating data from multiple sources | |
GB2574903A (en) | Compilable data model | |
CN104462430B (zh) | 关系型数据库的数据处理方法及装置 | |
CN105760397B (zh) | 物联网本体模型处理方法及装置 | |
CN107480252A (zh) | 一种数据查询方法、客户端、服务端及系统 | |
CN109670081A (zh) | 业务请求处理的方法及装置 | |
CN107026882A (zh) | 一种资源获取的方法及相关设备 | |
CN103761102B (zh) | 一种统一数据服务平台及其实现方法 | |
CN102750300B (zh) | 一种支持多粒度查询的高性能非结构化数据存取方法 | |
CN114064690A (zh) | 数据处理方法及装置 | |
CN110019835A (zh) | 资源编排方法、装置以及电子设备 | |
US8489631B2 (en) | Distributing a query | |
CN109033404A (zh) | 日志数据处理方法、装置和系统 | |
US20170339252A1 (en) | Generating a response to a client device in an internet of things domain | |
CN103488655B (zh) | 复合模型数据处理方法及系统 | |
CN110928984A (zh) | 一种知识图谱的构建方法、装置、终端及存储介质 | |
CN106802901A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |