本发明涉及高性能计算机资源管理,特别是涉及一种面向超算平台进行多源异构数据采集、存储与读取的方法及系统。
背景技术:
1、在超算平台的数据传输与管理过程中,由于不同应用场景的需要以及平台建设时间跨度长的历史原因,不同的超算平台往往具备不同的物理配置和软件版本,同时各平台还制定了个性化的数据采集策略,并使用不同的数据结构对平台数据进行存储。但是,当需要同时使用多个超算平台的数据时,不同超算平台间的数据差异性给数据的传输和管理带来了巨大的困难。目前,针对超算平台多源异构数据存在的数据差异性问题,形成了两种比较成熟的方案:一是多个平台独立完成数据采集工作后再对异构数据进行数据同步,最后对同步后的数据进行取用;二是直接对平台的多源异构数据进行融合,将多源异构数据以单一用户的形式转化为宽表存储在大数据平台上,最后依据实际应用场景对数据进行取用。但是,现有技术仍存在如下缺点:
2、(1)采用数据同步的方案:在管理超算平台多源异构数据的应用背景下,由于每个超算平台自身的数据量已经十分巨大,若采用数据同步的方案,多个平台完成多次数据同步后,将会成倍扩大多个平台数据库存储空间的占有率。
3、(2)采用数据同步的方案:以构建任务的形式进行数据同步并使用任务调度线程池进行任务管理,同步类型又分为全量同步和批量同步,程序运行复杂,学习成本高昂。
4、(3)采用数据直接融合的方案:将多源异构数据以单一用户的形式转化为宽表进行存储,不仅增加了单个存储空间的存储占有率,面临不同的数据应用场景时还需再次进行数据抽取,操作了大量冗余数据,增加了操作流程,数据库存储空间和缓存空间的存储压力较大。
技术实现思路
1、针对上述方案的缺点,本发明提供了一种面向超算平台进行多源异构数据采集、存储与读取的方法及系统,其主要目的是解决超算平台在数据传输与管理过程中由于数据差异性导致的数据库存储空间和缓存空间存储压力大、系统学习成本高的问题。
2、本发明公开了一种面向超算平台进行多源异构数据采集、存储与读取的方法,其包括:
3、将超算平台所有运维流程的接口封装为统一的api接口,通过统一的api接口对具备不同物理配置和slurm软件版本的各超算平台大量的多源异构的作业运行时长数据、节点资源利用率、作业运行日志等数据进行统一采集,并按照不同的应用场景将采集的数据进行分布式存储,在不同的应用场景下,根据用户需求读取存储空间中的数据,当用户读取多源异构的超算平台数据时,调用预制查询语句库构建出针对不同数据源的查询语句,对分布式存储的多源异构数据进行查询后依据优先级对读取的多源异构数据进行整合,当查询预加载数据时,每执行完成一次查询与数据整合后,根据当前轮次数据查询与整合所用时间动态调整后续执行各查询语句与数据整合的优先级顺序。
4、进一步地,当用户查询的数据为非预加载数据时,将不对查询语句进行动态排序,而是按照原有的顺序执行查询语句并整合数据;若查询数据时,只查询其中一个超算平台中的一项数据,则无需进行整合。
5、进一步地,根据超算平台的多种物理配置和slurm软件版本的差异性,梳理超算平台已有的多种数据采集策略,用户可直接或间接通过数据存储与访问层封装的统一接口连接相应的超算平台,选择相应的数据采集策略后采集超算平台元数据;
6、在不同的应用场景下,数据处理层根据用户在应用端的操作,从相应的数据存储空间读取相关数据进行相关处理;也可直接向统一封装的api接口发送采集数据的请求;其中,相关处理包括数据分析、数据可视化、资源整合和数据访问。
7、进一步地,数据处理层使用多层级工作流对查询请求信息进行处理,其包括请求识别层对查询请求信息进行识别,通过验证请求信息的格式及内容过滤无效信息并将过滤后的查询请求信息发送至请求解析层;请求解析层将查询请求信息转化为请求体,并依据查询对象构建查询语句;认证与拦截处理层则对请求信息及查询语句进行认证,请求执行层依据通过认证的请求信息连接存储空间,执行通过认证的查询语句读取所需超算数据并对其进行数据整合后,返回请求执行结果。
8、进一步地,所述构建查询语句包括:
9、依据使用场景提前预制查询语句库,依据请求体中的相关信息结合相应的预制查询语句库生成查询语句;其中,相关信息包括存储空间、查询类型、查询字段。
10、进一步地,所述认证与拦截处理层则对请求信息及查询语句进行认证,包括:
11、认证与拦截处理层对请求信息中的关键信息以及查询语句的规范性进行认证,若通过认证,则将请求信息及查询语句发送至请求执行层,否则查询指令被拦截;其中,关键信息包括请求发起人、执行节点以及连接的数据库类型;查询语句的规范性通过集成检查工具进行检查。
12、进一步地,对于需要实施预加载机制的超算数据,按照优先级动态查询预加载数据并进行整合,即:
13、解析用户请求,根据各因素的权重与评分集合计算各用户请求信息的加权得分;将各用户请求的加权得分从高到低进行排序,得到各预加载数据的获取顺序;再依据优先级顺序调用多层级工作流处理查询请求,读取所需超算数据;最后将读取出的数据转化为标准数据与基准数据进行数据整合;
14、对当前轮次执行数据查询与数据整合所用时间进行记录,用于调整后续执行各个请求的优先级顺序,实现优先级队列的动态排序;整合后的预加载数据将进行缓存,便于用户随时调用,直至所有预加载数据均已获取为止。
15、进一步地,若当前轮次执行数据查询或数据整合超过或未到达预先设置的时间阈值,则对后续优先级队列中与当前轮次具备相同因素的用户请求在相应因素的评分上进行减分或加分处理。
16、进一步地,依据不同的应用场景建立不同的应用端,用户在不同的应用端下达操作指令,获取数据处理层返回的结果。
17、本发明还公开了一种面向超算平台进行多源异构数据采集、存储与读取的系统,实现上述任一项所述的一种面向超算平台进行多源异构数据采集、存储与读取的方法,其包括数据源、数据存储与访问层、数据处理层和应用层;数据源包括多个超算平台;数据存储与访问层用于将超算平台所有运维流程的接口封装为统一的api接口,通过统一的api接口对数据源中具备不同物理配置和slurm软件版本的各超算平台的多源异构数据进行统一采集,并按照不同的应用场景将采集的数据进行分布式存储;数据处理层用于在不同的应用场景下,根据用户需求读取存储空间中的数据,当用户读取多源异构的超算平台数据时,调用预制查询语句库构建出针对不同数据源的查询语句,对分布式存储的多源异构数据进行查询后依据优先级对读取的多源异构数据进行整合,当查询预加载数据时,每执行完成一次查询与数据整合后,根据当前轮次数据查询与整合所用时间动态调整后续执行各查询语句与数据整合的优先级顺序;应用层包括多个应用端,分别供用户获取从数据处理层返回的所需结果。
18、由于采用了上述技术方案,本发明具有如下的优点:
19、1.本发明使用统一封装的api接口对数据进行采集,并按照不同的应用场景将采集的数据进行分布式存储,无需通过建立同步任务以及进行任务调度工作适配超算平台数据多源异构的特性,操作流程简易,易于学习和维护。
20、2.本发明使用统一封装的api接口对数据进行采集,能够在具备不同物理配置和slurm软件版本的各超算平台上采集大量多源异构的超算数据。
21、3.本发明对超算平台的多源异构数据进行统筹管理、按需取用,减少了数据冗余,避免了采用数据同步的方式管理超算平台将会引起各超算平台占用存储空间多倍增加的问题。
22、4.本发明将采集后的数据进行分布式存储,避免了使用宽表存储数据造成数据库和缓存空间存储压力增大的问题,同时也方便根据不同的应用场景对数据进行读取。
23、5.本发明预制了查询语句库,可依据用户需求快速构建查询语句,提高了多源异构数据的查询效率,同时对构建完成的查询语句进行规范性检查,提高了查询语句的有效性。
24、6.本发明引入了数据预加载的机制,并能够动态调整获取预加载数据时执行查询语句与数据整合的优先级顺序,提高了数据加载的效率,提升了用户体验感。
1.一种面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,包括:
2.根据权利要求1所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,当用户查询的数据为非预加载数据时,将不对查询语句进行动态排序,而是按照原有的顺序执行查询语句并整合数据;若查询数据时,只查询其中一个超算平台中的一项数据,则无需进行整合。
3.根据权利要求1所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,根据超算平台的多种物理配置和slurm软件版本的差异性,梳理超算平台已有的多种数据采集策略,用户可直接或间接通过数据存储与访问层封装的统一接口连接相应的超算平台,选择相应的数据采集策略后采集超算平台元数据;
4.根据权利要求1所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,数据处理层使用多层级工作流对查询请求信息进行处理,其包括请求识别层对查询请求信息进行识别,通过验证请求信息的格式及内容过滤无效信息并将过滤后的查询请求信息发送至请求解析层;请求解析层将查询请求信息转化为请求体,并依据查询对象构建查询语句;认证与拦截处理层则对请求信息及查询语句进行认证,请求执行层依据通过认证的请求信息连接存储空间,执行通过认证的查询语句读取所需超算数据并对其进行数据整合后,返回请求执行结果。
5.根据权利要求4所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,所述构建查询语句包括:
6.根据权利要求4所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,所述认证与拦截处理层则对请求信息及查询语句进行认证,包括:
7.根据权利要求4所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,对于需要实施预加载机制的超算数据,按照优先级动态查询预加载数据并进行整合,即:
8.根据权利要求7所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,若当前轮次执行数据查询或数据整合超过或未到达预先设置的时间阈值,则对后续优先级队列中与当前轮次具备相同因素的用户请求在相应因素的评分上进行减分或加分处理。
9.根据权利要求1所述的面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,依据不同的应用场景建立不同的应用端,用户在不同的应用端下达操作指令,获取数据处理层返回的结果。
10.一种面向超算平台进行多源异构数据采集、存储与读取的系统,实现权利要求1-9任一项所述的一种面向超算平台进行多源异构数据采集、存储与读取的方法,其特征在于,包括数据源、数据存储与访问层、数据处理层和应用层;数据源包括多个超算平台;数据存储与访问层用于将超算平台所有运维流程的接口封装为统一的api接口,通过统一的api接口对数据源中具备不同物理配置和slurm软件版本的各超算平台的多源异构数据进行统一采集,并按照不同的应用场景将采集的数据进行分布式存储;数据处理层用于在不同的应用场景下,根据用户需求读取存储空间中的数据,当用户读取多源异构的超算平台数据时,调用预制查询语句库构建出针对不同数据源的查询语句,对分布式存储的多源异构数据进行查询后依据优先级对读取的多源异构数据进行整合,当查询预加载数据时,每执行完成一次查询与数据整合后,根据当前轮次数据查询与整合所用时间动态调整后续执行各查询语句与数据整合的优先级顺序;应用层包括多个应用端,分别供用户获取从数据处理层返回的所需结果。