通用模块化的分布式数据分析和采集方法及系统与流程

文档序号:33541237发布日期:2023-03-22 09:14阅读:46来源:国知局
1.本发明涉及网络
技术领域
:,具体地,涉及通用模块化的分布式数据分析和采集方法及系统。
背景技术
::2.目前比较常用的做法是使用多个系统,比如spark/flink+kafka/pulsar+hdfs/clickhouse/elasticsearch+etch/zookeeper来构建数据分析应用,并且还需要写程序调用这些组件进行特定业务的开发。3.专利文献cn1713592a(申请号:200410062993.1)公开了一种通用开放的网络设备数据采集方法和系统,把采集到的数据进行持久化保存,以方便用户进行查询或其它方式(如拓扑图、面板)的界面显示,提高网络管理系统或其它应用软件的通用性,便于进行设备数据采集应用软件的模块化和通用化,节省开发人力和成本;而在数据持久化保存时,记录中增加了起始时间,采集数据后都与往次数据进行比较,只有数据变化时才进行变化数据和起始时间的保存,节省了存储空间;本系统在采集到变化的数据后能够通知需要进行数据加工处理的模块;由于本发明把数据采集和加工进行了分离,使数据采集模块可以单独运行,并可以同时多处部署,支持分布式采集方式,增大了网络管理的容量。4.本发明支持把这些组件的能力打包到一个程序中,提供通用接口和管理,并且可以通过组合不同模块实现不同功能或进行定制开发,支持使用多种语言进行开发。技术实现要素:5.针对现有技术中的缺陷,本发明的目的是提供一种通用模块化的分布式数据分析和采集方法及系统。6.根据本发明提供的一种通用模块化的分布式数据分析和采集方法,包括:使用库接口组合不同模块构建包括数据分析系统、消息系统或数据采集系统;7.所述库接口是不同的语言使用语言封装实现或调用rust实现。8.优选地,使用库接口组合不同模块通过cargo的feature机制和入口文件进行定制化打包构建包括数据分析系统、消息系统或数据采集系统。9.优选地,所述不同模块包括:服务接口模块、用户管理模块、分布式管理模块、元数据存储模块、tableapi模块、mqapi模块、mlapi模块、计算引擎模块以及存储引擎模块;10.所述服务接口模块包括外部数据接口和内部通信接口;11.所述用户管理模块用于管理用户和权限信息;12.所述分布式管理模块用于管理复制集群和节点状态;13.所述元数据存储模块支持内置的存储后端以及外置存储;14.所述tableapi模块是对计算引擎和存储引擎的封装,提供对结构化和半结构化数据的读写和管理;15.所述mqapi模块是对消息订阅和分布功能的封装;16.所述mlapi模块是对机器学习模块和算法的封装;17.所述计算引擎模块负责计算步骤的执行;18.所述存储引擎模块负责数据的读写。19.优选地,所述外部数据接口支持定义传输协议和查询接口;20.所述内部通信接口为内部的分布式计算和集群管理提供服务。21.优选地,所述元数据存储模块是使用kv存储的方式进行元数据存储。22.优选地,基于客户端模块调用服务接口模块实现交互式访问。23.根据本发明提供的一种通用模块化的分布式数据分析和采集系统,包括:使用库接口组合不同模块构建包括数据分析系统、消息系统或数据采集系统;24.所述库接口是不同的语言使用语言封装实现或调用rust实现。25.优选地,使用库接口组合不同模块通过cargo的feature机制和入口文件进行定制化打包构建包括数据分析系统、消息系统或数据采集系统。26.优选地,所述不同模块包括:服务接口模块、用户管理模块、分布式管理模块、元数据存储模块、tableapi模块、mqapi模块、mlapi模块、计算引擎模块以及存储引擎模块;27.所述服务接口模块包括外部数据接口和内部通信接口;28.所述用户管理模块用于管理用户和权限信息;29.所述分布式管理模块用于管理复制集群和节点状态;30.所述元数据存储模块支持内置的存储后端以及外置存储;31.所述tableapi模块是对计算引擎和存储引擎的封装,提供对结构化和半结构化数据的读写和管理;32.所述mqapi模块是对消息订阅和分布功能的封装;33.所述mlapi模块是对机器学习模块和算法的封装;34.所述计算引擎模块负责计算步骤的执行;35.所述存储引擎模块负责数据的读写。36.优选地,基于客户端模块调用服务接口模块实现交互式访问。37.与现有技术相比,本发明具有如下的有益效果:38.1、本发明通过使用rust开发核心功能模块和定制化打包方式,解决了跨语言、跨平台和组合不同模块化构建数据分析应用的问题;39.2、本发明通过统一的元数据和集群管理模块以及资源管理模块,一体化程序构建,解决了多组件部署和维护困难,资源浪费的问题。40.3、本发明可以实现一个单程序的集分布式计算、分布式数据存储、消息队列系统、数据管理功能的通用数据分析平台应用,不需要额外部署kafka、flink等组件,可以基于统一的lib库开发etl脚本、数据采集程序接入到数据平台中;41.4、本发明可以定制化开发专用的数据处理程序,或对接kafka、clickhouse等外部存储或消息队列系统。附图说明42.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:43.图1为通用模块化的分布式数据分析和采集系统示意图。44.图2为通用模块化的分布式数据分析和采集系统示意图。具体实施方式45.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。46.实施例147.本发明提供了一种通用模块化的分布式数据分析和采集方法,如图1至2所示,包括:使用模块化的方式搭建跨语言、跨平台的数据采集器、数据分析平台、数据分析脚本、消息队列等应用。本发明使用一套系统同时支持数据提取存储和计算分析,不需要部署消息队列系统、分布式存储系统、olap系统等多套系统。48.具体地,使用库接口组合不同模块通过cargo的feature机制和入口文件进行定制化打包构建包括数据分析系统、消息系统或数据采集系统;49.所述库接口是go和python等语言都可以使用语言封装调用rust实现,通过使用rust实现包括通用分布式计算、分布式数据存储引擎以及元数据管理功能。50.所述库接口使用rust编写,支持以库级别暴露接口。为不同的语言实现库的绑定,比如pyhon使用pyo3进行封装,wasm使用wasm-bindgen进行封装;使用pyo3实现python的绑定,支持通过python定制udf、算子、存储引擎、数据实体(view、表)等功能。使用wasm-pack实现js的绑定,支持打包到wasm在web中使用。51.所述不同模块包括:服务接口模块、用户管理模块、分布式管理模块、元数据存储模块、tableapi模块、mqapi模块、mlapi模块、计算引擎模块以及存储引擎模块;52.所述服务接口模块包括:数据接口(外部)和内部通信接口53.所述数据接口支持定义传输协议和查询接口;54.所述数据接口还可以单独配置一个数据接口作为管理接口,或者使用快速数据传输协议和只支持mqapi的查询语言定义一个只为消息队列服务的接口;55.所述内部通信接口为内部的分布式计算和集群管理提供服务。56.所述用户管理模块负责管理用户和权限信息,这些信息会存储在元数据存储中;并会在tableapi、mqapi和mlapi进行用户权限控制。57.所述分布式管理模块复制集群和节点状态的管理,这些信息会存储在元数据存储中。58.计算引擎模块的调度器使用分布式调度器时,会查询分布式信息。59.所述元数据存储使用kv存储的方式。存储后端支持内置的存储后端以及外置存储,比如zookeeper、etcd、postgresql。60.所述tableapi模块是对计算引擎和存储引擎的封装,提供对结构化和半结构化数据的读写和管理。61.该tableapi模块支持不同的查询语言,比如sql或者使用yaml定义的pipeline;62.首先将查询语言转换为操作,分为数据管理操作和数据查询操作。63.所述数据管理操作调用元数据管理处理。64.所述数据查询操作会先转换为执行计划,再调用优化规则进行修改和优化。65.对于流处理任务和批处理任务,优化规则不相同。可自定义优化规则,支持基于规则的优化(rbo)和基于代价的优化(cbo)。66.部分执行计划支持直接下推到存储引擎。67.优化后的执行计划会转换为执行步骤(transformation),交由计算引擎处理。68.使用列式结构存储和计算。69.所述mqapi模块是对消息订阅和发布功能的封装。70.如果需要对消息进行加工,可使用tableapi处理。该模块和tableapi的区别是跳过了计算引擎,直接操作存储引擎从而实现消息的快速发布和订阅。71.消息使用topic区分,可在tableapi中直接查询,相当于table。72.消息支持分片,分片名使用字符串表示,在发布和订阅时指定,订阅时可支持通配符订阅任意多的分片。73.读取分片内的消息保证有序(和写入顺序一致),有递增的offset,支持从某个offset开始读取数据。74.不同客户端可订阅同一个topic的相同分片的消息,消息将被同时发送到多个客户端。75.所述mlapi模块是对机器学习模型和算法的封装。76.可以通过该模块定义模型和算法,在tableapi中作为表函数或transformation使用。77.所述计算引擎模块负责计算步骤的执行。78.调度器分为分布式计算调度和本地任务调度。79.执行器分为子线程执行、子进程执行。80.任务管理,监控所有在执行任务的状态和日志。81.资源管理,为不同任务分配不同的计算资源,并且限制计算资源的使用。82.所述存储引擎模块负责数据的读写。83.支持内部存储,内存、时序数据和分析数据的持久化存储文件格式,消息队列的持久化存储文件格式。84.支持外部存储,clickhouse、kafka、postgresql、parquet/json/csv文件。85.所述客户端模块是调用服务接口的外部模块,不属于系统内的一部分;86.由一个通用的命令行客户端以及不同语言实现的访问服务接口的客户端库组成。87.命令行客户端可支持交互式访问。88.基于本系统实现了一个分布式数据分析平台的应用(包含全部模块和功能)和一个本地数据处理的命令行工具(只包含计算引擎和部分存储引擎)。89.本地数据处理的命令行工具可以根据需求拆分本地执行的数据处理和远端执行的数据处理步骤。90.可以作为嵌入式方案(非服务模式),嵌入在其他系统中作为数据存储或数据分析库使用。91.可以定制开发基于本系统的数据处理函数和数据存储引擎的扩展。92.本发明提供的通用模块化的分布式数据分析和采集系统,可以通过本发明提供的通用模块化的分布式数据分析和采集方法中的步骤流程实现。本领域技术人员,可以将所述通用模块化的分布式数据分析和采集方法理解为通用模块化的分布式数据分析和采集系统的一个优选例。93.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。94.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1