CN117472937A - 批次变量计算方法、装置、设备及计算机可读存储介质 - Google Patents

批次变量计算方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN117472937A
CN117472937A CN202311477294.2A CN202311477294A CN117472937A CN 117472937 A CN117472937 A CN 117472937A CN 202311477294 A CN202311477294 A CN 202311477294A CN 117472937 A CN117472937 A CN 117472937A
Authority
CN
China
Prior art keywords
batch
variable
batch variable
calculation
variables
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.)
Pending
Application number
CN202311477294.2A
Other languages
English (en)
Inventor
周世旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Merchants Bank Co Ltd
Original Assignee
China Merchants Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Merchants Bank Co Ltd filed Critical China Merchants Bank Co Ltd
Priority to CN202311477294.2A priority Critical patent/CN117472937A/zh
Publication of CN117472937A publication Critical patent/CN117472937A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种批次变量计算方法、装置、设备及计算机可读存储介质,属于数据处理技术领域,该批次变量计算方法应用于采用SQL语言的数据库管理系统,该方法包括:获取用户在可视化定义窗口定义的待计算的批次变量以及批次变量对应的SQL查询信息;基于SQL查询信息确定批次变量的基础数据和计算规则;按照批次变量的计算规则对批次变量的基础数据进行处理,得到批次变量的计算结果。本申请提供一种批次变量计算策略,以提升批次变量的计算效率。

Description

