一种数据服务方法及装置制造方法及图纸

技术编号:24331131 阅读:54 留言:0更新日期:2020-05-29 19:38
一种数据服务方法及装置,用以解决现有技术中开发者工作量大、数据请求效率较低的问题。本申请中,通过在数据服务提供端将业务数据封装为业务对象,使得数据请求端可以通过访问业务对象描述模型,访问业务数据,数据请求端不需要知道业务数据的存储格式、存储位置等信息,也不需要编写相应的数据请求模块,可减少开发者的工作量。此外,通过本申请的方法,将业务对象描述模型与两个来自异构数据库的数据表描述模型关联映射,使得数据请求端可以同时请求两个数据库的数据,可提高数据的请求效率。

【技术实现步骤摘要】
一种数据服务方法及装置
本申请涉及数据处理
,尤其涉及一种数据服务方法及装置。
技术介绍
随着物联网(internetofthings,IoT)技术的发展,人与物之间以及物与物之间的通信成为可能。在物联网场景下,随着可通信实体的急速增加,由可通信实体产生的数据类型和数据量也在急速增加。例如,在车联网场景中,所涉及的数据类型可包括车辆本身的数据、用户的驾驶行为数据、行驶使用的地图数据、车载娱乐数据、用户兴趣点数据以及天气数据等,这些数据不仅类型多样化,而且数据量非常大。不同类型的数据可能存储在不同的数据库(例如MySQL数据库,HBase数据库,文件数据库(例如excel文件数据库、逗号分隔值(comma-separatedvalues,CSV)文件数据库)),当数据请求端需要访问不同类型的数据时可能涉及到多种异构数据源的访问。现有技术中,数据请求端在向多种异构数据源请求数据时,需要了解各种类型数据的存储信息(例如存储位置、存储格式等),编写相应的数据请求模块,这会增加开发者的工作量。此外,数据请求端采用该方法请求数据,不支持异构数据源的关联混合访问,以异构数据源为MySQL数据库和HBase数据库为例,当数据请求端需要请求MySQL数据库和HBase数据库中的数据时,需要编写不同的数据请求模块,并分别通过这些数据请求模块向MySQL数据库和HBase数据库请求数据,这样数据请求的效率较低。
技术实现思路
本申请实施例提供一种数据服务方法及装置,用以解决现有技术中开发者工作量大、数据请求效率较低的问题。第一方面,本申请实施例提供一种数据服务方法,该方法可应用于数据服务装置。该方法包括:从数据请求端接收包括业务对象的标识和查询条件的请求消息,请求消息用于请求与查询条件对应的业务数据,业务对象由业务数据对应的字段封装得到,根据标识以及预先存储的对应关系,确定与标识对应的业务对象描述模型和业务对象-数据表映射模型,根据业务对象-数据表映射模型、第一数据表描述模型、第二数据表描述模型以及查询条件,查询第一数据库得到第一结果集,查询第二数据库得到第二结果集,根据业务对象描述模型、第一结果集以及第二结果集,生成与查询条件对应的业务对象的实例,实例中包括与查询条件对应的业务数据,向数据请求端发送业务对象的实例。其中,对应关系包括各个业务对象的标识与各个业务对象描述模型与各个业务对象-数据表映射模型的一一对应关系,业务对象描述模型与第一数据表描述模型和第二数据表描述模型具备关联关系,业务对象描述模型用于对业务对象进行格式化描述,业务对象-数据表映射模型用于对业务对象描述模型与第一数据表描述模型和第二数据表描述模型的关联关系进行格式化描述,第一数据表描述模型用于对第一数据库中第一数据表的字段进行格式化描述,第二数据表描述模型用于对第二数据库中第二数据表的字段进行格式化描述,第一数据库和第二数据库为异构数据库。通过上述方法,数据请求端不需要知道所需要访问数据的存储方式、存储位置以及存储格式等,也不需要编写相应的数据请求模块,可以减少开发人员的工作量。此外,通过该方法,将业务对象描述模型与异构数据库中的数据表关联,可支持异构数据源的关联混合访问,也就是说,数据请求端可以通过只访问一个业务对象的方式同时请求两个数据库的数据,当然,本申请是以访问两个数据库为例说明,通过本申请的方法可以扩展为同时请求多个数据库的数据,可提高数据的请求效率。在一种可能的设计中,可采用如下方式根据业务对象-数据表映射模型、第一数据表描述模型、第二数据表描述模型以及查询条件,查询第一数据库得到第一结果集,查询第二数据库得到第二结果集:根据业务对象-数据表映射模型包括的业务对象-数据表的映射信息、查询条件以及第一数据表描述模型包括的第一数据库的类型,生成第一查询命令,根据业务对象-数据表的映射信息、查询条件以及第二数据表描述模型包括的第二数据库的类型,生成第二查询命令,其中,业务对象-数据表的映射信息包括第一数据表描述模型映射到业务对象描述模型的字段信息以及第二数据表描述模型映射到业务对象描述模型的字段信息,根据第一数据表描述模型包括的第一数据库的地址信息以及第一查询命令,查询第一数据库得到第一结果集,根据第二数据表描述模型包括的第二数据库的地址信息以及第二查询命令,查询第二数据库得到第二结果集。在一种可能的设计中,从数据请求端接收包括业务对象的标识和查询条件的请求消息之前,还可以创建第一数据表描述模型和第二数据表描述模型。示例性的,获取第一数据表的字段以及第二数据表的字段;根据第一数据表的字段创建第一数据表描述模型,根据第二数据表的字段创建第二数据表描述模型。其中,第一数据表描述模型和第二数据表描述模型均包括数据表标识、数据表语义信息、数据表存储信息以及数据表的字段信息,数据表标识用于唯一标识一个数据表描述模型,数据表语义信息用于语义搜索,数据表存储信息用于数据请求,数据表的字段信息用于描述数据表的字段。第一数据表描述模型可以格式化描述为:<第一标识,第一数据表语义信息,第一数据表的字段信息,第一数据表存储信息>第一标识,用于唯一标识第一数据表描述模型;第一数据表语义信息包括第一数据表的字段的描述和/或标签;第一数据表的字段信息包括字段的名称、类型和说明;第一数据表存储信息包括第一数据库的存储地址和第一数据库的类型;第二数据表描述模型可以格式化描述为:<第二标识,第二数据表语义信息,第二数据表的字段信息,第二数据表存储信息>第二标识,用于唯一标识第二数据表描述模型;第二数据表语义信息包括第二数据表的字段的描述和/或标签;第二数据表的字段信息包括字段的名称、类型和说明;第二数据表存储信息包括第二数据库的存储地址和第二数据库的类型;其中,第一数据库的类型为关系型且第二数据库的类型为非关系型,或者,第一数据库的类型和第二数据库的类型均为非关系型且第一数据库和第二数据库为不同类型的非关系型数据库。通过上述方法,将数据表封装为描述模型,使得后续使用数据表封装业务对象时,可以灵活选取多个数据表描述模型封装为一个业务对象,使得数据请求端可以通过访问一个业务对象,请求到来自多个数据库的数据表中的数据。在一种可能的设计中,从数据请求端接收包括业务对象的标识和查询条件的请求消息之前,还可以创建业务对象描述模型。示例性的,获取数据请求端的业务需求信息,业务需求信息用于表征数据请求端对业务对象的需求,并根据业务需求信息,创建业务对象描述模型。其中,业务对象描述模型包括业务对象的标识、业务对象语义信息以及业务对象的字段信息,业务对象的标识用于唯一标识业务对象描述模型,业务对象语义信息用于对业务对象描述模型进行语义搜索,业务对象的字段信息用于描述业务对象包括的字段。业务对象描述模型可以格式化描述为:<业务对象的标识,业务对象语义信息,业务对象的字段信息>本文档来自技高网...

