CN113672361B - 分布式数据处理系统、方法、服务器和可读存储介质 - Google Patents
分布式数据处理系统、方法、服务器和可读存储介质 Download PDFInfo
- Publication number
- CN113672361B CN113672361B CN202110791860.1A CN202110791860A CN113672361B CN 113672361 B CN113672361 B CN 113672361B CN 202110791860 A CN202110791860 A CN 202110791860A CN 113672361 B CN113672361 B CN 113672361B
- Authority
- CN
- China
- Prior art keywords
- index
- calculation
- target
- information
- target index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 192
- 238000012545 processing Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 478
- 230000033228 biological regulation Effects 0.000 claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 21
- 238000003672 processing method Methods 0.000 claims abstract description 14
- 230000000977 initiatory effect Effects 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 171
- 230000006854 communication Effects 0.000 claims description 32
- 238000012544 monitoring process Methods 0.000 claims description 29
- 238000009877 rendering Methods 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 33
- 230000018109 developmental process Effects 0.000 description 33
- 230000006870 function Effects 0.000 description 15
- 230000000007 visual effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012512 characterization method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 241000282813 Aepyceros melampus Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000009699 differential effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/06—Asset management; Financial planning or analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Mathematical Physics (AREA)
- Game Theory and Decision Science (AREA)
- Human Computer Interaction (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及数据处理领域,公开了分布式数据处理系统、方法、服务器和存储介质。系统包括:指标计算模块预设目标指标的计算规则;指标管理模块根据计算规则获取目标指标的配置信息、根据客户端需求设置目标指标的权限信息,根据配置信息和权限信息渲染展示得到用户界面;调控模块接收计算请求并根据配置信息和权限信息验证计算请求,在验证通过后将计算请求发送至指标计算模块;指标计算模块根据计算请求执行对应的计算规则得到目标指标的指标结果并发送至调控模块;调控模块将指标结果返回至发起计算请求的客户端,使得可以在避免大量重复的开发工作的同时完成指标计算,能够适用于大量用户对多种多样的指标都有计算需求的场景。
Description
技术领域
本发明实施例涉及数据处理领域,特别涉及一种分布式数据处理系统、方法、服务器和可读存储介质。
背景技术
金融领域中存在大量金融数据,涉及很多金融指标计算,金融指标计算有繁有简,有些指标在行业有统一的标准和算法,有些指标每个用户的定义不同,金融指标的计算一般需要大量的数据。在实际应用中,每个用户的需求不同,其所涉及的金融业务也可能都存在区别,因此其需要的指标不同,为了满足不同用户的需求需要针对每个用户的需求针对性的进行金融指标的开发。在传统的开发过程中,针对每个用户的需求定制化开发一套指标计算系统,在多个用户存在相同需求的情况下,传统开发模式将导致大量重复的开发工作。而在用户对指标的需求量大且需求多种多样的场景下,大量重复的开发工作会极大的占用有限的处理能力,难以适用大量用户对多种多样的指标有计算需求的场景。
发明内容
本发明实施方式的目的在于提供一种分布式数据处理系统、方法、服务器和可读存储介质,使得可以在避免大量重复的开发工作的同时完成指标计算,能够适用于大量用户对多种多样的指标有计算需求的场景。
为解决上述技术问题,本发明的实施方式提供了一种分布式数据处理系统,包括:服务器和客户端,所述服务器包括:指标管理模块、指标计算模块和调控模块;所述指标计算模块,用于预设目标指标的计算规则;所述指标管理模块,用于根据所述计算规则获取所述目标指标的配置信息、根据客户端需求设置所述目标指标的权限信息,根据所述配置信息和所述权限信息进行渲染展示得到所述客户端的用户界面;所述调控模块,用于接收所述客户端通过所述用户界面发起的对所述目标指标进行计算的计算请求,并根据所述目标指标的所述配置信息和所述权限信息对所述计算请求进行验证,在验证通过后将所述计算请求发送至所述指标计算模块;所述指标计算模块,还用于根据所述计算请求,执行所述目标指标对应的所述计算规则得到所述目标指标的指标结果,并将所述指标结果发送至所述调控模块;所述调控模块,还用于将从所述指标计算模块接收的所述指标结果返回至发起所述计算请求的客户端。
本发明的实施方式还提供了一种分布式数据处理方法,应用于服务器,包括:预设目标指标的计算规则;根据所述计算规则获取所述目标指标的配置信息、根据客户端需求获取所述目标指标的权限信息,根据所述配置信息和所述权限信息进行渲染展示得到所述客户端的用户界面;接收所述客户端通过所述用户界面发起的对所述目标指标进行计算的计算请求,并根据所述目标指标的所述配置信息和所述权限信息对所述计算请求进行验证;在验证通过后根据所述计算请求,执行所述目标指标对应的所述计算规则得到所述目标指标的指标结果,并将所述指标结果返回至发起所述计算请求的客户端。
本发明的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的分布式数据处理方法。
本发明的实施方式还提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现上述的分布式数据处理方法。
本发明实施方式中的分布式数据处理系统,包括:服务器和客户端,服务器包括:分布式设置的指标管理模块、指标计算模块和调控模块,这三个模块之间相互独立,各个模块分别完成各自的功能,彼此之间互不影响,通过各模块以及客户端之间的交互,可以完成指标的开发(即指标的计算规则的设定)、管理及计算,以共同实现大量用户(即使用客户端的用户)对大量指标的计算需求。通过指标计算模块预设的目标指标的计算规则,指标管理模块就可以基于该计算规则获取目标指标的配置信息,再结合根据客户端需求设置的目标指标的权限信息,渲染展示得到客户端的用户界面,使得用户可以通过渲染的该用户界面方便的发起对目标指标进行计算的计算请求,从而,调控模块在接收到该计算请求后,根据目标指标的配置信息和权限信息对计算请求进行验证,在验证通过后将计算请求发送至指标计算模块,指标计算模块根据计算请求,执行目标指标对应的计算规则得到目标指标的指标结果,并将指标结果发送至调控模块,从而调控模块再将指标结果返回至客户端。本发明实施方式中将指标计算的流程分布在三个模块中,指标计算模块提供强大的计算能力,指标管理模块获取配置信息和权限信息,调控模块根据配置信息和权限信息实现对目标指标的调控管理,三个模块协调工作紧密交互,独立工作互不影响,各自完成各自的功能,使得在大体量用户、大量计算请求的应用场景下依然能够有条不紊地快速执行计算,并在避免重复开发的情况下满足用户个性化的需求。
本发明实施方式中以所有客户端为目标对象,区别于现有技术中的以某一个客户端为目标对象,指标管理模块能够根据客户端需求设置目标指标的权限信息,根据不同客户端的不同需求设置不同的使用权限,每个目标指标可以授权给多个用户使用,从而实现不同客户端对不同目标指标的个性化需求,而无需针对每个客户端的需求进行大量重复的开发工作;指标管理模块能够根据指标计算模块中预设的计算规则获取目标指标对应的配置信息,从而根据配置信息和权限信息实现客户端界面的展示、计算请求的验证、指标结果的计算。通过指标计算模块、指标管理模块、调控模块三者之间的紧密交互实现了每个目标指标只需要开发一次便能够多次重复使用,在满足用户的个性化需求的同时充分利用已有资源避免重复开发,减少了开发工作占用的整个系统的处理能力,适用于大量用户对多种多样的目标指标都有计算需求的场景。而且,本发明实施方式的分布式数据处理系统,从目标指标开发(即目标指标计算规则预设)到得到指标结果整个过程,只有指标计算模块在预设目标指标的计算规则时,要求开发人员具有一定的开发能力,在完成预设目标指标的计算规则后,后续使用过程均可通过可视化界面实现,无需要求开发人员具备程序开发能力,在一定程度上降低开发人员的门槛。
另外,所述配置信息包括第一标识信息,所述第一标识信息为根据所述目标指标的计算规则获取的用于标识所述目标指标的标识信息;所述计算请求中携带第二标识信息,所述第二标识信息为所述客户端通过所述用户界面发起所述计算请求时触发的用于标识所述目标指标的标识信息;所述指标管理模块根据所述第一标识信息和所述权限信息进行渲染展示得到所述客户端的用户界面,所述用户界面至少显示有第一提示信息,所述第一提示信息用于对所述客户端通过所述用户界面发起所述计算请求时需要触发的所述目标指标进行提示,所述第一提示信息根据所述第一标识信息得到;所述调控模块通过比较所述第一标识信息和所述第二标识信息确定所述计算请求对应的所述目标指标,根据所述目标指标获取所述客户端对所述目标指标的权限信息,根据所述客户端对所述目标指标的权限信息对所述计算请求进行验证;所述指标计算模块根据所述第二标识信息,确定与所述第二标识信息对应的所述目标指标的所述计算规则,执行所述计算规则得到所述目标指标的指标结果。
本发明实施方式中通过指标管理模块获取包括第一标识信息的配置信息,并根据第一标识信息在用户界面展示第一提示信息,便于用户根据提示通过用户界面发起计算请求。在进行计算请求验证时通过比较第一标识信息和第二标识信息确定当前触发的目标指标,从而根据该目标指标的权限信息进行计算请求的验证。计算请求验证通过后,通过执行第二标识信息标识的目标指标的计算规则,得到指标计算结果。本发明实施方式通过指标计算模块、指标管理模块、调控模块三者之间的紧密交互,实现对目标指标的界面展示、指标定位、权限验证、指标结果计算,确保对客户端具有使用权限的目标指标进行对应界面的展示和指标结果的计算,从而在大体量的计算场景中能够准确的验证大量客户端的计算请求,满足不同客户端的计算需求。
另外,所述配置信息包括第一输入参数信息,所述第一输入参数信息为执行所述目标指标对应的所述计算规则得到所述目标指标的所述指标结果时需要输入的参数信息;所述计算请求中携带第二输入参数信息,所述第二输入参数信息通过所述用户界面获取;所述指标管理模块根据所述第一输入参数信息和所述权限信息进行渲染展示得到所述客户端的用户界面,所述用户界面至少显示有第二提示信息,所述第二提示信息用于对所述客户端在发起所述计算请求时需要输入的参数信息进行提示,所述第二提示信息根据所述第一输入参数信息得到;所述调控模块通过比较所述第一输入参数信息和所述第二输入参数信息,确定所述第一输入参数信息和所述第二输入参数信息是否匹配,根据匹配的结果对所述计算请求进行验证;所述指标计算模块根据所述第二输入参数信息,得到执行所述目标指标对应的所述计算规则时需要的参数数据,根据所述计算规则和所述参数数据进行计算得到所述指标结果。
本发明实施方式中通过指标管理模块获取包括第一输入参数信息的配置信息,并根据第一输入参数信息在用户界面展示第二提示信息,便于用户根据提示输入第二输入参数信息。在进行计算请求验证时通过比较第一输入参数信息和第二输入参数信息,判断第二输入参数信息是否满足执行计算规则的条件。在计算请求验证通过后,获取到计算时需要的参数数据并执行计算规则。本发明实施方式通过指标计算模块、指标管理模块、调控模块三者之间的紧密交互,实现对执行计算规则时每个目标指标所需要的参数数据的输入界面的展示、数据的符合性判断、数据的获取,实现对不同用户的不同需求信息的获取,根据获取到的参数数据执行计算规则从而实现对不同用户的个性化需求的指标计算。并且调控模块只将满足条件的计算请求发送至指标计算模块,过滤去除参数数据输入错误的计算请求,从而减少对指标计算模块的资源占用,提高整个系统的运算速度。
另外,所述配置信息包括输出信息;所述指标计算模块,具体用于根据所述计算请求,执行所述目标指标对应的所述计算规则,得到符合所述目标指标的输出信息的所述指标结果,将所述指标结果按照所述输出信息发送至所述调控模块;所述发起所述计算请求的客户端,用于在接收到所述调控模块发送的符合所述目标指标的输出信息的所述指标结果之后,根据所述输出信息将所述指标结果在所述用户界面显示。
本发明实施方式中通过指标管理模块获取包括输出信息的配置信息,使得指标结果能够按照输出信息返回,并在用户界面上根据输出信息显示目标指标的指标结果,从而实现不同用户对于输出信息的需求不同时,可以满足不同用户对输出信息的个性化需求。
另外,所述输出信息包括以下任意之一:单维返回值信息、多维返回值信息和模型返回值信息;所述单维返回值信息用于表征所述指标计算模块计算指标结果时输出为单维形式,所述多维返回值信息用于表征所述指标计算模块计算指标结果时输出为多维形式,所述模型返回值信息用于表征所述指标计算模块计算指标结果时输出为非固定形式。
本发明实施方式,提供了输出信息的多种实现形式,有利于满足不同用户对输出信息的个性化需求。
另外,所述指标计算模块包括:主服务进程、通信进程、计算进程、监控进程,所述计算进程包括若干并行子计算进程;所述通信进程,用于接收所述计算请求,并将所述计算请求发送至所述主服务进程;所述监控进程,用于对所述若干并行子计算进程进行监控,并将监控结果发送至所述主服务进程;所述主服务进程,用于根据所述监控结果确定目标子计算进程,并将所述计算请求发送至所述目标子计算进程;所述目标子计算进程,用于根据所述计算请求,执行所述目标指标对应的所述计算规则得到所述目标指标的指标结果,并将所述指标结果发送至所述主服务进程;所述主服务进程,还用于将所述指标结果发送至所述通信进程;所述通信进程,还用于接收所述主服务进程发送的所述指标结果,并将所述指标结果返回至发起所述计算请求的客户端。
本发明实施方式中的分布式不仅体现在指标计算模块、指标管理模块以及调控模块之间的分布式架构,同时还体现在指标计算模块中分布的若干个可以并行计算的子计算进程。计算进程包括多个子计算进程,多个子计算进程可以并行计算,对于每个子计算进程,都会被监控进程监控,将监控结果返回至主服务进程,即主服务进程可控制监控进程对各子计算进程实时监控,从而根据监控情况进行调度,将计算请求发送给合适的目标子计算进程,以提高计算效率。
另外,所述目标指标对应的所述计算规则包括目标数据源和计算逻辑,所述指标计算模块从所述目标数据源中获取计算所述指标结果所需的目标数据,根据所述计算逻辑对所述目标数据进行计算得到所述指标结果;所述指标计算模块,还用于根据来自若干客户端的历史计算请求,确定访问频次大于预设频次阈值的高频数据源,将所述高频数据源中的数据抽取到所述服务器中的本地数据库,以使得所述指标计算模块在获取的所述目标指标对应的目标数据源为所述高频数据源时,直接从所述本地数据库中读取所述目标数据。
本发明实施方式通过将高频数据源中的数据抽取到服务器中的本地数据库,使得在进行指标计算时,可以直接从本地数据中快速读取到计算指标结果所需的目标数据,提高了高频率访问数据的读取速度,从而计算指标结果时读取需要的数据极快。
另外,配置信息还包括:所述目标指标对应的缓存类型,所述缓存类型包括第一类缓存类型、第二类缓存类型,所述第二类缓存类型对应的所述目标指标的复杂度大于所述第一类缓存类型对应的所述目标指标的复杂度;所述指标计算模块在确定所述目标指标对应的缓存类型为所述第一类缓存类型时,还用于对所述目标指标的指标结果进行缓存,以供所述指标计算模块再次从所述调控模块接收到对所述目标指标的计算请求时获取缓存的所述指标结果;所述指标计算模块在确定所述目标指标对应的缓存类型为所述第二类缓存类型时,还用于对计算所述指标结果的过程中产生的中间结果进行缓存,以供所述指标计算模块再次从所述调控模块接收到对所述目标指标的计算请求时,根据缓存的所述中间结果计算所述目标指标的指标结果。
本发明实施方式中对复杂的目标指标缓存计算过程中产生的中间结果,对于简单的目标指标缓存计算得到的指标结果,通过对不同复杂度的目标指标的计算结果针对性的采用各自适合的缓存方式,便于重复使用已经计算过的中间结果或是指标结果,从而有利于减少重复计算、加快运算速度。
另外,所述指标计算模块还包括:任务拆合进程,若所述计算请求携带用于表征所述目标指标为可拆合指标的标识信息,则所述主服务进程,还用于将所述计算请求发送至所述批处理进程;所述任务拆合进程,用于根据所述目标指标对应的可拆解参数,将所述可拆解参数拆解为N个不相关的子参数,根据所述N个不相关的子参数将所述计算请求所标识的计算任务拆分成N个计算子任务,并将所述N个计算子任务发送至所述主服务进程,所述N为大于1的整数;所述主服务进程,还用于根据所述监控结果确定N个目标子计算进程,并分别将所述N个计算子任务分发至所述N个目标子计算进程;所述N个目标子计算进程,用于并行执行所述N个计算子任务得到N个计算结果,并将所述N个计算结果发送至所述主服务进程;所述主服务进程,还用于将所述N个计算结果返回至所述任务拆合进程;所述任务拆合进程,用于将所述N个计算结果进行合并得到所述指标结果,并将所述指标结果发送至所述主服务进程。
本发明实施方式通过任务拆合进程可对计算任务进行拆解,再将拆分成的N个计算子任务并行计算,显著降低可拆合指标的指标结果的计算时间,从而进一步加快指标结果的计算速度。而且,根据目标指标对应的可拆解参数,将可拆解参数拆解为N个不相关的子参数,根据N个不相关的子参数将计算请求所标识的计算任务拆分成N个计算子任务,有利于确保任务拆解的合理性和可实施性,从而在拆解任务的同时不会对最终得到的指标结果造成影响。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是本发明实施方式提到的一种分布式数据处理系统的示意图;
图2是本发明实施方式提到的一种用户界面的示意图;
图3是本发明实施方式提到的一种指标计算模块的示意图;
图4是本发明实施方式提到的另一种指标计算模块的示意图;
图5是本发明实施方式提到的一种分布式数据处理方法的流程示意图;
图6是本发明实施方式提到的服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的实施方式涉及一种分布式数据处理系统,比如可以参考图1,包括:服务器101和客户端102,服务器101包括:指标管理模块103、指标计算模块104、调控模块105;
指标计算模块104,用于预设目标指标的计算规则;
指标管理模块103,用于根据计算规则获取目标指标的配置信息、根据客户端需求设置目标指标的权限信息,根据配置信息和权限信息进行渲染展示得到客户端102的用户界面;
调控模块105,用于接收客户端102通过用户界面发起的对目标指标进行计算的计算请求,并根据目标指标的配置信息和权限信息对计算请求进行验证,在验证通过后将计算请求发送至指标计算模块104;
指标计算模块104,还用于根据计算请求,执行目标指标对应的计算规则得到目标指标的指标结果,并将指标结果发送至调控模块105;
调控模块105,还用于将从指标计算模块104接收的指标结果返回至发起计算请求的客户端102。
下面对本实施方式的分布式数据处理系统的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
指标计算模块104用于预设目标指标的计算规则,其中,目标指标可以理解为客户端需要的指标,预设目标指标的计算规则也可以理解为开发目标指标的计算规则。指标计算模块104中可以包括开发模块和计算模块,由开发模块预设目标指标的计算规则,由计算模块根据计算请求,执行目标指标对应的计算规则得到目标指标的指标结果。在具体实现中,开发模块可以获取用户需求,并根据用户需求预设目标指标的计算规则。
其中,开发人员可以通过开发模块提供的各种预设规范以及功能进行快速开发。开发模块可以为开发人员提供开发目录和开发模板,便于迅速开发目标指标以及后期对于目标指标的维护。其中,开发模板主要包括开发必写的程序片段,比如可以包括:目标指标的配置信息,配置信息可以包括:目标指标的第一标识信息、目标指标的第一输入参数信息、目标指标的输出信息等。其中,目标指标的第一标识信息可以包括:目标指标的英文名称、中文名称、ID、函数名等可以标识目标指标的信息。目标指标的第一输入参数信息可以为:为执行目标指标对应的计算规则得到目标指标的所述指标结果时需要输入的参数信息。目标指标的输出信息可以为:执行目标指标对应的计算规则后输出的信息。
在目标指标开发完之后即预设完目标指标的计算规则后,指标管理模块103可以对开发好的目标指标进行配置以及权限的设置。具体的,指标管理模块103可以根据对目标指标预设的计算规则获取目标指标的配置信息、根据客户端需求设置目标指标的权限信息。其中,目标指标的配置信息可以为根据计算规则利用指标管理模块103提供的可视化界面配置得到的信息;目标指标的权限信息可以为根据客户端需求利用指标管理模块103提供的可视化界面配置得到的信息;权限信息即用于表征客户端是否具有使用目标指标的权限,权限信息根据客户端的需求确定。比如,如果客户端需要目标指标,则根据客户端需求设置目标指标的权限信息可以为允许该客户端使用该目标指标。
在一个例子中,目标指标可以包括以下任意之一或其组合:存储类指标、存储过程类指标、SQL类指标、Python类指标。下面主要对这四种类型的指标进行说明:
存储类指标为能够基于数据中存储的内容直接查询到指标结果的指标,其中,存储的内容可以为在数据库中存储的内容,通过指标管理模块103获取目标指标的查询条件,即配置信息为查询条件,指标计算模块104可以根据查询条件从数据库中查询得到指标结果。存储类指标适用于业务人员,只需数据查看的情况,通过单纯的查询就可以得到指标结果。
SQL类指标为能基于写入的SQL语句计算得到指标结果的指标;其中,通过指标管理模块103获取目标指标的SQL语句,即配置信息为SQL语句,指标计算模块104可以根据SQL语句从数据库中选取数据得到指标结果。SQL类指标适用于业务人员,只需要通过简单运算逻辑便能够完成指标结果的计算。
存储过程类指标为在oracle数据库中开发的指标。存储过程类指标可以为一组为了完成特定功能的SQL语句集,存储在oracle数据库中。
Python类指标为在Python引擎中开发的指标,适用于复杂指标的计算,计算速度快。复杂指标可以理解为:在进行指标计算时,计算量大、花费的计算时间长的指标。目标指标包括Python类指标有利于加快计算复杂指标的指标结果的速度,显著提高整个系统的指标计算能力,适用于大体量的计算场景。
也就是说,在开发完成后,指标管理模块103根据目标指标的计算规则进行配置得到配置信息,对于不同类型的目标指标即上述的存储类指标、存储过程类指标、SQL类指标、Python类指标,具体在进行配置时会有所不同,例如Python类型指标由于在开发时已经配置了数据源,因此在指标管理模块103中可以无需配置数据源。
本实施例中考虑到,对于不同的目标指标,由于其算法、数据源等多方面的因素,不同的目标指标适用不同的计算引擎以不同方式进行计算。本实施例中的分布式数据处理系统可以支持4种类型的目标指标的计算,分别是上述的存储类、SQL类、Python类、存储过程类。开发时,根据每个目标指标的特性和需求采用最适合该目标指标的计算方式进行开发。同时还考虑到,存储类指标、SQL类指标、存储过程类指标可能为先前已经开发完成的可以直接使用的简单指标,为了兼容系统已经开发好的简单指标,同时避免在Python引擎中再次开发这些简单指标,本实施例中的分布式数据处理系统中除了能够对Python类指标进行计算外,还可以对存储类指标、SQL类指标、存储过程类指标进行计算。也就是说,本实施例中指标计算模块中可以包含4种类型的目标指标的计算方式,针对不同的使用场景适用不同计算方式,在保证实现用户需求指标计算的同时简化规范指标开发,降低开发难度、提高了系统的指标计算能力。
在得到目标指标的配置信息和权限信息后,指标管理模块103可以根据配置信息和权限信息进行渲染展示得到客户端的用户界面。其中,用户界面上可以显示有客户端具有使用权限的指标,比如,用户界面上可以以列表的形式显示客户端具有使用权限的若干个指标,以供用户可以在用户界面上直观的看到可以发起计算请求的目标指标。
在一个例子中,指标管理模块103包括指标中心子模块和报表管理子模块;指标中心子模块,用于对单个指标进行管理,对单个指标进行管理包括:根据单个指标的计算规则获取单个指标的配置信息、根据客户端需求获取单个指标的权限信息,根据单个指标的配置信息和单个指标的权限信息进行渲染展示得到客户端的用户界面;报表管理子模块,用于对包含多个指标的报表进行管理,对包含多个指标的报表进行管理包括:配置用于将多个指标进行结合的报表模板、根据多个指标的计算规则获取多个指标的配置信息、根据客户端需求获取报表的权限信息,根据报表模板、多个指标的配置信息和报表的权限信息进行渲染展示得到客户端的用户界面。也就是说,指标中心子模块对单个指标进行管理,报表管理子模块对由多个指标组成的报表进行管理。根据涉及的指标数量可将目标指标分为单个指标和包含多个指标的报表,比如,累计单位净值为单个指标。员工绩效评估表可以为由出勤情况、工作态度、学习能力、工作能力、沟通能力、创新能力等多个指标组合而成的报表。
本实施例中,考虑到用户在实际应用中,需要的可能不仅仅是单个指标,往往需要多个指标结合生成报表。因此,本实施例中同时提供对单个指标的管理以及对包含多个指标的报表的管理,可以满足用户的不同需求。
下面主要对指标管理模块103根据客户端需求设置目标指标的权限信息进行说明:
在具体实现中,目标指标可以分为公用指标和私用指标,公用指标为具有统一计算规则的指标,比如行业内统一使用一种计算规则对某个目标指标进行计算;私用指标为不具有统一计算规则的指标,比如根据不同的用户需求对一个目标指标可能设置多种不同的计算规则。本实施例中考虑到,每个用户对目标指标的需求和标准具有差异,为了满足用户的需求,相关技术中会对用户需要的每个目标指标进行开发,随着用户体量的增大,目标指标数量巨大,而每个用户可能只需要其中一部分目标指标,并不需要全部的目标指标,对每个用户需要的目标指标都开发一次,难免会造成大量重复开发的工作。而本实施例中,指标管理模块103会根据客户端需求设置目标指标的权限信息,根据不同客户端的不同需求设置不同的使用权限,每个目标指标可以授权给多个用户使用,从而实现不同客户端对不同目标指标的个性化需求,而无需针对每个客户端的需求进行大量重复的开发工作。
在一个例子中,指标管理模块103可以用于提供权限信息的可视化配置界面,通过权限信息的可视化配置界面,根据客户端需求设置目标指标的权限信息,具体实现方式可以如下:
比如,指标管理模块103通过权限信息的可视化配置界面先确定需要设置使用权限的当前客户端,再通过权限信息的可视化配置界面对当前客户端需要的若干目标指标设置允许使用的权限。也就是说,指标管理模块103可以先确定需要配置权限信息的客户端,然后对该客户端需要的若干目标指标设置允许使用的权限。
再比如,指标管理模块103通过权限信息的可视化配置界面先确定当前目标指标,再通过权限信息的可视化配置界面对需要当前目标指标的若干客户端设置允许使用该当前目标指标的权限。也就是说,指标管理模块103可以先确定一个目标指标,然后为该目标指标选择具有使用权限的客户端。
本实施例中,通过指标管理模块103提供的权限信息的可视化配置界面,便于可视化地进行权限信息的配置,从而实现指标管理模块103对权限信息的获取。
在指标权限设置完成后,客户端的用户界面上可以展示用户具有使用权限的目标指标,可以包括:单个指标和报表,从而实现针对每个用户的定制化需求。本实施例中在完成配置信息和权限信息的配置之后,可以将目标指标的配置信息和权限信息存储在数据库内,根据实际需要可以选择存储在远程数据库或是本地数据库中。在具体实现中,指标管理模块103可以理解为指标信息收集系统,收集的指标信息包括目标指标的配置信息和权限信息。通过指标管理模块103提供的功能,可以可视化地将各目标指标的权限信息和配置信息按照规范进行配置,将配置信息和权限信息保存至数据库。
本实施例中能够实现对用户具有需求的目标指标的定制化开发,每个目标指标只需要开发一次便能够多次重复使用,在满足用户的个性化需求的同时充分利用已有资源避免重复开发。且通过指标管理模块,可以可视化地对用户进行管理,可视化的对用户使用目标指标的权限进行设置,操作简单,管理便捷,灵活性强,迭代性强,各种目标指标的增加、修改和删除操作方便,且可视化的操作方式,无需管理人员进行代码操作,便于维护和管理,能满足大量用户对目标指标的定制化需求。
调控模块105主要用于接收客户端通过用户界面发起的对目标指标进行计算的计算请求,并根据目标指标的配置信息和权限信息对计算请求进行验证,在验证通过后将计算请求发送至指标计算模块104。在一个可选的实施例中调控模块105可以具体为Frontend网关,用于对客户端发送的计算请求进行统一调控。调控模块105在接收到计算请求后,可以先对计算请求进行验证,当验证通过后再将计算请求发送至指标计算模块104。
在一个例子中,若调控模块105同时接收到来自多个客户端发起的计算请求,调控模块105还用于对多个计算请求进行并行验证,并将确认验证通过的计算请求发送至指标计算模块104,指标计算模块104还用于根据接收到的多个计算请求进行并行计算。也就是说,调控模块105还可以对于同时发过来的多个计算请求进行并行处理,并在确认验证通过后发送给指标计算模块104,指标计算模块104可以对接收到的多个计算请求进行并行计算,即每个目标指标从计算请求发送以后就可以并行进行处理,从而显著提高了各目标指标的计算效率,进而使得能够实现对大量目标指标进行计算。
在一个例子中,目标指标的配置信息包括第一标识信息,第一标识信息为根据目标指标的计算规则获取的用于标识目标指标的标识信息;计算请求中携带第二标识信息,第二标识信息为客户端通过用户界面发起计算请求时触发的用于标识目标指标的标识信息;指标管理模块103根据第一标识信息和权限信息进行渲染展示得到客户端的用户界面,用户界面至少显示有第一提示信息,第一提示信息用于对客户端通过用户界面发起计算请求时需要触发的目标指标进行提示,第一提示信息根据第一标识信息得到。第一标识信息可以包括以下任意一种:指标名称、指标ID、指标函数名、指标代码等,指标名称又可以进一步包括:中文名称和英文名称。根据第一标识信息得到的第一提示信息可以为上述指标名称、指标ID、指标函数名、指标代码中的任意一种或多种,旨在为用户提供提示作用,方便用户通过用户界面显示的第一提示信息去触发目标指标,发起对目标指标的计算请求。
调控模块105通过比较第一标识信息和第二标识信息确定计算请求对应的目标指标,根据目标指标获取客户端对目标指标的权限信息,根据客户端对目标指标的权限信息对计算请求进行验证。比如,第一标识信息可以为配置信息中的指标ID,第二标识信息可以为客户端通过用户界面触发的指标ID。调控模块105可以将触发的指标ID和数据库中存储的所有指标ID进行匹配,如果匹配到数据库中的指标ID,将匹配到的该指标ID所标识的指标确定为目标指标。然后,获取客户端对该目标指标的权限信息,如果获取的客户端对该目标指标的权限信息为允许使用的权限信息,则可以确定计算请求在权限信息通过验证。反之,如果获取的客户端对该目标指标的不具有允许使用的权限信息,则可以确定计算请求在权限信息未通过验证。
指标计算模块104可以根据第二标识信息,确定与第二标识信息对应的目标指标的计算规则,执行计算规则得到目标指标的指标结果。
在一个例子中,配置信息还包括第一输入参数信息,第一输入参数信息为执行目标指标对应的计算规则得到目标指标的指标结果时需要输入的参数信息;计算请求中携带第二输入参数信息,第二输入参数信息通过用户界面获取。指标管理模块103可以根据第一输入参数信息和权限信息进行渲染展示得到客户端的用户界面,用户界面至少显示有第二提示信息,第二提示信息用于对客户端在发起计算请求时需要输入的参数信息进行提示,第二提示信息根据第一输入参数信息得到。其中,第一输入参数信息可以为开发人员在开发目标指标时确定的计算指标结果需要用户输入的参数信息,比如可以包括:参数的名称、参数的个数、参数对应的数据类型、参数是否为必填参数等。用户在通过客户端发起计算请求时可以通过用户界面的提示输入第二参数信息。比如,客户端的用户界面可以参考图2所示,第一输入参数信息可以包括:参数名称(标准证券代码、交易日期)、用于标识是否为必填参数的*标识(即图2中标准证券代码、交易日期均为必填参数)、需要输入的参数的数量(图2中的2个参数)、需要输入的参数的数据类型(标准证券代码的数据类型为代码类型、交易日期的数据类型为日期类型)。第二提示信息可以为根据第一输入参数信息得到的参数名称、是否必填的标识以及参数数据输入框,以提示用户需要输入的参数、需要输入的参数和输入框的对应关系以及是否必须输入。
调控模块105通过比较第一输入参数信息和第二输入参数信息,确定第一输入参数信息和第二输入参数信息是否匹配,根据匹配的结果对计算请求进行验证。具体的,可以根据第一输入参数信息确定执行计算规则时需要的参数数量和参数类型,在根据第二输入参数信息确定通过用户界面获取的参数数量和参数类型后,通过将第二输入参数信息中的参数数量、参数类型和第一输入参数信息中参数数量、参数类型进行比对,如果比对结果为相同,则认为第二输入参数信息满足执行计算规则的条件,即可以确认计算请求在参数信息通过验证。比如,图2中,用户通过用户界面输入的第二输入参数信息为:代码名称a和日期b,调控模块105确定输入参数的数量为2个,输入参数的类型分别为:代码类型和日期类型,如果第一输入参数信息中的参数数量为2个且参数类型分别为代码类型和日期类型,则调控模块105可以确定计算请求在参数信息通过验证。
指标计算模块104可以根据第二输入参数信息,得到执行目标指标对应的计算规则时需要的参数数据,根据计算规则和参数数据进行计算得到指标结果。
在具体实现中,调控模块105根据客户端对目标指标的权限信息对计算请求进行验证,并根据第一输入参数信息和第二输入参数信息是否匹配的匹配结果对计算请求进行验证,只有在权限信息和参数信息均通过验证的情况下,调控模块105才可以确定计算请求通过验证。
在一个例子中,配置信息还包括输出信息,指标计算模块104,可以用于根据计算请求,执行目标指标对应的所述计算规则,得到符合目标指标的输出信息的指标结果,将指标结果按照输出信息发送至调控模块105;发起所述计算请求的客户端,用于在接收到调控模块105发送的符合目标指标的输出信息的指标结果之后,根据输出信息将指标结果在用户界面显示。其中,输出信息可以包括以下任意之一:单维返回值信息、多维返回值信息和模型返回值信息;单维返回值信息用于表征指标计算模块计算指标结果时输出为单维形式,多维返回值信息用于表征指标计算模块计算指标结果时输出为多维形式,模型返回值信息用于表征指标计算模块计算指标结果时输出为非固定形式。其中,单维返回值信息还可以理解为:一个指标计算后返回的指标结果是多行一列的结构化数据;多维返回值信息还可以理解为:一个指标计算后返回的指标结果是多行多列的结构化数据;模型返回值信息还可以理解为:一个指标计算后返回的指标结果是非结构化数据,具体是指标结果中的行数、列数不固定且每行的列数也不固定。每个目标指标开发完成后,其输出信息以上述一种形式返回。输出信息为单维返回值信息的目标指标也可以称为单维指标,输出信息为多维返回值信息的目标指标也可以称为多维指标,输出信息为模型返回值信息的目标指标也可以称为模型指标。但不管返回形式是哪种,其都可以在指标管理模块103中进行对应的配置。
在具体实现中,指标管理模块103可以提供配置信息的可视化配置界面,配置信息的可视化配置界面可以包括:第一配置界面、第二配置界面和第三配置界面;第一配置界面用于对单维指标进行配置,得到单维指标的配置信息;第二配置界面用于对多维指标进行配置,得到单维指标的配置信息;第三配置界面用于对模型指标进行配置,得到模型指标的配置信息。
在一个例子中,指标管理模块103提供第一配置界面的情况下,单维指标的配置信息包括以下任意组合:指标名称(比如可以为累计单位净值)、指标代码、分类体系、指标类型(比如SQL类、存储过程类、Python类、存储类中的一种)、指标的函数名、输入参数名称(比如标准证券、交易如期等)、字段名称、输入参数类型(比如单值输入、多值输入等)、是否必填(比如可以为必填参数或非必填参数)、单维返回值信息等。通过在第一配置界面上的配置,用户界面的展示可以如图2所示,指标名称为累计单位净值这一单维指标的输入参数可以包括图2中所示的标准证券代码和交易日期,通过两个输参数之前的*形标识可以表示这两个参数均为累计单位净值这一单维指标的必填参数,通过用户界面上的两个输入参数还可以看出对累计单位净值这一单维指标配置的参数输入类型为二值输入。
在一个例子中,指标管理模块103提供第二配置界面的情况下,多维指标的配置信息包括以下任意组合:数据集名称(比如基金查询)、数据集代码、分类体系、数据集类型,指标的函数名和返回列等。指标管理模块103提供第三配置界面的情况下,模型指标的配置信息包括以下任意组合:模型代码、模型名称(比如可以为纯债CAMPISI业绩归因模型)、模型类型(比如业绩归因)、模型参数、输入参数、返回类型(比如可以为多值或单值)、模型参数名称、模型参数名称的排序、模型说明、模型参数值等。其中,模型说明比如可以为:纯债收益贡献=杠杆效应+票息效应+收敛效应+国债效应+利差效应+残差项。
在一个例子中,配置信息还包括:目标指标对应的缓存类型,缓存类型包括第一类缓存类型、第二类缓存类型,第二类缓存类型对应的目标指标的复杂度大于第一类缓存类型对应的目标指标的复杂度;指标计算模块在确定目标指标对应的缓存类型为第一类缓存类型时,还用于对目标指标的指标结果进行缓存,以供指标计算模块再次从调控模块接收到对目标指标的计算请求时获取缓存的指标结果;指标计算模块在确定目标指标对应的缓存类型为第二类缓存类型时,还用于对计算指标结果的过程中产生的中间结果进行缓存,以供指标计算模块再次从调控模块接收到对目标指标的计算请求时,根据缓存的中间结果计算目标指标的指标结果。
对于上述两种缓存类型也可以理解为:若目标指标为第一类指标,指标计算模块104,还用于对目标指标的指标结果进行缓存,以供指标计算模块104再次接收到对目标指标的计算请求时获取缓存的所述指标结果,即若目标指标为第一类指标,则对应的缓存类型可以为第一类缓存类型。若目标指标为第二类指标,指标计算模块还用于对计算指标结果的过程中产生的中间结果进行缓存,以供指标计算模块再次接收到对所述目标指标的计算请求时,根据缓存的所述中间结果计算目标指标的指标结果,即若目标指标为第二类指标,则对应的缓存类型可以为第二类缓存类型;其中,第二类指标的复杂度大于第一类指标的复杂度。其中,第二类指标可以理解为复杂的指标,第一类指标可以理解为简单的指标,通常情况下,计算第二类指标的指标结果的计算量以及所需的计算时间大于计算第一类指标的指标结果的计算量以及所需的计算时间。也就是说,对复杂的第二类指标缓存计算过程中产生的中间结果,对于简单的第一类指标缓存计算得到的指标结果,通过对不同复杂度的指标的计算结果针对性的采用各自适合的缓存方式,便于重复使用已经计算过的中间结果或是指标结果,从而有利于减少重复计算、加快运算速度。
在一个例子中,对目标指标的指标结果进行缓存,可以理解为:按照key和value的形式缓存目标指标的指标结果,其中,key可以表示目标指标的指标名称,value可以为目标指标的指标结果。考虑到具体实现中可能存在不同的目标指标具有相同的指标名称,因此key可以为目标指标的指标名称和唯一能够表征该目标指标的参数的组合,以保证可以通过key表征唯一的一个指标。在具体实现中,value可以为未处理过的指标结果,这里的处理可以理解为下述的通信进程302将指标结果封装成统一的格式,value为未处理过的指标结果可以减少缓存的数据量。然而在具体实现中,value也可以为处理过的指标结果,本实施例对此不做具体限定。
在一个例子中,对计算指标结果的过程中产生的中间结果进行缓存,可以理解为:将计算指标结果的过程中产生的中间结果存储在一张表中,目标指标可以对应一张中间结果缓存列表,该中间结果缓存列表中缓存有计算过程中产生的中间参数的中间结果。
在一个例子中,上述的对目标指标的指标结果进行缓存,以及对计算指标结果的过程中产生的中间结果进行缓存中,缓存的地方可以为服务器的数据库,便于下次使用计算时可以直接从数据库中获取数据,无需重新开始计算或重复计算。其中,缓存的数据库可以为本地数据库也可以为远程服务器,本实施例对此不作具体限定。
在一个实施例中,目标指标对应的计算规则包括目标数据源和计算逻辑,指标计算模块从目标数据源中获取计算指标结果所需的目标数据,根据计算逻辑对目标数据进行计算得到所述指标结果;指标计算模块,还用于根据来自若干客户端的历史计算请求,确定访问频次大于预设频次阈值的高频数据源,将高频数据源中的数据抽取到服务器中的本地数据库,以使得指标计算模块在获取的目标指标对应的目标数据源为所述高频数据源时,直接从本地数据库中读取所述目标数据。
其中,预设频次阈值可以根据实际需要进行设置,访问频次大于预设频次阈值的高频数据源可以认为是被访问的频次很多的数据源,即在进行指标计算时经常会使用到的数据源。通过将高频数据源中的数据抽取到服务器中的本地数据库,使得在进行指标计算时,可以直接从本地数据中快速读取到计算指标结果所需的目标数据,提高了高频率访问数据的读取速度,从而使得指标计算读取数据极快。
在一个例子中,服务器中的本地数据库可以为sqlite本地数据库,即指标计算模块104可以将高频数据源中的数据抽取到服务器中的sqlite本地数据库,然后还可以将sqlite本地数据库中的数据存储进预设目录,当启动指标计算模块时,sqlite本地数据库中的数据被加载到服务器的内存中,从而使得计算指标结果时读取数据极快,提高了高频率访问数据的读取速度。
在一个实施例中,可以参考图3,指标计算模块104可以包括:主服务进程301、通信进程302、计算进程303、监控进程304;其中,计算进程303可以包括若干子计算进程;通信进程302,用于接收计算请求,并将计算请求发送至主服务进程301;监控进程304用于对若干子计算进程进行监控,并将监控结果发送至主服务进程301;主服务进程301,用于根据监控结果确定目标子计算进程,并将计算请求发送至目标子计算进程;目标子计算进程,用于根据计算请求,执行目标指标对应的计算规则得到目标指标的指标结果,并将指标结果发送至主服务进程301;主服务进程301,还用于将指标结果通过通信进程302发送至调控模块105,由调控模块105将指标结果返回至发起计算请求的客户端。简单来说,上述过程可以描述为:客户端向服务器发送计算请求,服务器中的通信进程302接收到计算请求后将计算请求发送至主服务进程301,主服务进程301将计算请求分发给计算进程303中的各个子计算进程,最终将计算所得的指标结果返回至主服务进程301,主服务进程301再将指标结果通过通信进程302返回至客户端,从而实现指标计算。下面对图3中的各进程进行详细说明:
通信进程302用于各个其他进程间的信息交互,图3中各进程间的数据传输、信息交互等都可以通过通信进程302实现。通信进程302的主要作用为接收消息和发送消息,用于客户端和服务器之间通信。通信进程302接收的信息可以包括:来自客户端的计算请求,通信进程302发送的信息可以包括计算的指标结果。
在一个例子中,分布式数据处理系统所采用的通信协议为远程过程调用(RemoteProcedure Call,简称:RPC)协议,该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序。gRPC是一个高性能、通用的开源RPC框架,本示例中分布式数据处理系统可以采用gRPC这一通信机制。当使用gRPC这一通信机制时,通信进程302在接收到计算请求后,可以将计算请求处理成protobuf格式的消息,把处理后的消息发送至主服务进程301。通信进程302在接收到主服务进程301发送的指标结果后可以将指标结果封装成统一的格式发送至客户端,便于后期排错和维护。需要说明的是,本示例中只是以分布式数据处理系统采用gRPC这一通信机制为例,在具体实现中根据实际需要还可以采用其他通信机制,对应的根据其他通信机制的要求通信进程302也可以对接收到的计算请求进行其他形式的处理,然而本实施例对此不作具体限定。
计算进程303,包括多个子计算进程,这些子计算进程可以并行计算,对于每一个子计算进程,都会被监控进程304监控,监控进程304可以将监控结果发送至主服务进程301,使得主服务进程301可以根据监控结果进行调度,将可能接收到的多个计算请求分发给各子计算进程,以提高计算效率。
在一个例子中,监控进程304具体用于监控若干个子计算进程中正在计算的指标结果的第一数量和计算完成的指标结果的第二数量,并将所述第一数量和所述第二数量发送至主服务进程301,主服务进程301可以根据所述第一数量和所述第二数量确定目标子计算进程。也就是说,监控进程304通过监控得到的监控结果包括各个子计算进程中正在计算的指标结果的第一数量和计算完成的指标结果的第二数量,使得主服务进程301可以根据得到的该监控结果负载均衡的向子计算进程分发计算任务,协调各个子计算进程的计算资源。
在一个例子中,主服务进程301可以对计算进程303提供端口,计算进程303可以绑定主服务进程301所提供的端口,主服务进程301可以控制监控进程304通过该端口来监听计算进程303的运行情况,从而监控得到每个子计算进程中正在计算的指标个数(即第一数量)和计算完成的个数(即第二数量)。
在一个例子中,计算请求中携带目标指标的ID和客户端对应的用户ID,接收到计算请求的目标子进程,用于根据目标指标的ID确定目标指标对应的目标数据源和计算逻辑,从目标数据源中获取计算指标结果所需的目标数据,根据计算逻辑对目标数据进行计算得到指标结果。其中,目标数据源可以包括以下任意之一或其组合:oracle、mysql、db2、sqlite、greenplum、hive、impala、kudu,从目标数据源中获取计算指标结果所需的目标数据,相当于是在数据库进行简单的查询,不使用sum、min等聚合函数,大大减少数据库的压力。计算逻辑可以基于若干个基础的金融指标算法包生成,计算得到指标结果的过程相当于是在分布式数据处理系统中处理完成而不是数据库中,从而提高指标的运算速度。
在具体实现中,计算进程303在实施指标计算之前可以先进行计算前的准备,开发人员可以在预设文件中配置数据源和系统相关参数。其中,预设文件可以为application.yml文件;系统相关参数包括连接池大小、最大并发量、缓存类型、数据源名称、日志级别、对外接口、消息传递大小等。需要说明的是:上述计算前的准备工作可以是整个系统开发时配置的,仅需配置一次即可。上述最大并发量可以使得后续进行并发计算时,不会超过设置的该最大并发量,有利于动态使用服务器资源,因为服务器一般会有其他的应用程序使用计算资源,设置最大并发量可以避免对其他应用的影响。
在一个例子中,指标计算模块104中还可以包括日志进程,也就是说,指标计算模块104中包括:计算进程、日志进程、监控进程、主服务进程,各进程之间均可以通过通信进程进行gRPC通信,其中,主服务进程和其他四个进程之间是父子关系,即可通过主服务进程调控其他四个进程。其中,日志进程可以用于获取子计算进程的各指标计算历史记录,生成日志记录,便于后续开发人员根据日志信息进行问题排除、指标计算优化等。本实施例中,整个服务器可以只有一个对外端口,便于消息的统一接收处理,易于维护,对内可以绑定上述多个进程端口,易于监控各个进程的运行状况,易于管理分发任务。需要说明的是:本实施例中的进程均设置在服务器上,服务器可以为多个,采用分布式架构,每个服务器都包括以上各进程。当某台服务器宕机时不会影响其他服务器的运行,且宕机服务器上未完成的计算任务可转移至其他服务器上进行计算。
在一个实施例中,指标管理模块、指标计算模块和调控模块的数量可以为多个,比如:多个指标管理模块、多个指标计算模块以及多个调控模块,可以分布设置在一个服务器中,也可以分布设置在多个服务器中。多个指标管理模块之间可以是并行的,多个指标计算模块之间可以是并行的,多个调控模块之间也可以是并行的,另外,每个指标计算模块中的若干子计算进程也是并行的,这样可以极大的降低整个系统的处理压力,即使面对大量用户的计算请求也能高效的完成计算。
在一个例子中,分布式数据处理系统中可以根据系统当前的任务处理压力,自适应的增加或减少指标计算模块以及调控模块的数量。比如,可以用当前接收到的计算请求的数量来衡量系统当前的任务处理压力。具体的,分布式数据处理系统中还可以包括状态控制模块,状态控制模块可以实时监控当前接收的计算请求的数量,并根据当前接收的计算请求的数量和预设的多个数量阈值,确定是否需要增加或减少调控模块和指标计算模块。比如,多个数量阈值中可以包括:逐渐增大的第一阈值、第二阈值、第三阈值,当监控到的计算请求的数量达到第一阈值、第二阈值或第三阈值,均会执行一次增加调控模块和指标计算模块的数量,当监控到的计算请求的数量低于第一阈值、第二阈值或第三阈值,均会执行一次减少调控模块和指标计算模块的数量。需要说明的是,本实施方式中,只是以上述三个数量阈值为例,在具体实现中并不以三个为限。
本实施例中,系统当前的任务处理压力很大时,可以有选择的布置多个调控模块和指标计算模块,以通过多个调控模块和指标计算模块并行处理大量的计算请求,以分担系统的处理压力,加快指标结果的计算速度。系统当前的任务处理压力很小时,也可以有选择的布置少量的调控模块和指标计算模块,在可以承担系统的处理压力的同时还有利于达到节能的目的。然而在具体实现中,调控模块和指标计算模块可以有选择性的布置多个,也可以布置一个,本实施方式对此不做具体限定。
在一个实施例中,参考图4,指标计算模块104中还可以包括:任务拆合进程401,若计算请求携带用于表征所述目标指标为可拆合指标的标识信息,则主服务进程301,还用于将计算请求发送至任务拆合进程401;任务拆合进程401,用于将计算请求所标识的计算任务拆分成N个计算子任务,并将N个计算子任务发送至主服务进程301,N为大于1的整数;主服务进程301,还用于根据监控结果确定N个目标子计算进程,并分别将N个计算子任务分发至N个目标子计算进程;N个目标子计算进程,用于并行执行N个计算子任务得到N个计算结果,并将N个计算结果发送至所述主服务进程301;主服务进程301,还用于将N个计算结果返回至任务拆合进程;任务拆合进程401,用于将N个计算结果进行合并得到指标结果,并将指标结果发送至主服务进程301。通过任务拆合进程对于计算任务的拆解,有利于利用拆分成的N个计算子任务并行计算,显著降低可拆合指标的指标结果的计算时间,从而进一步加快指标结果的计算速度。
在一个例子中,任务拆合进程401,可以根据目标指标对应的可拆解参数,将可拆解参数拆解为N个不相关的子参数,根据N个不相关的子参数将计算任务拆分成N个计算子任务。其中,N可以小于预设的默认值,该默认值可以根据系统核数确定,比如可以为服务器CPU处理任务的最大核心数。可拆解参数可以为时间参数,比如,目标指标的时间参数为:20200101至20201231,该时间参数可以拆分为10个不相关的时间子参数,即可以将20200101至20201231这一时间区间拆分成均等的10个时间子区间,也就是对日期按天拆解。然后将计算任务拆分成10个计算子任务,从而将复杂指标计算任务拆分成多个简单的计算子任务,主服务进程将计算子任务负载均衡地分发给各子计算进程,从而使得各子计算进程可以并行计算,显著降低复杂指标计算时间,从而提高指标计算速度。
在一个例子中,任务拆合进程401可以根据第二输入参数信息,得到执行目标指标对应的计算规则时需要的参数数据,该参数数据中可以包括:用户输入的可拆解参数以及可拆分的数量N。比如,用户界面上可以显示目标指标的若干可拆解参数,用户可以根据显示的若干可拆解参数选择一个作为任务拆合进程401进行计算任务拆分的依据。可拆分的数量N也可以为用户在用户界面输入的参数之一。也就是说,上述的第二输入参数信息中还可以包括:用户输入的可拆解参数以及可拆分的数量N,从而用户可以根据实际需要选择可拆解参数以及可拆分的数量N,极大的满足了用户的实际需求。
本实施例中的分布式处理系统中,指标管理模块通过根据客户端的需求(即使用该客户端的用户的需求)配置目标指标的权限信息,从而能够满足不同用户对不同目标指标的使用需求。通过获取包括第一标识信息、第一输入参数信息和输出信息的配置信息,能够针对每个目标指标实现对不同用户的不同需求信息的获取,从而能够满足不同用户对相同目标指标的差异化需求。根据不同客户端需要使用的目标指标的配置信息和权限信息进行渲染展示能够得到为不同客户端定制的用户界面,实现不同客户端的用户界面的定制化展示,以满足用户需求多样化。指标计算模块中包括若干个并行子计算进程,能够同时对多个计算任务并行计算,极大的提高了系统的处理速度。指标计算模块中的任务拆合进程可对计算任务进行拆解,再将拆分成的N个计算子任务并行计算,显著降低可拆合指标的指标结果的计算时间,从而进一步加快指标结果的计算速度。指标计算模块还对复杂的目标指标缓存计算过程中产生的中间结果,对于简单的目标指标缓存计算得到的指标结果,通过对不同复杂度的指标的计算结果针对性的采用各自适合的缓存方式,便于重复使用已经计算过的中间结果或是指标结果,从而有利于减少重复计算、加快运算速度。指标计算模块还能在进行指标计算时,直接从本地数据中存储的高频数据源中的数据快速读取到计算指标结果所需的目标数据,提高了高频率访问数据的读取速度,从而指标计算读取数据极快。由此可见,指标计算模块从并行子计算进程并行计算、任务拆合进程对可拆合指标的拆合、不同复杂度的目标指标的缓存方式、高频数据源中数据的访问方式等多个角度出发提供了强大的计算能力。并且调控模块只将通过验证的计算请求发送至指标计算模块,过滤去除参数数据输入错误或是不具有使用权限的计算请求,从而减少对指标计算模块的资源占用,提高整个系统的运算速度。三个模块协调工作紧密交互,独立工作互不影响,各自完成各自的功能,使得在大体量用户、大量计算请求的应用场景下依然能够有条不紊地快速执行计算,并在避免重复开发的情况下满足用户需求的多样化。
需要说明的是,本实施方式中的上述各示例均为为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
值得一提的是,本实施方式中所涉及到的模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明实施方式还涉及一种分布式数据处理方法,应用于服务器,该分布式数据处理方法的流程示意图可以参考图5,包括:
步骤501:预设目标指标的计算规则;
步骤502:根据计算规则获取目标指标的配置信息、根据客户端需求获取目标指标的权限信息,根据配置信息和权限信息进行渲染展示得到客户端的用户界面;
步骤503:接收客户端通过用户界面发起的对目标指标进行计算的计算请求,并根据目标指标的配置信息和权限信息对计算请求进行验证;
步骤504:在验证通过后根据计算请求,执行目标指标对应的计算规则得到目标指标的指标结果,并将指标结果返回至发起计算请求的客户端。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
不难发现,本实施方式为与上述分布式数据处理系统对应的分布式数据处理方法的实施方式,本实施方式可与涉及分布式数据处理系统的实施方式互相配合实施。涉及分布式数据处理系统的实施方式中提到的相关技术细节和技术效果在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述涉及分布式数据处理系统的实施方式中。
本发明实施方式还涉及一种服务器,如图6所示,包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述实施方式中的分布式数据处理方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本发明实施方式还涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (12)
1.一种分布式数据处理系统,其特征在于,包括:服务器和客户端,所述服务器包括:指标管理模块、指标计算模块和调控模块;
所述指标计算模块,用于预设目标指标的计算规则;其中,所述目标指标包括公用指标和私用指标;所述公用指标为具有统一计算规则的指标;所述私用指标为不具有统一计算规则的指标;
所述指标管理模块,用于根据所述计算规则获取所述目标指标的配置信息、根据客户端需求设置所述目标指标的权限信息,根据所述配置信息和所述权限信息进行渲染展示得到所述客户端的用户界面;
所述调控模块,用于接收所述客户端通过所述用户界面发起的对所述目标指标进行计算的计算请求,并根据所述目标指标的所述配置信息和所述权限信息对所述计算请求进行验证,在验证通过后将所述计算请求发送至所述指标计算模块;
所述指标计算模块,还用于根据所述计算请求,执行所述目标指标对应的所述计算规则得到所述目标指标的指标结果,并将所述指标结果发送至所述调控模块;
所述调控模块,还用于将从所述指标计算模块接收的所述指标结果返回至发起所述计算请求的客户端;
其中,所述配置信息包括:目标指标的第一标识信息、目标指标的第一输入参数信息、目标指标的输出信息;所述目标指标的第一标识信息为:标识目标指标的信息;所述目标指标的第一输入参数信息为:为执行目标指标对应的计算规则得到目标指标的所述指标结果时需要输入的参数信息;所述目标指标的输出信息为:执行目标指标对应的计算规则后输出的信息。
2.根据权利要求1所述的分布式数据处理系统,其特征在于,所述第一标识信息为根据所述目标指标的计算规则获取的用于标识所述目标指标的标识信息;所述计算请求中携带第二标识信息,所述第二标识信息为所述客户端通过所述用户界面发起所述计算请求时触发的用于标识所述目标指标的标识信息;
所述指标管理模块根据所述第一标识信息和所述权限信息进行渲染展示得到所述客户端的用户界面,所述用户界面至少显示有第一提示信息,所述第一提示信息用于对所述客户端通过所述用户界面发起所述计算请求时需要触发的所述目标指标进行提示,所述第一提示信息根据所述第一标识信息得到;
所述调控模块通过比较所述第一标识信息和所述第二标识信息确定所述计算请求对应的所述目标指标,根据所述目标指标获取所述客户端对所述目标指标的权限信息,根据所述客户端对所述目标指标的权限信息对所述计算请求进行验证;
所述指标计算模块根据所述第二标识信息,确定与所述第二标识信息对应的所述目标指标的所述计算规则,执行所述计算规则得到所述目标指标的指标结果。
3.根据权利要求1所述的分布式数据处理系统,其特征在于,所述第一输入参数信息为执行所述目标指标对应的所述计算规则得到所述目标指标的所述指标结果时需要输入的参数信息;所述计算请求中携带第二输入参数信息,所述第二输入参数信息通过所述用户界面获取;
所述指标管理模块根据所述第一输入参数信息和所述权限信息进行渲染展示得到所述客户端的用户界面,所述用户界面至少显示有第二提示信息,所述第二提示信息用于对所述客户端在发起所述计算请求时需要输入的参数信息进行提示,所述第二提示信息根据所述第一输入参数信息得到;
所述调控模块通过比较所述第一输入参数信息和所述第二输入参数信息,确定所述第一输入参数信息和所述第二输入参数信息是否匹配,根据匹配的结果对所述计算请求进行验证;
所述指标计算模块根据所述第二输入参数信息,得到执行所述目标指标对应的所述计算规则时需要的参数数据,根据所述计算规则和所述参数数据进行计算得到所述指标结果。
4.根据权利要求1所述的分布式数据处理系统,其特征在于,所述指标计算模块,具体用于根据所述计算请求,执行所述目标指标对应的所述计算规则,得到符合所述目标指标的输出信息的所述指标结果,将所述指标结果按照所述输出信息发送至所述调控模块;
所述发起所述计算请求的客户端,用于在接收到所述调控模块发送的符合所述目标指标的输出信息的所述指标结果之后,根据所述输出信息将所述指标结果在所述用户界面显示。
5.根据权利要求4所述的分布式数据处理系统,其特征在于,所述输出信息包括以下任意之一:
单维返回值信息、多维返回值信息和模型返回值信息;所述单维返回值信息用于表征所述指标计算模块计算指标结果时输出为单维形式,所述多维返回值信息用于表征所述指标计算模块计算指标结果时输出为多维形式,所述模型返回值信息用于表征所述指标计算模块计算指标结果时输出为非固定形式。
6.根据权利要求1所述的分布式数据处理系统,其特征在于,所述配置信息包括:所述目标指标对应的缓存类型,所述缓存类型包括第一类缓存类型、第二类缓存类型,所述第二类缓存类型对应的所述目标指标的复杂度大于所述第一类缓存类型对应的所述目标指标的复杂度;
所述指标计算模块在确定所述目标指标对应的缓存类型为所述第一类缓存类型时,还用于对所述目标指标的指标结果进行缓存,以供所述指标计算模块再次从所述调控模块接收到对所述目标指标的计算请求时获取缓存的所述指标结果;
所述指标计算模块在确定所述目标指标对应的缓存类型为所述第二类缓存类型时,还用于对计算所述指标结果的过程中产生的中间结果进行缓存,以供所述指标计算模块再次从所述调控模块接收到对所述目标指标的计算请求时,根据缓存的所述中间结果计算所述目标指标的指标结果。
7.根据权利要求1所述的分布式数据处理系统,其特征在于,所述目标指标对应的所述计算规则包括目标数据源和计算逻辑,所述指标计算模块从所述目标数据源中获取计算所述指标结果所需的目标数据,根据所述计算逻辑对所述目标数据进行计算得到所述指标结果;
所述指标计算模块,还用于根据来自若干客户端的历史计算请求,确定访问频次大于预设频次阈值的高频数据源,将所述高频数据源中的数据抽取到所述服务器中的本地数据库,以使得所述指标计算模块在获取的所述目标指标对应的目标数据源为所述高频数据源时,直接从所述本地数据库中读取所述目标数据。
8.根据权利要求1至7中任一项所述的分布式数据处理系统,其特征在于,所述指标计算模块包括:主服务进程、通信进程、计算进程、监控进程,所述计算进程包括若干并行子计算进程;
所述通信进程,用于接收所述计算请求,并将所述计算请求发送至所述主服务进程;
所述监控进程,用于对所述若干并行子计算进程进行监控,并将监控结果发送至所述主服务进程;
所述主服务进程,用于根据所述监控结果确定目标子计算进程,并将所述计算请求发送至所述目标子计算进程;
所述目标子计算进程,用于根据所述计算请求,执行所述目标指标对应的所述计算规则得到所述目标指标的指标结果,并将所述指标结果发送至所述主服务进程;
所述主服务进程,还用于将所述指标结果发送至所述通信进程;
所述通信进程,还用于接收所述主服务进程发送的所述指标结果,并将所述指标结果
返回至发起所述计算请求的客户端。
9.根据权利要求8所述的分布式数据处理系统,其特征在于,所述指标计算模块还包括:任务拆合进程,若所述计算请求携带用于表征所述目标指标为可拆合指标的标识信息,则所述主服务进程,还用于将所述计算请求发送至所述任务拆合进程;
所述任务拆合进程,用于根据所述目标指标对应的可拆解参数,将所述可拆解参数拆解为N个不相关的子参数,根据所述N个不相关的子参数将所述计算请求所标识的计算任务拆分成N个计算子任务,并将所述N个计算子任务发送至所述主服务进程,所述N为大于1的整数;
所述主服务进程,还用于根据所述监控结果确定N个目标子计算进程,并分别将所述N个计算子任务分发至所述N个目标子计算进程;
所述N个目标子计算进程,用于并行执行所述N个计算子任务得到N个计算结果,并将所述N个计算结果发送至所述主服务进程;
所述主服务进程,还用于将所述N个计算结果返回至所述任务拆合进程;
所述任务拆合进程,用于将所述N个计算结果进行合并得到所述指标结果,并将所述指标结果发送至所述主服务进程。
10.一种分布式数据处理方法,其特征在于,应用于服务器,包括:
预设目标指标的计算规则;其中,所述目标指标包括公用指标和私用指标;所述公用指标为具有统一计算规则的指标;所述私用指标为不具有统一计算规则的指标;
根据所述计算规则获取所述目标指标的配置信息、根据客户端需求获取所述目标指标的权限信息,根据所述配置信息和所述权限信息进行渲染展示得到所述客户端的用户界面;其中,所述配置信息包括:目标指标的第一标识信息、目标指标的第一输入参数信息、目标指标的输出信息;所述目标指标的第一标识信息为:标识目标指标的信息;所述目标指标的第一输入参数信息为:为执行目标指标对应的计算规则得到目标指标的指标结果时需要输入的参数信息;所述目标指标的输出信息为:执行目标指标对应的计算规则后输出的信息;
接收所述客户端通过所述用户界面发起的对所述目标指标进行计算的计算请求,并根据所述目标指标的所述配置信息和所述权限信息对所述计算请求进行验证;
在验证通过后根据所述计算请求,执行所述目标指标对应的所述计算规则得到所述目标指标的指标结果,并将所述指标结果返回至发起所述计算请求的客户端。
11.一种服务器,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求10所述的分布式数据处理方法。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求10所述的分布式数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310906911.XA CN117193956A (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
CN202110791860.1A CN113672361B (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110791860.1A CN113672361B (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310906911.XA Division CN117193956A (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672361A CN113672361A (zh) | 2021-11-19 |
CN113672361B true CN113672361B (zh) | 2023-06-16 |
Family
ID=78539083
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310906911.XA Pending CN117193956A (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
CN202110791860.1A Active CN113672361B (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310906911.XA Pending CN117193956A (zh) | 2021-07-13 | 2021-07-13 | 分布式数据处理系统、方法、服务器和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117193956A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116826A (zh) * | 2022-01-26 | 2022-03-01 | 树根互联股份有限公司 | 物联网设备工况的指标计算系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111478967A (zh) * | 2020-04-08 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 一种请求处理方法及装置 |
CN112231168A (zh) * | 2020-09-03 | 2021-01-15 | 平安信托有限责任公司 | 微服务器管控方法、装置、设备及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2012149360A (ru) * | 2012-11-20 | 2014-05-27 | Айконто Лимитед | Система и способ продажи товаров и услуг с компенсацией затрат покупателей |
CN103927607A (zh) * | 2013-01-15 | 2014-07-16 | 杭州新世纪电子科技有限公司 | 数据处理方法及装置 |
JP6109631B2 (ja) * | 2013-04-22 | 2017-04-05 | 一般社団法人仙台グリーン・コミュニティ推進協議会 | 情報処理システム |
CN106096870A (zh) * | 2016-07-21 | 2016-11-09 | 杭州迪脉信息科技有限公司 | 一种绩效数据处理方法和装置 |
JP6998724B2 (ja) * | 2017-10-16 | 2022-01-18 | 株式会社Nttドコモ | 無線通信システムの評価装置 |
CN108492012A (zh) * | 2018-03-09 | 2018-09-04 | 广州天维信息技术股份有限公司 | 一种绩效考核指标计算方法和系统 |
CN108875048B (zh) * | 2018-06-27 | 2020-12-25 | 中国建设银行股份有限公司 | 报表生成方法、装置、电子设备及可读存储介质 |
CN109597842A (zh) * | 2018-12-14 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 数据实时计算方法、装置、设备及计算机可读存储介质 |
CN110175679A (zh) * | 2019-05-29 | 2019-08-27 | 深圳前海微众银行股份有限公司 | 一种监控模型训练的方法及装置 |
CN110765157B (zh) * | 2019-09-06 | 2024-02-02 | 中国平安财产保险股份有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
CN110647549A (zh) * | 2019-09-29 | 2020-01-03 | 北京卓信智恒数据科技股份有限公司 | 基于业务动态建模的数据指标解析与执行方法和装置 |
CN111881148A (zh) * | 2020-06-18 | 2020-11-03 | 北京三快在线科技有限公司 | 对象组合的属性确定方法、装置、电子设备 |
CN111930783A (zh) * | 2020-07-09 | 2020-11-13 | 北京皮尔布莱尼软件有限公司 | 监控方法、监控系统及计算设备 |
CN112394922B (zh) * | 2020-12-02 | 2022-02-22 | 成都新希望金融信息有限公司 | 决策配置方法、业务决策方法和决策引擎系统 |
-
2021
- 2021-07-13 CN CN202310906911.XA patent/CN117193956A/zh active Pending
- 2021-07-13 CN CN202110791860.1A patent/CN113672361B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111478967A (zh) * | 2020-04-08 | 2020-07-31 | 北京字节跳动网络技术有限公司 | 一种请求处理方法及装置 |
CN112231168A (zh) * | 2020-09-03 | 2021-01-15 | 平安信托有限责任公司 | 微服务器管控方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117193956A (zh) | 2023-12-08 |
CN113672361A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997142B2 (en) | Cognitive blockchain automation and management | |
US20210133163A1 (en) | Compilable Data Model | |
US10007682B2 (en) | Dynamically maintaining data structures driven by heterogeneous clients in a distributed data collection system | |
CN111199379A (zh) | 工作流引擎的审批方法、审批设备及存储介质 | |
US20210250306A1 (en) | Providing on-demand production of graph-based relationships in a cloud computing environment | |
CN110852559A (zh) | 资源的分配方法和装置、存储介质、电子装置 | |
CN113672361B (zh) | 分布式数据处理系统、方法、服务器和可读存储介质 | |
CN113011907A (zh) | 数据处理方法、装置、存储介质及设备 | |
CN112102099B (zh) | 保单数据处理方法、装置、电子设备及存储介质 | |
US20220044144A1 (en) | Real time model cascades and derived feature hierarchy | |
US20160170802A1 (en) | Optimizing system performance | |
CN112579632A (zh) | 一种数据核验方法、装置、设备和介质 | |
CN112163948A (zh) | 一种分润计算方法、系统、设备及存储介质 | |
CN115480843A (zh) | 业务处理方法、装置、电子设备及非易失性存储介质 | |
CN112131257B (zh) | 数据查询方法和装置 | |
US20140337382A1 (en) | System and method for remote data harmonization | |
CN113240266A (zh) | 一种风险管理方法和装置 | |
CN114048225A (zh) | 数据监控方法、装置及计算机设备 | |
CN114610803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
US10003492B2 (en) | Systems and methods for managing data related to network elements from multiple sources | |
US20170052998A1 (en) | System and method for efficient database transactions | |
US20200177477A1 (en) | Value optimization with intelligent service enablements | |
CN112995306B (zh) | 一种基于storm的实时账务信息处理方法及系统 | |
KR20210050827A (ko) | 클라우드 기반 분산 딥러닝 정보 분석관리를 이용한 객체추출 시스템 및 방법 | |
CN117009327B (zh) | 一种数据处理方法、装置及计算机设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |