一种基于RPC开源框架Kitex的海量数据可信共享及查询方法
文献发布时间:2024-04-18 19:58:26
技术领域
本发明属于碳追踪领域,具体涉及一种基于RPC开源框架Kitex的海量数据可信共享及查询方法。
背景技术
为了实现可持续发展目标,需要建立一个有效的碳电市场系统,通过市场机制激励低碳发展。又因此系统需支持碳电两个系统中大量的用户和进行频繁的交易操作,所以这个系统需要满足海量数据可信分享和高速查询的要求。
然而,这个系统面临着一个重大的技术难题:如何保证数据的安全性、准确性和可追溯性,同时又不影响数据的流动性、可用性和效率。传统的数据库系统无法满足这个需求,分布式数据库系统也有诸多挑战。
发明内容
针对现有技术的不足,本发明的目的在于提供一种基于RPC开源框架Kitex的海量数据可信共享及查询方法。
本发明的目的可以通过以下技术方案实现:
一种基于RPC开源框架Kitex的海量数据可信共享及查询方法,包括以下步骤:
基于主体和碳市场以及电市场的关系进行调查,发现系统需要实现的功能,建立系统的逻辑关系结构,构建数据库关系;
基于逻辑关系结构和数据库关系,来构建数据可信共享及查询系统;
在数据可信共享及查询系统中,设置对应不同需求用户的不同权限;
对数据共享查询系统进行测试和审核,并对不同权限等级的用户分别部署管理系统和数据库;
部署完成后,不同权限等级的用户联合对数据进行维护。
进一步地,所述数据可信共享及查询系统包括;
etcd模块:用来做服务的注册和发现模块,并供用户高速查询;
用户功能模块:用于进行用户数据录入和用户数据管理;
电力市场功能模块:用于进行电力交易数据录入、电力交易数据管理、计算电力交易碳排放、根据买方汇总数据、根据省属进行汇总、根据行业进行汇总、根据能源种类进行汇总、以及动态调整用户数据;
碳市场功能模块;用于进行碳交易数据录入、碳交易数据管理、根据用户汇总数据、根据省属进行汇总、根据行业进行汇总、根据交易地规则进行清缴、以及动态调整用户数据;
以及,API模块:根据用户的需要来选择开放某些非敏感数据供初级权限用户进行访问。
进一步地,电力市场功能模块和碳市场功能模块使用thrift协议,用户功能模块使用pritibuf协议。
进一步地,用户权限等级分为初级、中级和高级;对初级权限的用户仅开放查询接口,在中级和高级权限的用户处开设云数据库,并仅对高级权限的用户开放数据库管理权限和系统维护权限。
进一步地,在中级和高级权限的用户处部署较为复杂的管理系统以及数据库,低级权限的用户处部署能够查询数据的接口。
进一步地,高级权限的用户对系统进行日常的功能扩展,数据维护的工作;低级和中级权限的用户在日常的使用中记录系统的问题,逐级反馈。
一种基于RPC开源框架Kitex的海量数据可信共享及查询系统,包括;
etcd模块:用来做服务的注册和发现模块,并供用户高速查询;
用户功能模块:用于进行用户数据录入和用户数据管理;
电力市场功能模块:用于进行电力交易数据录入、电力交易数据管理、计算电力交易碳排放、根据买方汇总数据、根据省属进行汇总、根据行业进行汇总、根据能源种类进行汇总、以及动态调整用户数据;
碳市场功能模块;用于进行碳交易数据录入、碳交易数据管理、根据用户汇总数据、根据省属进行汇总、根据行业进行汇总、根据交易地规则进行清缴、以及动态调整用户数据;
以及,API模块:根据用户的需要来选择开放某些非敏感数据供初级权限用户进行访问。
一种基于RPC开源框架Kitex的海量数据可信共享及查询装置,包括:
功能发现单元:基于主体和碳市场以及电市场的关系进行调查,发现系统需要实现的功能,建立系统的逻辑关系结构,构建数据库关系;
系统构建单元:基于逻辑关系结构和数据库关系,来构建数据可信共享及查询系统;
权限分级单元:在数据可信共享及查询系统中,设置对应不同需求用户的不同权限;
部署单元:对数据共享查询系统进行测试和审核,并对不同权限等级的用户分别部署管理系统和数据库;
以及,维护单元:部署完成后,不同权限等级的用户联合对数据进行维护。
一种基于RPC开源框架Kitex的海量数据可信共享及查询设备,包括:
至少一个处理器;
存储器,用于至少一个程序;
当至少一个程序被至少一个处理器执行,使得至少一个处理器实现上述的方法。
一种计算机存储介质,存储有可读程序,当程序运行时,能够上述的方法。
本发明的有益效果:
在本发明的方法中,通过在构建的系统中设置etcd用来做服务的注册和发现模块,以确保系统的高并发、高可用以及可供用户高速查询;并通过设置对应不同需求用户的不同权限,来确保低级权限用户无法对数据进行编辑修改,高级权限用户会在较高的技术水平和管理水平的基础下对数据进行编辑修改和维护,把数据汇总在较高权限处更好统一管理,且在管理水平和技术水平较高的情况下数据更加安全可信,可以做到可信共享。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的整体方法流程图;
图2是本发明的数据可信共享及查询系统结构示意图;
图3是本发明的方法中S4和S5的管理流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,一种基于RPC开源框架Kitex的海量数据可信共享及查询方法,包括以下步骤:
S1,基于主体和碳市场以及电市场的关系进行调查,发现系统需要实现的功能,建立系统的逻辑关系结构,构建数据库关系;
其中,系统所需要实现的功能包括:
API模块:API模块是一个提供API服务的模块,它使用http协议接收和响应请求,它可以根据请求的内容调用不同的后端服务,比如电力市场功能模块,碳市场功能模块。
电力市场功能模块,碳市场功能模块,用户功能模块:这三个模块是后端服务模块,它们分别使用thrift和protobuf协议与API模块通信,它们可以处理其转发过来的请求,并返回相应的结果。
etcd模块是:此模块是一个分布式键值存储系统,它可以用于服务注册和发现,它可以存储后端服务模块的地址和元信息,供API模块查询和访问。
resolve是一个解析模块,它可以从etcd模块中获取后端服务模块的地址和元信息,并根据请求的内容选择合适的后端服务模块进行调用。
S2,基于S1建立的逻辑关系结构和数据库关系,来构建数据可信共享及查询系统;
如图2所示,数据可信共享及查询系统使用的RPC框架是Kitex框架,开发语言是golang,各模块中的协议使用的是thirift,protobuf,数据库使用的是mysql,系统部署的平台是Ubuntu。
数据可信共享及查询系统包括etcd(分布式键值存储系统组件)模块、API(应用程序编程接口)模块、用户功能模块、电力市场功能模块以及碳市场功能模块;
如图2所示,API模块是一个网关层,负责接收外部请求并路由到内部服务;电力市场功能模块和碳市场功能模块,用户功能模块是业务层,负责处理具体的业务逻辑;etcd是一个基础设施层,负责提供服务注册和发现功能;resolve是一个中间件层,负责提供服务解析和负载均衡功能
数据库建表如表1-3所示
表1
表2
表3
其中,各个功能模块应实现以下功能:
etcd模块:
用来做服务的注册和发现模块,以确保系统的高并发、高可用以及可供用户高速查询。通过etcd来做服务的注册和分发,达到一种负载均衡的状态,从而避免系统的阻塞,来确保系统的高并发和高可用,用户在使用的过程中就能实现高速查询的效果;同时,又因为golang语言的特性是执行性能较高,开发效率高,天生支持并发,而且thirift与protobuf协议序列化的速度较快,也保整了整个系统的传输效率比较高。
用户功能模块:
用于进行用户数据录入和用户数据管理;
用户数据录入:本模块需要录入同时参加碳交易和电力交易的用户,并使用雪花算法来生成独一无二的id,以保整其能作为数据库表中的主键。因为用户数据的获取需要大量的碳交易和电力交易数据的支持,所以此模块需要在录入电力交易和碳交易数据之后才可进行;在本模块中,只展现用户的关键数据,不提供新增、修改和删除的功能,保证数据客观一致。
用户数据管理:提供用户数据的管理功能,按照区域,时间,或类别对数据进行分类和管理,进行相关关键数据的新增、修改和删除操作。
电力市场功能模块:
用于进行电力交易数据录入、电力交易数据管理、计算电力交易碳排放、根据买方汇总数据、根据省属进行汇总、根据行业进行汇总、根据能源种类进行汇总、以及动态调整用户数据;
电力交易数据录入:电力交易数据作为敏感数据是非公开的,所以其录入方式可以使用文件读写或者开放本系统的数据库权限,让内网管理员用户向数据库中写入来实现录入;在本模块中,只展现电力交易的的关键数据,不提供新增、修改和删除的功能,保证数据客观一致。
电力交易数据管理:提供电力交易数据的管理功能,按照区域、时间、或类别对数据进行分类和管理,进行相关关键数据的新增、修改和删除操作。
计算电力交易碳排放:在获取了电力交易数据之后可以使用某些科学客观的碳排放机算算法对新能源和不是新能源的进行碳排放机算,在计算完成之后对表中的carbon_cost字段进行修改,以便后续对于本次电力交易进行碳追踪。
根据买方汇总数据:本系统中暂且只考虑电力交易中买方的碳配额变动,所以本模块需要针对买方进行数据汇总;在汇总了某一段时间内买方的交易数据之后,得到买方的碳配额变动情况,完成对买方数据的动态调整。
根据省属进行汇总:本系统主要侧重于省际间的碳电交易问题,所以在本模块中需要针对各个交易的省属关系进行数据汇总;在汇总了某一时间段内各省的买方交易数据之后,得到了每个参与交易的省份的数据集合,以方便后续各省对已有数据进行清缴配额和清缴登记的工作。
根据行业进行汇总:本系统需要链接碳电市场,各地的碳市场中对于各个行业的限制有所区别,所以需要针对各个行业进行数据的汇总,以方便在各省进行碳交易的过程中,更容易判断此笔电力交易是否可以改变自身主体的碳配额。
根据能源种类进行汇总:本系统需要链接碳电市场,某些碳市场中对于发电能源的限制有所区别,所以需要针对能源种类进行汇总;由于政策的区别主要在于清洁能源和传统能源,所以这一步骤需要针对电力交易的发电商是使用清洁能源和传统能源进行划分。
动态调整用户数据:在完成了以上的数据汇总之后,即可对用户的数据进行调整;本模块需要对trade_participant中的carbon_allowance字段进行修改,以完成针对某一阶段电力交易对交易买方的碳追踪功能。
碳市场功能模块:
用于进行碳交易数据录入、碳交易数据管理、根据用户汇总数据、根据省属进行汇总、根据行业进行汇总、根据交易地规则进行清缴、以及动态调整用户数据;
碳交易数据录入:碳交易数据作为一种金融交易数据是公开的,所以其录入方式可以是通过爬虫技术去各个交易所进行爬取,或者从开源数据机构获取。在获取了数据之后,由本系统的中级或高级权限用户进行录入;在本模块中,只展现电力交易的关键数据,不提供新增、修改和删除的功能,保证数据客观一致。
碳交易数据管理:提供碳交易数据的管理功能,按照区域,时间,或类别对数据进行分类和管理,进行相关关键数据的新增、修改和删除操作。
根据用户汇总数据:在碳交易市场中买方购买了碳配额之后,会增加企业的碳排放配额量或者可以继续在交易市场中交易。所以在本模块中需要根据用户的id进行数据汇总,查看在某一时段内用户买入或卖出碳配额之后,对其碳配额影响,并根据用户的类别来决定是否需要调整用户的碳排放配额量。
根据省属进行汇总:本系统主要侧重于省际间的碳电交易问题,且各地的碳交易平台多是以省级行政区进行划分,所以在本模块中需要针对各个交易的省属关系进行数据汇总;在汇总了某一时间段内各省的买方交易数据之后,得到了每个参与交易的省份的数据集合,以方便后续各省对已有数据进行清缴配额和清缴登记的工作;如果买卖双方的省级归属地之间有相对应的合作协议,两者的交易优先级需要提前,反之,交易优先级需要向后移。
根据行业进行汇总:本系统需要链接碳电市场,各地的碳市场中对于各个行业的限制有所区别,所以需要针对各个行业进行数据的汇总。若当地的行业限制此笔碳交易,则无法进行,需要去别的碳市场进行尝试,若当地的政策没有限制此笔碳交易,则进行后续的步骤。
根据交易地规则进行清缴:本系统需要服务于各地的碳市场,又因各地的碳市场在具体的交易规则有所不同,包括购买以用来抵消碳排放的上限不同,在此步中需要进行省级的清缴登记,以便后续主体再次在此碳市场中参与交易的时候省级的数据是准确的。
动态调整用户数据:在完成了以上各个步骤的汇总数据之后,根据用户的类型和碳配额变动情况,来对用户的数据进行调整。如果用户的类型只是个人投资者或者金融机构,则无需调整数据。本模块需要对trade_participant中的carbon_allowance字段进行修改,已完成对用户数据的动态调整。
API模块:
在完成了以上的功能模块之后,即可进行API的管理和开放,可以根据用户的需要来选择开放某些非敏感数据供初级权限用户进行访问。
值得一提的是,用户功能模块、电力市场功能模块和碳市场功能模块,这三个模块负责具体的功能实现;本系统把用户功能模块、电力市场功能模块和碳市场功能模块分离,来做到各个模块仅负责自己的功能,在开发维护的过程中互不影响,使得系统解开耦合,以确保后续开发的易维护性和可修改性。
此外,系统使用的thrift和protobuf协议是可以支持跨语言开发的,这让不同开发语言的开发人员都可以参与到系统的维护和修改中,更丰富了系统的易维护性和可修改性。
S3,在数据可信共享及查询系统中,设置对应不同需求用户的不同权限;
为了不让系统的结构过于繁琐,拟设置初级,中级,高级三种用户权限;对初级权限的用户仅开放查询接口,在中级和高级权限的用户处开设云数据库,并仅对高级权限的用户开放数据库管理权限和系统维护权限;
构建的用户权限和数据库分级关系如表4所示:
表4
因为目前已有的碳交易平台大多是以省为单位,所以不需要再碳市场数据库方面做具体的分级。在较高的权限级别用户可以管理更大范围的数据,使用mysql来管理数据,在较低的权限用户只能使用API模块来查阅数据,且API模块是否开放仍有上级权限用户来决定。
通过系统的权限控制来确保低级权限用户无法对数据进行编辑修改,高级权限用户会在较高的技术水平和管理水平的基础下对数据进行编辑修改和维护;因把数据汇总在较高权限处更好统一管理,且在管理水平和技术水平较高的情况下数据更加安全可信,所以可以做到可信共享。
除此之外,系统之中在不同的功能模块中还使用了不同的协议;在本发明中,如图2所示,电力市场功能模块和碳市场功能模块使用thrift协议,用户功能模块使用pritibuf协议,使用不同的协议不宜让黑客同时攻击不同模块的数据库,某种程度上也维护了数据的可信共享。
S4,对数据共享查询系统进行测试和审核,并对不同权限等级的用户分别部署管理系统和数据库;
在中级和高级权限的用户处需要部署较为复杂的管理系统以及数据库,而低级权限的用户处仅需要部署能够查询数据的接口即可,以减少数据被篡改的机会和数据传输中数据泄露的风险,从而保证数据的安全。
S5,部署完成后,不同权限等级的用户联合对数据进行维护;
在系统部署之后,一定会发现一些系统的问题和新的用户需求;由高级权限的用户来对系统进行日常的功能扩展,数据维护的工作,低级和中级权限的用户可以在日常的使用中记录系统的问题,逐级反馈,以更好的维护此系统。
值得一提的是,S4和S5使用敏捷开发的项目管理方式,其管理流程如图3所示。由于敏捷开发有着易于接受需求变更,可持续交付可评价的项目的特点,来进行这种需要长期维护并有功能更新的项目较为合适。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
- 一种支持可信计算的spark查询方法及系统
- 一种基于DDS的机载海量数据共享方法及共享系统
- 一种基于数据挖掘技术的海量数据查询方法