【技术保护点】
1.一种数据服务方法,其特征在于,包括:/n从数据请求端接收包括业务对象的标识和查询条件的请求消息,所述请求消息用于请求与所述查询条件对应的业务数据,所述业务对象由业务数据对应的字段封装得到;/n根据所述标识以及预先存储的对应关系,确定与所述标识对应的业务对象描述模型和业务对象-数据表映射模型,所述对应关系包括各个业务对象的标识与各个业务对象描述模型与各个业务对象-数据表映射模型的一一对应关系,所述业务对象描述模型与第一数据表描述模型和第二数据表描述模型具备关联关系,所述业务对象描述模型用于对所述业务对象进行格式化描述,所述业务对象-数据表映射模型用于对所述业务对象描述模型与第一数据表描述模型和第二数据表描述模型的关联关系进行格式化描述,所述第一数据表描述模型用于对第一数据库中第一数据表的字段进行格式化描述,所述第二数据表描述模型用于对第二数据库中第二数据表的字段进行格式化描述,所述第一数据库和所述第二数据库为异构数据库;/n根据所述业务对象-数据表映射模型、所述第一数据表描述模型、所述第二数据表描述模型以及所述查询条件,查询所述第一数据库得到第一结果集,查询所述第二数据库得到第二结果集;/n根据所述业务对象描述模型、所述第一结果集以及所述第二结果集,生成与所述查询条件对应的所述业务对象的实例,所述实例中包括与所述查询条件对应的业务数据;/n向所述数据请求端发送所述业务对象的实例。/n...

