一种多源异构数据处理方法、装置和存储介质[发明专利]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910903339.5
(22)申请日 2019.09.24
(71)申请人 中国电子科技集团公司电子科学研
究院
地址 100041 北京市石景山区双园路11号
申请人 武汉大学
(72)发明人 郑作亚 仇林遥 陈旭 呙维
贾向阳 潘一凡 柳罡 李黔湘
鲁续坤
(74)专利代理机构 工业和信息化部电子专利中
心 11010
代理人 吴淑艳
(51)Int.Cl.
G06F 16/242(2019.01)
G06F 16/28(2019.01)
G06F 16/81(2019.01)G06F 16/83(2019.01)G06F 16/838(2019.01)G06F 16/84(2019.01)
(54)发明名称一种多源异构数据处理方法、装置和存储介质(57)摘要本发明提出了一种多源异构数据处理方法、装置和存储介质,用以提供一种实现多源数据统一接入和管理。
本发明实施例提供一种多源异构数据处理方法,包括:接收数据源系统上传的结构化数据,所述结构化数据为利用预先定义的可扩展标记语言XML模板对元数据进行处理后得到的;利用XSL文本转换器将所述结构化数据转换为键值对K -V类型数据,所述XSL文本转换器为根据所述XML模板生成的,所述K -V类型数据中包含有混合字段,所述混合字段为利用需要被搜索的字段拼接得到的;从所述K -V类型数据中抽取数
据值存储至地理空间关系型数据库中。
权利要求书2页 说明书9页 附图3页CN 110716952 A 2020.01.21
C N 110716952
A
1.一种多源异构数据处理方法,其特征在于,包括:
接收数据源系统上传的结构化数据,所述结构化数据为利用预先定义的可扩展标记语言XML模板对元数据进行处理后得到的;
利用可扩展样式表语言XSL文本转换器将所述结构化数据转换为键值对K-V类型数据,所述XSL文本转换器为根据所述XML模板生成的,所述K-V类型数据中包含有混合字段,所述混合字段为利用需要被搜索的字段拼接得到的;
从所述K-V类型数据中抽取数据值存储至地理空间关系型数据库中。
2.根据权利要求1所述的方法,其特征在于,接收数据源系统上传的结构化数据,具体包括:
接收数据源系统通过文件传输协议FTP上传的结构化数据。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收数据查询请求,所述数据查询请求中携带有查询参数;
根据所述查询参数,生成结构化查询语言SQL语句;
利用所述SQL语句在所述地理空间关系型数据库中进行查询得到查询结果。
4.根据权利要求3所述的方法,其特征在于,根据所述查询参数,生成SQL语句,具体包括:
将所述查询参数转换为K-V键值对;
针对每一查询参数,根据该查询参数的值,生成SQL子语句;
将每一查询参数对应的SQL子语句拼接成SQL语句。
5.根据权利要求4所述的方法,其特征在于,所述查询参数包括以下至少一项:选择参数,条件参数,起始位置参数,结束位置参数和排序参数。
6.根据权利要求1所述的方法,其特征在于,所述XML模板中包含有若干字段及其对应的数据类型,所述数据类型包括以下至少一项:整型,浮点型,地理空间类型,字符型,日期型和二进制类型。
7.一种多源异构数据处理装置,其特征在于,包括:
第一接收单元,用于接收数据源系统上传的结构化数据,所述结构化数据为利用预先定义的可扩展标记语言XML模板对元数据进行处理后得到的;
转换单元,用于利用可扩展样式表语言XSL文本转换器将所述结构化数据转换为键值对K-V类型数据,所述XSL文本转换器为根据所述XML模板生成的,所述K-V类型数据中包含有混合字段,所述混合字段为利用需要被搜索的字段拼接得到的;
数据抽取单元,用于从所述K-V类型数据中抽取数据值存储至地理空间关系型数据库中。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二接收单元,用于接收数据查询请求,所述数据查询请求中携带有查询参数;
生成单元,用于根据所述查询参数,生成结构化查询语言SQL语句;
查询单元,用于利用所述SQL语句在所述地理空间关系型数据库中进行查询得到查询结果。
9.一种计算装置,其特征在于,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如
权利要求1至6中任一项所述的方法的步骤。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
一种多源异构数据处理方法、装置和存储介质
技术领域
[0001]本发明涉及数据汇聚与管理技术领域,尤其涉及一种多源异构数据处理方法、装置和存储介质。
背景技术
[0002]地面信息港依托天地一体化信息网络,汇聚多源异构时空数据,搭建分布式云公共基础设施环境,部署统一服务开放平台,打造新型时空数据服务枢纽。
[0003]其中,数据存管模块是地面信息港的数据接收中心、多源数据资源中心和搜索大脑,是多系统间的连接集成中心。
提供将运管个人空间内流程化生产的数据注册存储至数据中心、为可视化中心三维展示提供数据源、数据中心数据发布、多源异构数据接收等多种集成功能。
[0004]然而地面信息港的数据来源复杂,尤其是包含大量地理空间数据和非空间数据常规数据,如何将这些数据用一种合理、灵活、易理解的方式组织起来成为现有技术中亟待解决的技术问题之一。
发明内容
[0005]本发明实施例提供一种多源异构数据处理方法、装置和存储介质,用以提供一种实现多源数据统一接入和管理。
[0006]本发明实施例提供一种多源异构数据处理方法,包括:
[0007]接收数据源系统上传的结构化数据,所述结构化数据为利用预先定义的可扩展标记语言XML模板对元数据进行处理后得到的;
[0008]利用XSL文本转换器将所述结构化数据转换为键值对K-V类型数据,所述XSL文本转换器为根据所述XML模板生成的,所述K-V类型数据中包含有混合字段,所述混合字段为利用需要被搜索的字段拼接得到的;
[0009]从所述K-V类型数据中抽取数据值存储至地理空间关系型数据库中。
[0010]在一种实施方式中,接收数据源系统上传的结构化数据,具体包括:
[0011]接收数据源系统通过文件传输协议FTP上传的结构化数据。
[0012]在一种实施方式中,本发明实施例提供的多源异构数据处理方法,还包括:[0013]接收数据查询请求,所述数据查询请求中携带有查询参数;
[0014]根据所述查询参数,生成结构化查询语言sql语句;
[0015]利用所述sql语句在所述地理空间关系型数据库中进行查询得到查询结果。
[0016]在一种实施方式中,生成sql语句,具体包括:
[0017]将所述查询参数转换为K-V键值对;
[0018]针对每一查询参数,根据该查询参数的值,生成sql子语句;
[0019]将每一查询参数对应的sql子语句拼接成sql语句。
[0020]在一种实施方式中,所述查询参数包括以下至少一项:选择参数,条件参数,起始
位置参数,结束位置参数和排序参数。
[0021]在一种实施方式中,所述XML模板中包含有若干字段及其对应的数据类型,所述数据类型包括以下至少一项:整型,浮点型,地理空间类型,字符型,日期型和二进制类型。
[0022]本发明实施例还提供一种多源异构数据处理装置,包括:
[0023]第一接收单元,用于接收数据源系统上传的结构化数据,所述结构化数据为利用预先定义的可扩展标记语言XML模板对元数据进行处理后得到的;
[0024]转换单元,用于利用XSL文本转换器将所述结构化数据转换为键值对K-V类型数据,所述XSL文本转换器为根据所述XML模板生成的,所述K-V类型数据中包含有混合字段,所述混合字段为利用需要被搜索的字段拼接得到的;
[0025]数据抽取单元,用于从所述K-V类型数据中抽取数据值存储至地理空间关系型数据库中。
[0026]在一种实施方式中,本发明实施例提供的多源异构数据处理装置,还包括:[0027]第二接收单元,用于接收数据查询请求,所述数据查询请求中携带有查询参数;[0028]生成单元,用于根据所述查询参数,生成结构化查询语言sql语句;
[0029]查询单元,用于利用所述sql语句在所述地理空间关系型数据库中进行查询得到查询结果。
[0030]本发明实施例提供一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一多源异构数据处理方法所述的步骤。
[0031]本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一多源异构数据处理方法所述的步骤。
[0032]采用上述技术方案,本发明至少具有下列优点:
[0033]本发明所述多源异构数据处理方法、装置和存储介质中,通过定义XML模板实现了数据子定义配置,可以根据实际需求定义自身所需数据类型,从而实现了数据字段结构定制化,可配置化,实现了类型繁杂,数据量庞大的海量多源地理空间数据的统一接入和管理。
附图说明
[0034]图1为本发明实施例的数据接入架构示意图;
[0035]图2为本发明实施例的多源异构数据处理流程示意图;
[0036]图3为本发明实施例的正向转换器和反向转换器示意图;
[0037]图4为本发明实施例的SQL拼接过程示意图;
[0038]图5为本发明实施例的多源异构数据处理装置结构示意图。
具体实施方式
[0039]为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
[0040]需要说明的是,本发明实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
应该理解
这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
[0041]在本文中提及的“多个或者若干个”是指两个或两个以上。
“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
字符“/”一般表示前后关联对象是一种“或”的关系。
[0042]管理多源异构数据,地理空间数据是难点。
随着信息时代的发展和地理信息系统的普及,如何更好的将类型繁杂、数据量庞大的海量多源地理空间数据存起来、管起来、用起来成为地理信息科学所关注的重点。
目前,GIS(Geographic Information System,地理信息系统)已进入了社会化GIS时代,GIS应用需要集多种数据源以及不同数据格式的数据才能完成;随着GIS化的进一步发展、网络技术的广泛应用以及地理数据的数量、复杂性和多样性的增加,多源空间地理数据的共享和集成已成为必然趋势。
地理空间数据的多源性主要表现在多语义性、多时空性和多尺度、获取手段多样性、存储格式多源性、分布式特征和空间拓扑特征等方面。
地理空间数据还具有数据量大、结构和关系复杂的特点。
传统的一幅遥感影像往往需要占据1G以上,甚至10多G的存储空间,并且同一地区,不同时间内影像数据也会发生变化,如果全部存储下来,将导致数据库趋于越来越大。
一个小范围的地理空间数据文件或一个大规模集成电路可能就需要上百GB的存储空间,如果要记录存储一片区域的数据,单一服务器往往难以拥有如此大的存储空间,因此需要分布式的存储数据系统并对重要数据提供灾备功能,并且随着数据量越来越大,将元数据保存在数据库中这种模式是必要的。
[0043]合理的解决对海量空间数据处理,发展能存储、访问和管理TB到PB量级的海量数据的能力可以促进GIS学科的发展,为实现社会地理信息化有重大推进作用,帮助人们科学解释发生在地理空间中现象和规律、事件发生的因果关系、条件关系及相关关系,对人类干预或科学开发利用地理信息资源进行宏观管理决策和微观管理决策等。
[0044]有鉴于此,本发明实施例提供了分布式文件存储集群,通过glusterfs(一个开源的分布式文件系统)将不同节点的服务器连接起来,汇聚成一个大的存储池,通过网络进行通信,对多源地理空间数据的数据体进行存储,存储的数据以遥感影像数据为主。
[0045]具体实施时,接入地面信息港的各数据源系统可以通过文件传输协议将元数据推送到数据管理中心进行存储,并可通过地面信息港的其他系统对数据进行操作并注册入库。
在一种实施方式中,各数据源系统可以通过FTP网络传输数据,如图1所示,其为本发明实施例提供的数据接入架构示意图,通过提供FTP站点供各数据源系统进行数据上传和数据入库。
各数据源系统采集的元数据通过FTP文件传输协议被推送到数据管理中心,进行数据分布式存储或者准备数据注册。
[0046]为了实现对来自不同数据源系统的异构数据的统一接入与管理,本发明实施例中,通过XML(可扩展标记语言)、XSL(可扩展样式表语言)转换器和postgres关系型地理空间数据库对多元异构数据进行统一定义。
其中,XML是一种可扩展标记语言,当前处理结构化文档信息的有力工具。
[0047]本发明实施例中,XML模板定义如下:
[0048]
[0050]通过定义的XML模板可对接入的数据进行分级结构化描述,结构清晰富有层次。
预先定义的XML模板中包含有若干字段及其对应的数据类型,所述数据类型包括以下至少一项:整型,浮点型,地理空间类型(点、线、面、复合图形),字符型,日期型和二进制类型。
[0051]将定义好的XML模板提供给各数据源系统,数据源系统在上传数据之前利用接收到的XML模板对上传的数据进行处理得到结构化数据。
[0052]如图2所示,其为本发明实施例提供的多源异构数据处理方法实施流程示意图,可以包括以下步骤:
[0053]S21、接收数据源系统上传的结构化数据。
[0054]其中,结构化数据为数据源系统利用预先定义的XML模板对元数据进行处理后得到的。
具体地,数据管理系统首先建立一个用于记录uuid(通用唯一识别码)的数据表,该数据表中包含两个字段,分别为uuid和该条数据对应的数据类型。
[0055]具体实施时,每一种数据类型被定义时,会针对该数据类型生成一张XML数据表,根据待上传数据的数据类型,将其填入相应类型的XML数据表中得到所述结构化数据。
[0056]S22、利用XSL文本转换器将接收到的结构化数据转换为键值对K-V类型数据。
[0057]其中,XSL文本转换器为根据所述XML模板生成的。
当XML数据表被上传到数据管理系统中后,利用XSL文本转换器将接收到的结构化数据转换为键值对K-V类型数据。
[0058]具体实施时,xsl转换器包括正向转换和反向转换,正向转换器将xml转换成K-V类型,反向转换器将K-V类型转化成xml类型,转换器的字段随xml模板的变化而变化,如图3所示,其为本发明实施例中,正向转换器和反向转换器示意图。
[0059]其中,正向转换器格式设定如下:
[0060]
[0062]反向转换器设定如下:
[0064]需要说明的是,由于在后续的搜索功能中,搜索是对整个数据体,而不单单是数据标题的搜索,也应该支持深度搜索,包括数据的其他详细信息。
有鉴于此,本发明实施例中,在K-V类型数据中,增加了一个anytext字段,该字段由需要被搜索的字段拼接而成,供后续分词入库,提供搜索依据。
[0065]S23、从K-V类型数据中抽取数据值存储至地理空间关系型数据库中。
[0066]为了便于系统识别,步骤S23中得到的K-V类型数据被提取,转换成执行插入语句的SQL语句被插入数据中。
每一条数据都有一个唯一标识,唯一标识根据文件所处的路径,由base64编码生成。
[0067]由于postgres提供当插入数据的主键存在时,插入数据将执行更新操作,这一特性使得数据的更新变得简单、智能。
[0068]具体实施时,数据被保存在数据库的不同表内,一条XML数据表单会被识别它是属于什么数据类型。
首先,它会被插入单独记录uuid和该条数据对应的数据类型的数据表中。
随后该数据的详细信息被插入对应的数据类型表单中,其中地理空间信息会被转换成WKB 形式保存在数据表中。
当该条数据拥有缩略图或快视图时,改图会被转化成二进制存储到快视图表中。
而在详细信息表单中则填写该快试图的链接信息,该链接为本软件提供的快试图查询接口,通过该链接可以返回图片信息,通过上述流程数据被存储至postgres关系型数据库中。
[0069]需要说明的是,WKT(well-known text)是一种文本标记语言,该格式由开放地理空间联盟(OGC)制定,用于表示矢量数据中的几何对象,在数据传输与数据库存储时,常用到它的二进制形式,即WKB(well-known binary)。
WKT与WKB在GIS中的重要作用在于,他们能利用文本简洁明了的表达矢量空间要素的几何信息,使得几何信息能以字段的形式存储
于数据库中。
[0070]在多源异构数据存储到地理空间关系型数据库中后,为了解决数据只能单一简单查询问题,本发明实施例中,通过SQL拼接方式,提供结构化语义检索功能,提供高效检索技术能力,支持时空查询、关联查询、空间信息全文检索等检索手段,主要包括:时空检索模块、关键字检索模块、条件检索模块、专题查询模块、用户行为记录模块,其中:时空检索模块:支持按照时间范围和空间范围进行元数据查询检索;关键字检索模块:支持按照用户提交的关键字进行查询检索;条件检索模型:支持用户输入多个查询条件,进行组合查询检索;专题检索模型:支持用户按照不同领域的典型专题,进行查询检索;用户行为记录模块:用于记录用户的查询行为。
[0071]基于此,本发明实施例提供的多源异构数据处理方法,还可以包括以下步骤:接收数据查询请求,数据查询请求中携带有查询参数;根据数据查询请求中携带的查询参数,生成结构化查询语言SQL语句;利用SQL语句在地理空间关系型数据库中进行查询得到查询结果。
[0072]本发明实施例中,根据不同的查询参数,将SQL语句划分为六大模块,当输入查询条件是更换模块相应内容,重新组合成完整的SQL查询语句。
Sql语句分为select_part、from_part、where_part、limit_part、oderby_part或oderby_parts。
本发明实施提供查询统一的一体化查询接口,该接口可选择不同的查询参数,以达到不同的查询效果。
具体地,所述查询参数包括以下至少一项:选择参数,条件参数,起始位置参数,结束位置参数和排序参数等。
[0073]以下对本发明实施例提供的查询参数进行说明。
1、resultType:该参数表示确定查询结果返回的是详细信息还是简略信息。
2、orderBy:该参数表示确定排序方式,选择降序还是升序排列。
3、sortBy:该参数表示排序依据的条件。
4、table:该参数表示查询的数据库表,如raster_metainfo。
这些是必填字段除此之外还有其他很多字段可以任选:1、from:该参数表示确定返回条目的起始位置。
2、to:该参数表示确定返回条目的结束为止。
3、polygon:该参数用于地理范围的查询检索,可以是空间相交查询,也可以是空间包含查询。
4、其他数据字段。
在该字段中,若在字段末尾加上from和to字符,则会查询该字段处于该范围内的结果。
如creationTimeFrom和creationTimeTo可以查询数据创建时间在这个时间段的数据条目。
若不加from和to字段,则会精确匹配该内容。
5、anytext:该字段用于模糊匹配,会返回与之相关的所有信息。
6、isrecord:该字段用于判断这条数据是否需要被记录。
[0074]具体实施时,可以按照以下流程拼接SQL语句,将数据查询请求中携带的查询参数转换为K-V键值对;针对每一查询参数,根据该查询参数的值,生成SQL子语句;将每一查询参数对应的SQL子语句拼接成SQL语句。
[0075]具体地,可以按照以下流程实施:
[0076]1、将查询参数转换成键值对,然后初始化查询参数。
在该过程中确定所要查询的表、排序方式、排序字段、返回值的详细与否、起始和终止条目、数据查询的形式,统计还是其他,geoType确定空间查询的形式。
[0077]2、根据返回详细还是简略,确定查询内容,生产select_part。
在每个字段间用逗号隔开,对于空间位置的查询,将地理空间信息转化S T_A s G e o J s o n (geographicBoundingBox,7)as geographicBoundingBox。
[0078]3、生产where_part,该部分是一体化查询中核心的sql部分,首先判断参数中是否
包含from、to和not,若有分别转化成>=,<=和><。
否则则转化成=。
多个字段之间用and拼接,针对数值型、字符型、地理空间型、日期型做不同的处理。
形成where_part。
[0079]4、生产limit_part,该部分有请求参数from和to决定,确定返回多少条数据。
[0080]5、生产order_part或order_parts当有不止一个排序条件时使用order_parts。
最终生产的sql模块,通过拼接形成完整的sql语句。
[0081]如图4所示,其为SQL语句拼接过程示意图,利用拼接得到的完整的sql语句,在地理空间关系型数据库中查询获得查询结构,将结果重新排版,例如,根据查询参数对查询结果进行排序,或者将查询结果中表示图像的二进制数据还原为图片等,以的格式返回查询结果,实现一体化结构检索。
[0082]本发明实施例在应用层提供多种服务接口,主要包括:元数据模板自定义接口、栅格矢量数据注册入库接口、多源数据批量入库接口、元数据查询管理接口等,其中:[0083]元数据模板自定义接口可以根据实际情况定义自己所需的数据类型。
该接口参数包括:1、想要定义的数据的模板名称,该模板名称不能重复。
2、自定义数据的各字段名称,及字段对应的数据类型。
3、定义的数据字段中一定包含唯一标识字段,以防数据重复冗余。
[0084]调用该元数据模板自定义接口后,首先将生成对应的XML和XSL文件,为后续将数据库的内容转化成xml做准备。
参数传输入后生成对应的数据库表。
如果中间出现故障,将会回滚到最初的状态。
元数据模板自定义完成后,便可根据自己定义数据模式,上传自己的数据。
[0085]栅格矢量数据注册入库接口,由于本发明实施例是针对地面信息港的,数据来源以栅格数据和矢量数据为主。
该接口提供数量栅格数据自动化注册和信息提取。
本发明实施例中使用了栅矢元数据提取机,通过调动该软件,可以对栅格和矢量数据进行元数据提取。
提取内容包括数据的地理空间范围、数据的真实分辨率,构建栅格数据金字塔、矢量数据各图层,坐标系信息等众多信息,一般常规的遥感图像抽取在三秒钟之内。
[0086]多源数据批量入库接口。
将文件上传到FTP站点之后,数据所在的位置实际路径需要加上F T P站点的相对值位置信息。
该接口一定要填的两个参数f i l e P a t h和organisationName分别代表文件路径和单位名称,同样的单位名称会被汇入相应的个人空间。
[0087]多源数据批量入库策略:参数中filePath代表所要注册入库的数据路径。
如果该文件目录下没有遥感或者矢量数据文件,它会把该文件目录下的所有xml文件都找到,抽取里面的信息并上传,抽取的数据类型需要是系统中已存在的数据类型,如果不存在可通过元数据模板自定义接口先注册定义自己的数据类型,有相关联的其他类型文件需要与描述其的xml文件的文件名一样。
如果存在矢量及栅格文件会直接将矢量和栅格数据信息自动提取出来,并填充到与其文件名相同的xml文件中。
如果没有xml文件,则我们会使用空白模板。
其他xml提取信息上传。
对于批量数据的统一信息可以加入相关字段参数,以丰富信息。
[0088]元数据查询管理接口。
元数据一体化信息查询接口针对海量多源时空元数据,提供高效检索技术能力,支持时空查询、关联查询、空间信息全文检索等检索手段,主要包括:时空检索模块、关键字检索模块、条件检索模块、专题查询模块、用户行为记录。
[0089]元数据管理提供由多个子接口组成。
可以对元数据信息进行单一操作。
包括元数据信息的上传、修改、删除。