批次变量计算方法、装置、设备及计算机可读存储介质
技术领域
本申请属于数据处理技术领域,尤其涉及一种批次变量计算方法、装置、设备及计算机可读存储介质。
背景技术
随着科技的不断发展,特征变量的计算对于个人信用风险评估、风险管理、投资组合管理和反欺诈等业务来说,已经成为至关重要的一环。
目前,由于长时间窗口(时间窗口为一个时间段)特征变量的计算所需的数据量机器庞大,所以在计算此类特征变量时通常采用批流结合的方式,然而传统使用Hive(Hive是一个数据仓库工具,用于进行数据查询、数据分析以及数据存储)计算批次变量的方式需要人工对变量时间窗口进行拆分并开发Hive作业,这不仅对开发人员的开发能力要求较高,而且导致了批次变量计算流程繁琐、耗时长,存在计算效率低的问题。
综上,如何提供一种批次变量计算策略,以提升批次变量的计算效率,已经成为数据处理技术领域亟待解决的技术问题。
发明内容
本申请的主要目的在于提供一种批次变量计算方法、装置、设备及计算机可读存储介质。旨在提升批次变量的计算效率。
为了实现上述目的,本申请提供一种批次变量计算方法,所述批次变量计算方法应用于采用SQL语言的数据库管理系统,所述批次变量计算方法包括以下步骤:
获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息;
基于所述SQL查询信息确定所述批次变量的基础数据和计算规则;
按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
可选地,所述基于所述SQL查询信息确定所述批次变量的基础数据和计算规则的步骤,包括:
解析所述SQL查询信息得到所述批次变量的存储源表、查询条件、查询字段和计算规则;
基于所述批次变量的查询条件和查询字段,从所述批次变量的存储源表中确定所述批次变量的基础数据。
可选地,所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果步骤之前,所述方法还包括:
基于多个所述批次变量各自的合并依据生成计算任务,并在预设触发时刻将所述计算任务加入至待执行队列;
触发所述待执行队列中的计算任务,并执行所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤。
可选地,所述计算任务包括第一计算任务和/或者第二计算任务,所述基于多个所述批次变量各自的合并依据生成计算任务的步骤,包括:
判断各所述批次变量各自的合并依据是否相同;
将各所述批次变量中合并依据相同的第一批次变量合并生成所述第一计算任务;
将各所述批次变量中除所述第一批次变量之外的第二批次变量单独生成所述第二计算任务。
可选地,所述判断各所述批次变量各自的合并依据是否相同的步骤,包括:
若第三批次变量的存储源表和第四批次变量的存储源表相同,且,第三批次变量的查询条件和第四批次变量的查询条件相同,且,第三批次变量的计算规则和第四批次变量的合并依据相同,则确定所述第三批次变量和所述第四批次变量的合并依据相同,其中,所述第三批次变量和所述第四批次变量为多个所述批次变量中的任意两个。
可选地,所述数据库管理系统包括至少一个消费者,所述消费所述待执行队列中的所述计算任务的步骤之前,所述方法还包括:
从所述消费者中确定空闲消费者,并通过所述空闲消费者拉取所述待执行队列中的计算任务,其中,一个空闲消费者单次拉取一个计算任务;
通过所述空闲消费者从预设的令牌桶中获取限流令牌,并在获取到所述限流令牌后,执行所述触发所述待执行队列中的计算任务的步骤。
可选地,所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤之后,所述方法还包括:
生成包含所述批次变量的计算结果的文件;
获取所述用户在所述可视化定义窗口定义的目标格式;
将所述文件转化为所述目标格式的目标文件,并将所述目标文件加入至待入库队列,以供其他中间件或者所述数据库管理系统消费。
此外,为实现上述目的,本申请还提供一种批次变量计算装置,所述批次变量计算装置应用于采用SQL语言的数据库管理系统,所述批次变量计算方法包括以下步骤:
获取模块,用于获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息;
确定模块,用于基于所述SQL查询信息确定所述批次变量的基础数据和计算规则;
计算模块,用于按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
此外,为实现上述目的,本申请还提供一种批次变量计算设备,所述批次变量计算设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的批次变量计算程序,所述批次变量计算设备的批次变量计算程序被所述处理器执行时实现如上所述的批次变量计算方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有批次变量计算程序,所述批次变量计算程序被处理器执行时实现如上所述的批次变量计算方法的步骤。
本申请实施例应用于采用SQL语言的数据库管理系统,该数据库管理系统采用SQL语言,本申请实施例通过获取用户在可视化定义窗口定义的待计算的批次变量以及该批次变量对应的SQL(Structured Query Language,结构化查询语言)查询信息,基于该SQL查询信息确定计算该批次变量需要的基础数据和计算该批次变量使用的计算规则,按照该计算规则对基础数据进行处理,得到批次变量的计算结果。如此,相比于传统使用Hive计算批次变量的方式,本申请应用于采用SQL语言的数据库管理系统,并提供可视化定义窗口给用户输入批次变量和批次变量的SQL语言,由于SQL语言应用广泛,可操作性强,所以降低了对开发人员开发能力的要求,而且在得到用户定义的SQL查询信息后,可以基于SQL查询信息确定参与本次批次变量计算的基础数据以及计算规则,然后按照计算规则对基础数据进行处理,就可以得到批次变量的计算结果,减少了人工拆分变量时间窗口以及开发批次变量计算作业的开销,从而提升了批次变量的计算效率。
附图说明
图1是本申请实施例方案涉及的批次变量计算设备硬件运行环境的设备结构示意图;
图2为本申请批次变量计算方法第一实施例的步骤流程示意图;
图3为本申请批次变量计算方法的一实施例所涉及的批次变量定义场景图;
图4为本申请批次变量计算方法的一实施例所涉及的合并流程示意图;
图5为本申请批次变量计算方法的一实施例所涉及的限流流程示意图;
图6为本申请批次变量计算方法的一实施例所涉及的批次变量计算流程示意图;
图7为本申请批次变量计算装置一实施例的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请实施例方案涉及批次变量计算设备的硬件运行环境的设备结构示意图。
需要说明的是,本申请实施例涉及数据处理技术领域集成有数据库管理系统的批次变量计算设备,该数据库管理系统采用SQL语言。具体地,该批次变量计算设备可以是智能手机、PC(PerSonal Computer,个人计算机)、平板电脑、便携计算机等等。
如图1所示,该批次变量计算设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(DiSplay)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。以下为便于描述,省略各实施例中方法步骤的执行主体。
本领域技术人员可以理解,图1中示出的批次变量计算设备结构并不构成对批次变量计算设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及批次变量计算程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的批次变量计算程序,并执行如下操作:
获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息;
基于所述SQL查询信息确定所述批次变量的基础数据和计算规则;
按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
进一步地,所述基于所述SQL查询信息确定所述批次变量的基础数据和计算规则的操作包括:
解析所述SQL查询信息得到所述批次变量的存储源表、查询条件、查询字段和计算规则;
基于所述批次变量的查询条件和查询字段,从所述批次变量的存储源表中确定所述批次变量的基础数据。
进一步地,所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果步骤之前,处理器1001还可以用于调用存储器1005中存储的批次变量计算程序,执行以下操作:
基于多个所述批次变量各自的合并依据生成计算任务,并在预设触发时刻将所述计算任务加入至待执行队列;
触发所述待执行队列中的计算任务,并执行所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤。
进一步地,所述计算任务包括第一计算任务和/或者第二计算任务,所述基于多个所述批次变量各自的合并依据生成计算任务的操作包括:
判断各所述批次变量各自的合并依据是否相同;
将各所述批次变量中合并依据相同的第一批次变量合并生成所述第一计算任务;
将各所述批次变量中除所述第一批次变量之外的第二批次变量单独生成所述第二计算任务。
进一步地,所述判断各所述批次变量各自的合并依据是否相同的操作包括:
若第三批次变量的存储源表和第四批次变量的存储源表相同,且,第三批次变量的查询条件和第四批次变量的查询条件相同,且,第三批次变量的计算规则和第四批次变量的合并依据相同,则确定所述第三批次变量和所述第四批次变量的合并依据相同,其中,所述第三批次变量和所述第四批次变量为多个所述批次变量中的任意两个。
进一步地,所述数据库管理系统包括至少一个消费者,所述消费所述待执行队列中的所述计算任务的步骤之前,处理器1001还可以用于调用存储器1005中存储的批次变量计算程序,执行以下操作:
从所述消费者中确定空闲消费者,并通过所述空闲消费者拉取所述待执行队列中的计算任务,其中,一个空闲消费者单次拉取一个计算任务;
通过所述空闲消费者从预设的令牌桶中获取限流令牌,并在获取到所述限流令牌后,执行所述触发所述待执行队列中的计算任务的步骤。
进一步地,所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤之后,处理器1001还可以用于调用存储器1005中存储的批次变量计算程序,执行以下操作:
生成包含所述批次变量的计算结果的文件;
获取所述用户在所述可视化定义窗口定义的目标格式;
将所述文件转化为所述目标格式的目标文件,并将所述目标文件加入至待入库队列,以供其他中间件或者所述数据库管理系统消费。
基于上述的结构,提出批次变量计算方法的各个实施例。
请参照图2,图2为本申请批次变量计算方法第一实施例的流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,本申请批次变量计算方法当然也可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,批次变量计算方法的执行主体可以是个人电脑、智能手机等设备,在本实施例中并不做限制。所述批次变量计算方法包括S10~S30:
步骤S10,获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息。
本申请提供一种批次变量的计算方法,使用Clickhouse替换Hive计算批次变量,即上述数据库管理系统为Clickhouse,其中,Clickhouse是用于在线分析处理查询的列式存储数据库,可以使用SQL查询实时生成分析数据报告。本申请通过使用ClickHouse替代Hive计算批次变量的方案,并且批次变量的定义全部通过可视化界面定义,不需要额外开发代码,解决了批次变量定义复杂,开发上线过程耗时久的问题。其中,需要说明的是,上述批次变量指的是同批计算的各特征变量中的任意一个特征变量,该特征变量的属性为批次。
在本实施例中,开发人员预先开发了可视化配置界面,以供用户在该可视化配置界面直接定义计算批次变量的相关要素,具体的,首先,用户需要在界面上定义批次变量,系统根据配置自动生成批次变量计算任务。批次变量定义包括批次变量场景定义、批次变量计算逻辑定义、批次变量时间窗口长度定义、批次变量格式转换定义和批次变量输出定义。批次变量场景定义:不同批次变量分属于不同场景,如手机银行登录、转账、绑卡等场景,选择场景后,批次变量计算结果可以供该场景的模型、规则等进行使用;批次变量计算逻辑定义:通过SQL定义批次变量的计算逻辑,支持复杂批次变量逻辑加工;批次变量时间窗口长度定义:定义批次变量的时间窗口长度,系统根据时间窗口做数据筛选,示例性地,如图3所示为批次变量定义场景图,包括各类定义各自对应的输入框,分别为场景定义的输入框1,计算逻辑对应的输入框2,时间窗口长度对应的输入框3,格式转换对应的输入框4(用于填入目标格式),输出方式对应的输入框5。在一可行实施方式中,时间窗口为最近一个月,那么筛选出最近一个月的数据;批次变量格式转换定义:通过可视化界面拖拉拽方式对SQL计算结果格式转换进行配置;批次变量输出定义:支持多方式的批次变量计算结果数据输出,包含Redis、Kafka、ElasticSearch等数据库,可以按需将批次变量计算的结果数据提供给下游使用。
可视化窗口就是用户在上述可视化界面对批次变量进行定义的输入框,在用户完成上述各项定义之后,从可视化定义窗口获取用户定义的待计算的批次变量和该批次变量的SQL查询信息。其中,需要说明的是,在确定批次变量的应用场景、计算逻辑、时间窗口长度(时间窗口长度在定义计算逻辑时定义,也可以单独定义)、要转换成的格式和输出方式之后,就可以确定待计算的特征变量,而上述SQL查询信息主要包括计算逻辑和时间窗口长度,计算逻辑中包含用于计算当前批次变量的基础数据所在的源表、基础数据的条件字段、查询字段和批次变量的计算规则,另外,用户定义的时间窗口长度和基础数据的条件字段均属于查询条件。示例性地,若当前批次变量对应的SQL查询信息中,源表为源表1,条件字段为用户A的银行卡号,查询字段为转账金额,那么可以筛选出源表1中上述银行卡号对应的转账金额数据,还需要结合用户定义的时间窗口长度,若时间窗口长度为最近一星期,那么从上述转账金额数据中筛选出交易时间属于最近一星期的转账金额数据。
步骤S20,基于所述SQL查询信息确定所述批次变量的基础数据和计算规则。
在本实施例中,在获取到当前批次变量的SQL查询信息之后,基于该SQL查询信息确定用于计算批次变量的基础数据和计算规则。
在一可行实施方式中,所述步骤S20包括步骤S201~S202:
步骤S201,解析所述SQL查询信息得到所述批次变量的存储源表、查询条件、查询字段和计算规则。
在本实施例中,解析从可视化定义窗口获取到的SQL查询信息,解析该SQL查询信息,得到用户定义的当前批次变量的存储源表(即上述源表)、查询条件(即上述条件字段和时间窗口长度)和计算规则。
步骤S202,基于所述批次变量的查询条件和查询字段,从所述批次变量的存储源表中确定所述批次变量的基础数据。
在本实施例中,按照批次变量的查询条件和查询字段从存储源表中筛选数据,得到用于当前批次变量计算的基础数据。
步骤S30,按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
在本实施例中,在得到批次变量的计算规则和基础数据之后,按照该计算规则对基础数据进行处理,得到当前批次变量的计算结果。
在具体实施方式中,在确定基础数据为用户A在最近一星期内完成的转账金额数据,以及计算规则为求和之后,按照该计算规则将所有转账金额数据相加,得到的总和就是当前批次变量的计算结果。需要说明的是,在此情况下,批次变量为转账金额,批次变量的计算结果为具体的总和数值。
如此,本申请通过获取用户在可视化定义窗口定义的待计算的批次变量以及该批次变量对应的SQL(Structured Query Language,结构化查询语言)查询信息,基于该SQL查询信息确定计算该批次变量需要的基础数据和计算该批次变量使用的计算规则,按照该计算规则对基础数据进行处理,得到批次变量的计算结果。如此,相比于传统使用Hive计算批次变量的方式,本申请应用于采用SQL语言的数据库管理系统,并提供可视化定义窗口给用户输入批次变量和批次变量的SQL语言,由于SQL语言应用广泛,可操作性强,所以降低了对开发人员开发能力的要求,而且在得到用户定义的SQL查询信息后,可以基于SQL查询信息确定参与本次批次变量计算的基础数据以及计算规则,然后按照计算规则对基础数据进行处理,就可以得到批次变量的计算结果,减少了人工拆分变量时间窗口以及开发批次变量计算作业的开销,从而提升了批次变量的计算效率。
进一步地,基于上述本申请批次变量计算方法的第一实施例,提出本申请批次变量计算方法的第二实施例。
在本实施例中,所述步骤S30之前,还包括步骤A10~A20:
步骤A10,基于多个所述批次变量各自的合并依据生成计算任务,并在预设触发时刻将所述计算任务加入至待执行队列。
批次变量的合并依据为存储源表、查询条件和计算规则。预先根据实际需求设置触发任务调度的时间,即上述预设触发时刻,具体的,在该预设触发时刻开始计算任务的调度。
在本实施例中,基于多个批次变量各自的合并依据生成计算任务,并在预设触发时刻将计算任务加入至待执行队列。其中,该待执行队列为消息队列。
在具体实施方式中,本申请使用Quartz做定时调度框架,到达批次变量的预定触发时间后,触发任务调度。由于ClickHouse不能支持高并发的使用场景,所以为了保护Clickhouse,本申请提出基于RabbitMQ(Message Queue,消息队列)+Redission实现分布式限流方案,具体的,当Quartz触发批次变量调度后,该任务会进入RabbitMQ队列中排队等待。其中,RabbitMQ是使用Erlang语言开发的开源消息队列系统,Redission是一个可重入锁,它可以在分布式系统中用于实现互斥锁。
在一可行的实施方式中,所述计算任务包括第一计算任务和/或者第二计算任务,所述步骤A10包括步骤A101~A103:
步骤A101,判断各所述批次变量各自的合并依据是否相同。
在本实施例中,在预设触发时刻之前,用户可以在可视化界面定义多个批次变量,数据库管理系统在获取到多个批次变量各自的SQL查询信息之后,可以从SQL查询信息中提取合并依据,然后得到多个批次变量各自的合并依据,并判断多个合并依据中是否存在相同的合并依据。
在一可行实施方式中,所述步骤A101包括步骤A1011:
步骤A1011,若第三批次变量的存储源表和第四批次变量的存储源表相同,且,第三批次变量的查询条件和第四批次变量的查询条件相同,且,第三批次变量的计算规则和第四批次变量的合并依据相同,则确定所述第三批次变量和所述第四批次变量的合并依据相同,其中,所述第三批次变量和所述第四批次变量为多个所述批次变量中的任意两个。
将多个批次变量中的任意两个批次变量分别称为第三批次变量和第四批次变量,若要判断第三批次变量和第四批次变量的合并依据是否相同,那么需要先确定第三批次变量的存储源表(以下称为第一存储源表以示区分)、查询条件(以下称为第一查询条件以示区分)和计算规则(以下称为第一计算规则以示区分),同时确定第四批次变量的存储源表(以下称为第二存储源表以示区分)、查询条件(以下称为第二查询条件以示区分)和计算规则(以下称为第二计算规则以示区分),若第一存储源表和第二存储源表相同,且,第一查询条件和第二查询条件相同,且,第一计算规则和第二计算规则相同,则可以确定第三批次变量和第四批次变量的合并依据相同。
步骤A102,将各所述批次变量中合并依据相同的第一批次变量合并生成所述第一计算任务。
在本实施例中,将各批次变量中合并依据相同的批次变量(以下称为第一批次变量以示区分)合并,生成计算任务(以下称为第一计算任务以示区分)。
在具体实施方式中,若在预设触发时刻之前,数据库管理系统获取到了5个待计算的批次变量,分别为批次变量1、批次变量2、批次变量3、批次变量4和批次变量5,其中,批次变量1和批次变量2的合并依据相同,批次变量3和批次变量4的合并依据相同,那么,将批次变量1和批次变量2合并生成一个计算任务,将批次变量3和批次变量4合并生成一个计算任务,在对包含了至少2个批次变量的计算任务进行计算时,按照相同的计算规则对不同的基础数据(即两个批次变量的查询字段不同,比如交易次数和交易金额)进行计算,得到两个独立的计算结果。
步骤A103,将各所述批次变量中除所述第一批次变量之外的第二批次变量单独生成所述第二计算任务。
在本实施例中,将各批次变量中除上述第一批次变量之外的批次变量(以下称为第二批次变量以示区分),单独生成计算任务(以下称为第二计算任务以示区分),也就是说,第二计算任务中只含一个批次变量。
在具体实施方式中,如图4所示为合并流程示意图,用户在可视化界面输入SQL语句,定义待计算的批次变量,然后对用户输入的SQL语句进行源表解析、查询条件解析和查询字段解析,从而自动检测出可合并计算的批次变量,人工确认SQL合并结果,将基于合并后的SQL生成计算任务,将未与其他批次变量合并的SQL生成计算任务。从而将合并依据相同的特征变量合并在一个计算任务中进行计算,加快计算速率。
步骤A20,触发所述待执行队列中的计算任务,并执行所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤。
在本实施例中,通过消费待执行队列中的计算任务,并执行该计算任务,即按照计算任务中批次变量的计算规则对批次变量的基础数据进行处理,得到批次变量的计算结果。
如此,通过对SQL查询信息进行解析,自动检测出合并依据相同的批次变量,并对这样的批次变量进行了合并计算,从而加快了批次变量的计算速度。
进一步地,基于上述本申请批次变量计算方法的第一实施例和/或者第二实施例,提出本申请批次变量计算方法的第三实施例。
在本实施例中,所述数据库管理系统包括至少一个消费者,所述步骤A20之前,还包括步骤B10~B20:
步骤B10,从所述消费者中确定空闲消费者,并通过所述空闲消费者拉取所述待执行队列中的计算任务,其中,一个空闲消费者单次拉取一个计算任务。
上述消费者指具体的客户端,该数据库管理系统包括至少一个客户端,每个客户端同时只能执行一个计算任务,多个客户端可以同时执行不同的计算任务。空闲消费者指的是没有计算任务的客户端。
在本实施例中,从多个消费者中确定空闲消费者,并通过空闲消费者拉取待执行队列中的计算任务。
步骤B20,通过所述空闲消费者从预设的令牌桶中获取限流令牌,并在获取到所述限流令牌后,执行所述触发所述待执行队列中的计算任务的步骤。
令牌桶是一种常用的流量控制技术,令牌桶本身没有丢弃和优先级策略。本申请使用Redission循环从令牌桶中获取限流令牌。
在本实施例中,当空闲消费者拉取到待执行队列中的计算任务之后,从预设的令牌桶中获取限流令牌,并在获取到限流令牌之后,触发待执行队列中的计算任务,即计算批次变量的计算结果。
在具体实施方式中,计算任务进入RabbitMQ队列中排队,等待空闲消费者拉取。当有空闲消费者从RabbitMQ中拉取到任务后,使用Redission循环获取限流令牌,直至获取令牌成功后再触发批次变量计算。如图5所示为限流流程示意图,在预设触发时刻,批次变量的计算任务被触发,将各计算任务加入至RabbitMQ队列中排队等待,在空闲消费者从RabbitMQ队列中拉取消息时,判断是否使用Redission获取到限流令牌,若是,则由Clickhouse计算变量,若否,则继续获取限流令牌,直到获取成功。
本申请使用了RabbitMQ+Redission的限流策略,当批次变量计算任务触发后,会进入RabbitMQ排队并等待Redission限流令牌,当二者同时满足时才进行后续处理步骤,解决ClickHouse不支持高并发计算的问题,实现了对Clickhouse的保护。
进一步地,基于上述本申请批次变量计算方法的第一实施例和/或者第二实施例和/或者第三实施例,提出本申请批次变量计算方法的第四实施例。
在本实施例中,在上述步骤S30之后,还包括步骤C10~C30:
步骤C10,生成包含所述批次变量的计算结果的文件。
在本实施例中,在得到批次变量计算结果之后,以文件的形式导出。
步骤C20,获取所述用户在所述可视化定义窗口定义的目标格式。
在本实施例中,获取用户在可视化定义窗口定义的目标格式,其中,该目标格式为下游数据库对计算结果要求的格式,即用户对批次变量格式转换的定义。
步骤C30,将所述文件转化为所述目标格式的目标文件,并将所述目标文件加入至待入库队列,以供其他中间件或者所述数据库管理系统消费。
在本实施例中,基于目标格式对文件进行转换,得到目标文件,并将目标文件加入至待入库队列,以供其他中间件或者数据库管理系统消费队列中的目标文件。
在一可行实施方式中,可以为每一个需要使用该目标文件的中间件创建一个独立的队列,即每一个中间件可以消费各自队列中的消息;在另一可行实施方式中,消费队列通常支持多重订阅,即多个中间件可以订阅相同的队列,每个订阅者可以独立消费消息并进行相应的处理;在另一可行实施方式中,还可以使用发布-订阅模型,即将目标文件发布到一个中央的消息队列,订阅者可以订阅他们感兴趣的消息,并将消息路由到相应的中间件,这种方式使得目标文件可以共享。
示例性地,通过代码调用ClickHouse命令行客户端执行SQL计算批次变量,将SQL执行结果以文件的形式导出并上传至对象存储。通过Groovy对文件进行数据转换,将文件内容转成所需的格式,并将转换后的内容直接输出到其他中间件(Redis、Kafka、ElasticSearch等)
在具体实施方式中,如图6所示为批次变量计算流程示意图,创建可视化界面,以供用户在可视化界面定义批次变量;自动检测定义好的批次变量是否可以合并,将可以合并的批次变量合并计算;在预设触发时刻触发计算调度并限流,然后依次对批次变量进行计算,得到计算结果;根据用户定义的目标格式对计算结果进行格式转换,然后输出至其他中间件以供后续使用。
一般而言,批次变量计算结果需要入库到其他中间件中(如Redis、Kafka、ElasticSearch等)来对外提供查询,但是Hive只能将批次变量计算结果导出成为文件,文件还需再次加工处理后导入。但是,本申请通过可视化界面编写Groovy代码来定义批次变量的数据转换逻辑,批次变量计算完成后直接入库到其他数据中间件中,解决批次变量计算结果需要进行二次加工转换入库的问题。另外,传统Hive数据入库大多都是T+1入库,当天数据需要隔天才能够在Hive中使用,用数耗时较久,导致批次变量只能计算1天前的数据,时效性差,而本申请通过将计算结果数据存放至待入库队列中,数据库管理系统可以随时消费队列中的消息,时效性高。
此外,本申请实施例还提供一种批次变量计算装置,批次变量计算装置应用于采用SQL语言的数据库管理系统。
请参照图7,图7为本申请批次变量计算装置一实施例的功能模块示意图,如图7所示,本申请批次变量计算装置包括:
获取模块10,用于获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息;
确定模块20,用于基于所述SQL查询信息确定所述批次变量的基础数据和计算规则;
计算模块30,用于按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
进一步地,确定模块20,还用于解析所述SQL查询信息得到所述批次变量的存储源表、查询条件、查询字段和计算规则;基于所述批次变量的查询条件和查询字段,从所述批次变量的存储源表中确定所述批次变量的基础数据。
进一步地,本申请批次变量计算装置,还包括:
任务生成模块,用于基于多个所述批次变量各自的合并依据生成计算任务,并在预设触发时刻将所述计算任务加入至待执行队列;
任务触发模块,用于触发所述待执行队列中的计算任务,并执行所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤。
进一步地,所述计算任务包括第一计算任务和/或者第二计算任务,任务生成模块,包括:
判断单元,用于判断各所述批次变量各自的合并依据是否相同;
合并生成单元,用于将各所述批次变量中合并依据相同的第一批次变量合并生成所述第一计算任务;
单独生成单元,用于将各所述批次变量中除所述第一批次变量之外的第二批次变量单独生成所述第二计算任务。
进一步地,判断单元,还用于若第三批次变量的存储源表和第四批次变量的存储源表相同,且,第三批次变量的查询条件和第四批次变量的查询条件相同,且,第三批次变量的计算规则和第四批次变量的合并依据相同,则确定所述第三批次变量和所述第四批次变量的合并依据相同,其中,所述第三批次变量和所述第四批次变量为多个所述批次变量中的任意两个。
进一步地,所述数据库管理系统包括至少一个消费者,本申请批次变量计算装置,还包括:
拉取模块,用于从所述消费者中确定空闲消费者,并通过所述空闲消费者拉取所述待执行队列中的计算任务,其中,一个空闲消费者单次拉取一个计算任务;
限流模块,用于通过所述空闲消费者从预设的令牌桶中获取限流令牌,并在获取到所述限流令牌后,执行所述触发所述待执行队列中的计算任务的步骤。
进一步地,本申请批次变量计算装置,还包括:
格式转换模块,用于生成包含所述批次变量的计算结果的文件;获取所述用户在所述可视化定义窗口定义的目标格式;将所述文件转化为所述目标格式的目标文件,并将所述目标文件加入至待入库队列,以供其他中间件或者所述数据库管理系统消费。
本申请还提供一种计算机存储介质,该计算机存储介质上存储有批次变量计算程序,上述批次变量计算程序被处理器执行时实现如以上任一项实施例所述的批次变量计算程序方法的步骤。
本申请计算机存储介质的具体实施例与上述本申请批次变量计算程序方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的本申请批次变量计算方法的步骤,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台批次变量计算设备(可以是TWS耳机等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种批次变量计算方法,其特征在于,所述批次变量计算方法应用于采用SQL语言的数据库管理系统,所述批次变量计算方法包括以下步骤:
获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息;
基于所述SQL查询信息确定所述批次变量的基础数据和计算规则;
按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
2.如权利要求1所述的批次变量计算方法,其特征在于,所述基于所述SQL查询信息确定所述批次变量的基础数据和计算规则的步骤,包括:
解析所述SQL查询信息得到所述批次变量的存储源表、查询条件、查询字段和计算规则;
基于所述批次变量的查询条件和查询字段,从所述批次变量的存储源表中确定所述批次变量的基础数据。
3.如权利要求1所述的批次变量计算方法,其特征在于,所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果步骤之前,所述方法还包括:
基于多个所述批次变量各自的合并依据生成计算任务,并在预设触发时刻将所述计算任务加入至待执行队列;
触发所述待执行队列中的计算任务,并执行所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤。
4.如权利要求3所述的批次变量计算方法,其特征在于,所述计算任务包括第一计算任务和/或者第二计算任务,所述基于多个所述批次变量各自的合并依据生成计算任务的步骤,包括:
判断各所述批次变量各自的合并依据是否相同;
将各所述批次变量中合并依据相同的第一批次变量合并生成所述第一计算任务;
将各所述批次变量中除所述第一批次变量之外的第二批次变量单独生成所述第二计算任务。
5.如权利要求4所述的批次变量计算方法,其特征在于,所述判断各所述批次变量各自的合并依据是否相同的步骤,包括:
若第三批次变量的存储源表和第四批次变量的存储源表相同,且,第三批次变量的查询条件和第四批次变量的查询条件相同,且,第三批次变量的计算规则和第四批次变量的合并依据相同,则确定所述第三批次变量和所述第四批次变量的合并依据相同,其中,所述第三批次变量和所述第四批次变量为多个所述批次变量中的任意两个。
6.如权利要求3所述的批次变量计算方法,其特征在于,所述数据库管理系统包括至少一个消费者,所述消费所述待执行队列中的所述计算任务的步骤之前,所述方法还包括:
从所述消费者中确定空闲消费者,并通过所述空闲消费者拉取所述待执行队列中的计算任务,其中,一个空闲消费者单次拉取一个计算任务;
通过所述空闲消费者从预设的令牌桶中获取限流令牌,并在获取到所述限流令牌后,执行所述触发所述待执行队列中的计算任务的步骤。
7.如权利要求1至6中任一项所述的批次变量计算方法,其特征在于,所述按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果的步骤之后,所述方法还包括:
生成包含所述批次变量的计算结果的文件;
获取所述用户在所述可视化定义窗口定义的目标格式;
将所述文件转化为所述目标格式的目标文件,并将所述目标文件加入至待入库队列,以供其他中间件或者所述数据库管理系统消费。
8.一种批次变量计算装置,其特征在于,所述批次变量计算装置应用于采用SQL语言的数据库管理系统,所述批次变量计算方法包括以下步骤:
获取模块,用于获取用户在可视化定义窗口定义的待计算的批次变量以及所述批次变量对应的SQL查询信息;
确定模块,用于基于所述SQL查询信息确定所述批次变量的基础数据和计算规则;
计算模块,用于按照所述批次变量的计算规则对所述批次变量的基础数据进行处理,得到所述批次变量的计算结果。
9.一种批次变量计算设备,其特征在于,所述批次变量计算设备包括:存储器、处理器,所述存储器存储有可在所述处理器上运行的批次变量计算程序,所述批次变量计算程序被所述处理器执行时实现如权利要求1至7中任一项所述的批次变量计算方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有批次变量计算程序,所述批次变量计算程序被处理器执行时实现如权利要求1至7中任一项所述的批次变量计算方法的步骤。
CN202311477294.2A 2023-11-06 2023-11-06 批次变量计算方法、装置、设备及计算机可读存储介质 Pending CN117472937A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311477294.2A CN117472937A (zh) 2023-11-06 2023-11-06 批次变量计算方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311477294.2A CN117472937A (zh) 2023-11-06 2023-11-06 批次变量计算方法、装置、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117472937A true CN117472937A (zh) 2024-01-30

Family

ID=89623506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311477294.2A Pending CN117472937A (zh) 2023-11-06 2023-11-06 批次变量计算方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117472937A (zh)

Similar Documents

Publication Publication Date Title
CN107729139A (zh) 一种并发获取资源的方法和装置
CN110781180B (zh) 一种数据筛选方法和数据筛选装置
CN110347494B (zh) 上下文信息管理方法、装置、系统及计算机可读存储介质
CN109885624A (zh) 数据处理方法、装置、计算机设备和存储介质
CN113157947A (zh) 知识图谱的构建方法、工具、装置和服务器
CN112783614A (zh) 对象处理方法、装置、设备、存储介质以及程序产品
CN109299913A (zh) 员工薪资方案生成方法及装置
CN112365239A (zh) 一种基于事件的云服务管理处置方法及系统
CN117472937A (zh) 批次变量计算方法、装置、设备及计算机可读存储介质
US20150074688A1 (en) Method and System for Automated Process Distribution
CN112637793B (zh) 一种基于5g的场景化计费方法、系统、电子设备和存储介质
CN115145652A (zh) 一种数据处理任务的创建方法、装置、设备及介质
CN115375430A (zh) 一种银行补录数据的批量解析和加载方法、装置及设备
US20180067837A1 (en) Framework for detecting source code anomalies
CN114253746A (zh) 一种基于SaaS的产品应用服务管理方法、装置、设备和介质
CN111008078A (zh) 数据的批量处理方法、装置、设备及计算机存储介质
CN110928876A (zh) 资信数据存储的方法和装置
CN113935301B (zh) 一种报表生成方法及装置、存储介质及电子设备
CN116521686B (zh) 动态数据表处理方法、装置、计算机设备及存储介质
Zakrzewicz et al. Solution pattern for anomaly detection in financial data streams
CN114997401B (zh) 自适应推理加速方法、装置、计算机设备和存储介质
CN116738960B (zh) 单据数据处理方法、系统、计算机设备和存储介质
CN114782070A (zh) 一种营销管理方法、装置、设备及可读存储介质
EP4105862A2 (en) Data processing method and apparatus, electronic device and storage medium
CN114924721A (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