【技术特征摘要】
1.一种数据服务方法,其特征在于,包括:
从数据请求端接收包括业务对象的标识和查询条件的请求消息,所述请求消息用于请求与所述查询条件对应的业务数据,所述业务对象由业务数据对应的字段封装得到;
根据所述标识以及预先存储的对应关系,确定与所述标识对应的业务对象描述模型和业务对象-数据表映射模型,所述对应关系包括各个业务对象的标识与各个业务对象描述模型与各个业务对象-数据表映射模型的一一对应关系,所述业务对象描述模型与第一数据表描述模型和第二数据表描述模型具备关联关系,所述业务对象描述模型用于对所述业务对象进行格式化描述,所述业务对象-数据表映射模型用于对所述业务对象描述模型与第一数据表描述模型和第二数据表描述模型的关联关系进行格式化描述,所述第一数据表描述模型用于对第一数据库中第一数据表的字段进行格式化描述,所述第二数据表描述模型用于对第二数据库中第二数据表的字段进行格式化描述,所述第一数据库和所述第二数据库为异构数据库;
根据所述业务对象-数据表映射模型、所述第一数据表描述模型、所述第二数据表描述模型以及所述查询条件,查询所述第一数据库得到第一结果集,查询所述第二数据库得到第二结果集;
根据所述业务对象描述模型、所述第一结果集以及所述第二结果集,生成与所述查询条件对应的所述业务对象的实例,所述实例中包括与所述查询条件对应的业务数据;
向所述数据请求端发送所述业务对象的实例。


2.如权利要求1所述的方法,其特征在于,根据所述业务对象-数据表映射模型、所述第一数据表描述模型、所述第二数据表描述模型以及所述查询条件,查询所述第一数据库得到第一结果集,查询所述第二数据库得到第二结果集,包括:
根据所述业务对象-数据表映射模型包括的业务对象-数据表的映射信息、所述查询条件以及所述第一数据表描述模型包括的所述第一数据库的类型,生成第一查询命令;
根据所述业务对象-数据表的映射信息、所述查询条件以及所述第二数据表描述模型包括的所述第二数据库的类型,生成第二查询命令,其中,所述业务对象-数据表的映射信息包括所述第一数据表描述模型映射到所述业务对象描述模型的字段信息以及所述第二数据表描述模型映射到所述业务对象描述模型的字段信息;
根据所述第一数据表描述模型包括的第一数据库的地址信息以及所述第一查询命令,查询所述第一数据库得到第一结果集;
根据所述第二数据表描述模型包括的第二数据库的地址信息以及所述第二查询命令,查询所述第二数据库得到第二结果集。


3.如权利要求1或2所述的方法,其特征在于,从数据请求端接收包括业务对象的标识和查询条件的请求消息之前,还包括:
获取所述第一数据表的字段以及所述第二数据表的字段;
根据所述第一数据表的字段创建第一数据表描述模型,根据所述第二数据表的字段创建第二数据表描述模型;
其中,所述第一数据表描述模型和所述第二数据表描述模型均包括数据表标识、数据表语义信息、数据表存储信息以及数据表的字段信息,数据表标识用于唯一标识一个数据表描述模型,数据表语义信息用于语义搜索,数据表存储信息用于数据请求,所述数据表的字段信息用于描述所述数据表的字段;
所述第一数据表描述模型格式化描述为:
<第一标识,第一数据表语义信息,第一数据表的字段信息,第一数据表存储信息>
所述第一标识,用于唯一标识所述第一数据表描述模型;
所述第一数据表语义信息包括所述第一数据表的字段的描述和/或标签;
所述第一数据表的字段信息包括字段的名称、类型和说明;
所述第一数据表存储信息包括所述第一数据库的存储地址和所述第一数据库的类型;
所述第二数据表描述模型格式化描述为:
<第二标识,第二数据表语义信息,第二数据表的字段信息,第二数据表存储信息>
所述第二标识,用于唯一标识所述第二数据表描述模型;
所述第二数据表语义信息包括所述第二数据表的字段的描述和/或标签;
所述第二数据表的字段信息包括字段的名称、类型和说明;
所述第二数据表存储信息包括所述第二数据库的存储地址和所述第二数据库的类型;
其中,所述第一数据库的类型为关系型且所述第二数据库的类型为非关系型,或者,所述第一数据库的类型和所述第二数据库的类型均为非关系型且所述第一数据库和所述第二数据库为不同类型的非关系型数据库。


