基于混合数据库架构的全球Argo数据存储与更新方法
【专利摘要】本发明公开了一种基于混合数据库架构的全球Argo数据存储与更新方法,步骤如下:1)数据监听器监听指定目录,则将新的Argo数据文件转发到数据服务器;2)数据分类器将汇总在数据服务器上的Argo数据文件按照文件格式分为三个类别;3)数据控制器检查数据库中是否存在当前数据,并检查数据文件内容是否完整;4)数据提取器从数据文件中提取相关的元数据和数据块;5)数据入库模块将非结构化的数据块上传到HDFS分布式存储系统;6)数据归档模块将入库完成的数据进行归档,形成日志文件。本发明基于混合数据库架构,将全球Argo数据中不同类型的数据文件统一到同一个数据库平台中进行存储与更新,为全球Argo数据提供了高效的、可灵活扩展的存储与更新解决方案。
【专利说明】
基于混合数据库架构的全球Argo数据存储与更新方法
技术领域
[0001]本发明涉及数据存储与更新技术领域,尤其涉及一种基于混合数据库架构的全球Argo数据存储与更新方法。
【背景技术】
[0002]全球Argo计划是由美国、法国和日本等国的大气、海洋科学家于1998年推出的全球性海洋观测计划,旨在快速、准确、大范围地收集全球海洋上层的海水温、盐度剖面资料,以提高气候预报的精度,有效防御全球日益严重的气候灾害(如飓风、龙卷风、台风、冰暴、洪水和干旱等)给人类造成的威胁。十五年以来,各国在全球海洋布放的Argo浮标数量超过12,000个,已累计获得了约150万条温、盐度剖面,形成了庞大的全球Argo数据海洋。
[0003]随着全球Argo数据量的不断递增,且由于Argo数据存在多源异构、动态多维以及海量等特性,全球Arg0数据的高效存储与更新一直都是一个挑战性的难题。目前Argo数据以文件存储作为主要存储形式,对未经加工的原始数据的提取和分类工作难以进行,也不利于进一步的数据挖掘,无法匹配当前日益增长的Argo数据海洋。长期积累下来的各类Argo资料被存放在相互孤立的不同地点,无法进行有效的协同工作,数据的更新也无法做到快速的时效性。因此,将不同类型的全球Argo数据统一到同一个数据库平台中进行存储与更新,成为科研业务的迫切需求。
【发明内容】
[0004]本发明的目的是为克服现有技术存在的问题,提供一种基于混合数据库架构的全球Argo数据存储与更新方法。
[0005]基于混合数据库架构的全球Argo数据存储与更新方法,它的步骤如下:
[0006]I)数据监听器在远程数据主机上监听指定目录,一旦有新的Argo数据文件生成,则将数据文件转发到数据服务器;
[0007]2)数据分类器将汇总在数据服务器上的Argo数据文件按照文件格式分为全球Argo浮标元数据、全球Argo浮标观测剖面数据和全球Argo网格化数据产品三个类别;
[0008]3)数据控制器检查数据库中是否存在当前数据,并检查数据文件内容是否完整;
[0009]4)数据提取器从数据文件中提取相关的元数据和数据块;
[0010]5)数据入库模块将非结构化的数据块上传到HDFS分布式存储系统,将结构化的元数据记录到PostgreSQL关系型数据库中,并建立数据块与元数据之间的索引;
[0011 ] 6)数据归档模块将入库完成的数据进行归档,形成日志文件。
[0012]所述的步骤I)具体为:数据监听器是一个常驻在数据服务器上的模块,它会周期性地启动线程,用于连接全球Argo数据相关的各个远程数据主机,并通过日志文档判断指定目录上是否有新的Argo数据生成,一旦有新文件生成,则将该数据文件转发到数据服务器上,并记录在日志文档中。
[0013]所述的步骤2)具体为:数据分类器对汇总在数据服务器上的Argo数据文件进行分类,DAT文件格式为全球Argo浮标元数据,NetCDF文件格式的为全球Argo浮标观测剖面数据,PNG文件格式的为全球Argo网格化数据产品,由此将这三类文件划分到各自的数据中心。
[0014]所述的步骤3)具体为:数据控制器根据文件名称从PostgreSQL关系型数据库中查询是否存在该数据文件,并根据文件大小判断该数据文件是否完整,若符合数据库中不存在该数据文件且数据文件完整,则可确定为新的数据文件,可以入库。
[0015]所述的步骤4)具体为:数据提取器从全球Argo浮标元数据文件、全球Argo浮标观测剖面数据文件和全球Argo网格化数据产品中分别提取对应的元数据,同时从全球Argo浮标观测剖面数据文件提取块数据并转换为JSON格式文件。
[0016]所述的步骤5)具体包括如下子步骤:
[0017]5.1)数据入库模块将步骤4)中提取出来的结构化的元数据记录到PostgreSQL关系型数据库中,主要存储在浮标元数据表、浮标观测剖面数据信息表和浮标网格化数据产品信息表这三类表,其中浮标元数据表用于存储所有Argo浮标的元数据信息,即每个Argo浮标的技术参数,包括WMO编号、平台号、传输系统、信号传输重复率、定位系统、制造商、剖面采样方向、传感器信息以及循环信息等;浮标观测剖面数据信息表用于存储所有观测剖面相关信息,为提高查询效率,该表按年份分多表存储,主要包括浮标ID、WMO编号、剖面循环数、剖面观测方向、日期以及经玮度等;浮标网格化数据产品信息表用于存储所有网格化数据产品相关信息,主要包括产品类别、产品日期、产品范围等;
[0018]5.2)数据入库模块将非结构化的JSON和PNG文件数据块上传到HDFS分布式存储系统,并在多个物理节点上完成存储和冗余备份,其数据块访问路径存放在集群的主节点上;
[0019]5.3)数据入库模块同时将数据块访问路径与对其对应的元数据信息统一存储在PostgreSQL关系型数据库中,以此建立数据块与元数据之间的索引,实现全球Argo数据在HDFS分布式存储系统和PostgreSQL关系型数据库的混合存储。
[0020]所述的步骤6)具体为:数据归档模块将入库完成的数据进行归档,以日为单位,按照全球Argo数据的三个类别分别形成日志文件。
[0021]本发明与现有技术相比具有的有益效果是:
[0022]I)本发明克服了目前文件存储方式和单一关系型数据库无法协同存储和有效更新的不足,将全球Argo数据中不同类型的数据文件统一到同一个数据库平台中进行存储与更新,为全球Argo数据提供了一种高效的、可灵活扩展的存储与更新解决方案。
[0023]2)本发明利用HDFS存储全球Argo数据中的非结构化数据,将每个数据块复制到集群中的多个节点上,提高了数据的容错性,并可以动态添加或移除节点,保证了数据的可扩展性,为全球Argo数据的高效访问及快速更新提供了基础保障。
【附图说明】
[0024]图1为基于混合数据库架构的全球Argo数据存储与更新方法的流程图;
[0025]图2为混合数据库架构图。
【具体实施方式】
[0026]下面结合附图对本发明做进一步阐述和说明。本发明中各个实施方式的技术特征在没有相互冲突的前提下,均可进行相应组合。
[0027]如图1所示,一种基于混合数据库架构的全球Argo数据存储与更新方法,它的步骤如下:
[0028]I)数据监听器在远程数据主机上监听指定目录,一旦有新的Argo数据文件生成,则将数据文件转发到数据服务器。具体为:
[0029]数据监听器是一个常驻在数据服务器上的模块,它会周期性地启动线程,用于连接全球Argo数据相关的各个远程数据主机,并通过日志文档判断指定目录上是否有新的Argo数据生成,一旦有新文件生成,则将该数据文件转发到数据服务器上,并记录在日志文档中。
[0030]2)数据分类器将汇总在数据服务器上的Argo数据文件按照文件格式分为全球Argo浮标元数据、全球Argo浮标观测剖面数据和全球Argo网格化数据产品三个类别。具体为:
[0031]数据分类器对汇总在数据服务器上的Argo数据文件进行分类,DAT文件格式为全球Argo浮标元数据,Net⑶F文件格式的为全球Argo浮标观测剖面数据,PNG文件格式的为全球Argo网格化数据产品,由此将这三类文件划分到各自的数据中心。
[0032]3)数据控制器检查数据库中是否存在当前数据,并检查数据文件内容是否完整。具体为:
[0033]数据控制器根据文件名称从PostgreSQL关系型数据库中查询是否存在该数据文件,并根据文件大小判断该数据文件是否完整,若符合数据库中不存在该数据文件且数据文件完整,则可确定为新的数据文件,可以入库;否则不可入库。一般可预设一个对比值,用于判断数据文件是否完整。对比值可根据目前国际Argo文件的标准进行确定,正常的剖面文件大小都为38KB。
[0034]4)数据提取器从数据文件中提取相关的元数据和数据块。具体为:
[0035]数据提取器从全球Argo浮标元数据文件、全球Argo浮标观测剖面数据文件和全球Argo网格化数据产品中分别提取对应的元数据,同时从全球Argo浮标观测剖面数据文件提取块数据并转换为JSON格式文件。
[0036]5)数据入库模块将非结构化的数据块上传到HDFS分布式存储系统,将结构化的元数据记录到PostgreSQL关系型数据库中,并建立数据块与元数据之间的索引。具体为:
[0037]5.1)数据入库模块将步骤4)中提取出来的结构化的元数据记录到PostgreSQL关系型数据库中,主要存储在浮标元数据表、浮标观测剖面数据信息表和浮标网格化数据产品信息表这三类表,其中浮标元数据表用于存储所有Argo浮标的元数据信息,即每个Argo浮标的技术参数,包括WMO编号、平台号、传输系统、信号传输重复率、定位系统、制造商、剖面采样方向、传感器信息以及循环信息等;浮标观测剖面数据信息表用于存储所有观测剖面相关信息,为提高查询效率,该表按年份分多表存储,主要包括浮标ID、WMO编号、剖面循环数、剖面观测方向、日期以及经玮度等;浮标网格化数据产品信息表用于存储所有网格化数据产品相关信息,主要包括产品类别、产品日期、产品范围等;
[0038]5.2)数据入库模块将非结构化的JSON和PNG文件数据块(即前述“JS0N格式文件”和“PNG文件格式的为全球Argo网格化数据产品”)上传到HDFS分布式存储系统,并在多个物理节点上完成存储和冗余备份,其数据块访问路径存放在集群的主节点上;
[0039]5.3)数据入库模块同时将数据块访问路径与对其对应的元数据信息统一存储在PostgreSQL关系型数据库中,以此建立数据块与元数据之间的索引,实现全球Argo数据在HDFS分布式存储系统和PostgreSQL关系型数据库的混合存储。
[0040]6)数据归档模块将入库完成的数据进行归档,以日为单位,按照全球Argo数据的三个类别分别形成日志文件。
[0041]下面以实施例对本发明做进一步阐述,实施例的操作步骤与上述方法一致,因此简洁起见,部分步骤未具体说明。
[0042]实施例
[0043]I)数据监听器在远程数据主机上(ftp://ftp.arg0.0rg.cn/pub/ARGO)监听指定目录,一旦有新的Argo数据文件生成,比如说监听到新的数据文件1900726_285.nc,则将该数据文件转发到数据服务器;
[0044]2)数据分类器将汇总在数据服务器上的Argo数据文件1900726_285.nc按照文件格式判断为全球Argo浮标观测剖面数据,将此文件转移到对应的数据中心;
[0045]3)数据控制器检查PostgreSQL关系型数据库是否存在当前数据,若不存在,则可确定为新数据文件,并根据文件大小判断此数据文件内容是否完整,若该文件大小为38KB,则确定该文件内容完整;
[0046]4)数据提取器从1900726_285.nc数据文件中提取相关的元数据和数据块,元数据内容包括了WMO编号为1900726、平台号为39506、传输系统为ARG0S、定位系统为ARG0S、制造商为Webb、循环周期为285、经玮度信息为南玮25.761°西经115.159°等相关信息;数据块内容则为提取的具体观测剖面信息,并转换为JSON格式文件1900726_285.json;
[0047]5)数据入库模块将非结构化的1900726_285.json文件作为数据块上传到HDFS分布式存储系统,保存在各个数据节点中,将结构化的元数据记录到PostgreSQL关系型数据库中的浮标观测剖面数据信息表,同时将数据块访问路径与对其对应的元数据信息统一存储在PostgreSQL关系型数据库中,以此建立数据块与元数据之间的索引,具体如图2所示;
[0048]6)数据归档模块将入库完成的数据进行归档,形成日志文件。
[0049]以上所述的实施方式只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
【主权项】
1.一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于它的步骤如下: 1)数据监听器在远程数据主机上监听指定目录,一旦有新的Argo数据文件生成,则将数据文件转发到数据服务器; 2)数据分类器将汇总在数据服务器上的Argo数据文件按照文件格式分为全球Argo浮标元数据、全球Argo浮标观测剖面数据和全球Argo网格化数据产品三个类别; 3)数据控制器检查数据库中是否存在当前数据,并检查数据文件内容是否完整; 4)数据提取器从数据文件中提取相关的元数据和数据块; 5)数据入库模块将非结构化的数据块上传到HDFS分布式存储系统,将结构化的元数据记录到PostgreSQL关系型数据库中,并建立数据块与元数据之间的索引; 6)数据归档模块将入库完成的数据进行归档,形成日志文件。2.根据权利要求1所述的一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于所述的步骤I)为:数据监听器是一个常驻在数据服务器上的模块,它会周期性地启动线程,用于连接全球Argo数据相关的各个远程数据主机,并通过日志文档判断指定目录上是否有新的Argo数据生成,一旦有新文件生成,则将该数据文件转发到数据服务器上,并记录在日志文档中。3.根据权利要求1所述的一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于所述的步骤2)为:数据分类器对汇总在数据服务器上的Argo数据文件进行分类,DAT文件格式为全球Argo浮标元数据,NetCDF文件格式的为全球Argo浮标观测剖面数据,PNG文件格式的为全球Argo网格化数据产品,由此将这三类文件划分到各自的数据中心。4.根据权利要求1所述的一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于所述的步骤3)为:数据控制器根据文件名称从PostgreSQL关系型数据库中查询是否存在该数据文件,并根据文件大小判断该数据文件是否完整,若符合数据库中不存在该数据文件且数据文件完整,则可确定为新的数据文件,可以入库。5.根据权利要求1所述的一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于所述的步骤4)为:数据提取器从全球Argo浮标元数据文件、全球Argo浮标观测剖面数据文件和全球Argo网格化数据产品中分别提取对应的元数据,同时从全球Argo浮标观测剖面数据文件提取块数据并转换为JSON格式文件。6.根据权利要求1所述的一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于所述的步骤5)为: 5.1)数据入库模块将步骤4)中提取出来的结构化的元数据记录到PostgreSQL关系型数据库中,主要存储在浮标元数据表、浮标观测剖面数据信息表和浮标网格化数据产品信息表这三类表,其中浮标元数据表用于存储所有Argo浮标的元数据信息,即每个Argo浮标的技术参数,包括WMO编号、平台号、传输系统、信号传输重复率、定位系统、制造商、剖面采样方向、传感器信息以及循环信息;浮标观测剖面数据信息表用于存储所有观测剖面相关信息,为提高查询效率,该表按年份分多表存储,包括浮标ID、WMO编号、剖面循环数、剖面观测方向、日期以及经玮度;浮标网格化数据产品信息表用于存储所有网格化数据产品相关信息,包括产品类别、产品日期、产品范围; 5.2)数据入库模块将非结构化的JSON和PNG文件数据块上传到HDFS分布式存储系统,并在多个物理节点上完成存储和冗余备份,其数据块访问路径存放在集群的主节点上; 5.3)数据入库模块同时将数据块访问路径与对其对应的元数据信息统一存储在PostgreSQL关系型数据库中,以此建立数据块与元数据之间的索引,实现全球Argo数据在HDFS分布式存储系统和PostgreSQL关系型数据库的混合存储。7.根据权利要求1所述的一种基于混合数据库架构的全球Argo数据存储与更新方法,其特征在于所述的步骤6)为:数据归档模块将入库完成的数据进行归档,以日为单位,按照全球Argo数据的三个类别分别形成日志文件。
【文档编号】G06F17/30GK105930381SQ201610230748
【公开日】2016年9月7日
【申请日】2016年4月13日
【发明人】曹敏杰, 许建平, 刘增宏, 孙朝辉, 吴晓芬, 卢少磊
【申请人】国家海洋局第二海洋研究所