4.如权利要求1至3任一项所述的方法,其特征在于,从数据请求端接收包括业务对象的标识和查询条件的请求消息之前,还包括:
获取所述数据请求端的业务需求信息,所述业务需求信息用于表征所述数据请求端对所述业务对象的需求;
根据所述业务需求信息,创建业务对象描述模型;
其中,所述业务对象描述模型包括业务对象的标识、业务对象语义信息以及业务对象的字段信息,所述业务对象的标识用于唯一标识所述业务对象描述模型,所述业务对象语义信息用于对所述业务对象描述模型进行语义搜索,所述业务对象的字段信息用于描述所述业务对象包括的字段;
所述业务对象描述模型格式化描述为:
<业务对象的标识,业务对象语义信息,业务对象的字段信息>
所述业务对象语义信息包括所述业务对象的字段的描述和/或标签;
所述业务对象的字段信息包括字段的名称、类型和说明,其中,所述业务对象的字段包括所述第一数据表与所述第二数据表中包括的关联字段,且包括所述第一数据表中除所述关联字段的全部或部分字段,且包括所述第二数据表中除所述关联字段的全部或部分字段。


5.如权利要求4所述的方法,其特征在于,根据所述业务需求信息,创建业务对象描述模型之后,还包括:
根据预设的映射信息,将所述业务对象描述模型和所述第一数据表描述模型以及所述第二数据表描述模型进行映射,得到所述业务对象-数据表映射模型;
其中,所述业务对象-数据表映射模型包括业务对象的标识、映射的数据表列表以及业务对象-数据表的映射信息,所述映射的数据表列表用于指示与所述业务对象描述模型关联的数据表描述模型,所述业务对象-数据表的映射信息用于表征所述业务对象描述模型和数据表描述模型的映射关系;
所述业务对象-数据表映射模型格式化描述为:
<业务对象的标识,映射的数据表列表,业务对象-数据表的映射信息>
所述映射的数据表列表中包括所述第一标识和所述第二标识;
所述业务对象-数据表的映射信息包括所述第一数据表描述模型映射到所述业务对象描述模型的字段信息以及所述第二数据表描述模型映射到所述业务对象描述模型的字段信息。


6.如权利要求1至5任一项所述的方法,其特征在于,从数据请求端接收包括业务对象的标识和查询条件的请求消息之前,还包括:
创建用于访问所述业务对象的访问接口描述模型;
所述访问接口描述模型格式化描述为:
<接口描述标识,业务对象列表,接口信息>
其中,所述访问接口描述模型包括接口描述标识、业务对象列表以及接口信息,所述接口信息包括接口访问地址、业务对象请求格式以及业务对象返回格式,所述业务对象列表用于指示可通过所述访问接口描述模型访问的业务对象;
向所述数据请求端发送所述业务对象的实例之前,还包括:
将所述业务对象的实例转化为所述业务对象返回格式。


7.如权利要求2至6任一项所述的方法,其特征在于,所述第一数据表描述模型和所述第二数据表描述模型中还包括统计信息,所述统计信息用于估算每个查询命令对应的查询结果数目;
生成所述第一查询命令和所述第二查询命令之后,还包括:
根据所述统计信息,估算所述第一查询命令和所述第二查询命令分别对应的查询结果数目,当确定所述第一查询命令为查询结果数目最小的查询命令时,依次执行所述第一查询命令和所述第二查询命令,其中,所述第一结果集中包括关联字段对应的数据;
根据所述第二数据表描述模型包括的第二数据库的地址信息以及所述第二查询命令,查询所述第二数据库得到第二结果集,包括:
根据所述关联字段对应的数据以及所述第二查询命令,生成第三查询命令;
根据所述第二数据库的地址信息以及所述第三查询命令,查询所述第二数据库,得到所述第二结果集。


8.如权利要求7所述的方法,其特征在于,所述第一查询命令和所述第二查询命令为多条;
根据所述统计信息,估算所述第一查询命令和所述第二查询命令分别对应的查询结果数目之后,还包括:
将所述查询结果数目大于预设阈值的所述第一查询命令和所述第二查询命令确定为复杂查询命令,将所述查询结果数目大于预设阈值的所述第一查询命令和所述第二查询命令确定为简单查询命令;
将所述复杂查询命令推入第一线程池排队等待,并将所述简单查询命令推入第二线程池排队等待。


9.一种数据服务装置,其特征在于,包括:
接收单元,用于从数据请求端接收包括业务对象的标...

【专利技术属性】
技术研发人员:夏永霖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1