一种基于impala计算引擎的财账处理方法与流程

文档序号:36727121发布日期:2024-01-16 12:35阅读:20来源:国知局
一种基于impala计算引擎的财账处理方法与流程

本发明涉及金融大数据,特别是涉及一种基于impala计算引擎的财账处理方法。


背景技术:

1、impala默认的浮点数据精度为13位。而在财账等系统的跑批计算中,有些需要精确到小数点后20位。由此会存在将财账系统的计算逻辑(java)迁移到impala(sql),经过计算(如加减乘除等)后,数据对比存在差异的情况。单条数据的差异,累加之后的偏差使得数据不可信、不可用。

2、目前,现有技术impala的计算引擎功能强大,但由于存在上述数据精度丢失问题,无法将其应用于财账处理领域。

3、因此,基于impala计算引擎的前提下,提供一种在保障数据精度和准确度的前提下,大幅提升财账的计算效率的财账处理方法是本领域技术人员亟待解决的问题。


技术实现思路

1、本发明的目的在于提供一种基于impala计算引擎的财账处理方法,该装置结构简单,安全、有效、可靠且操作简便,能在保障数据精度和准确度的前提下,大幅提升财账的计算效率。

2、基于以上目的,本发明提供的技术方案如下:

3、一种基于impala计算引擎的财账处理方法,包括如下步骤:

4、在impala计算引擎中自定义高精度函数;

5、注册所述自定义高精度函数;

6、调用所述自定义高精度参数处理预设金额类型的输入财账数据,处理完成后,获取所述预设金额类型的输出财账数据。

7、优选地,所述在impala计算引擎中自定义高精度函数,包括如下步骤:

8、继承impala计算引擎中的基类作为程序载体;

9、设置所述程序载体对外使用的约定,以获取所述自定义高精度函数。

10、优选地,所述设置所述程序载体对外使用的约定,具体为:

11、设置函数名为calc_decimal;

12、入参为3个,分别是string字符串类型的第一参数、第二参数和第三参数、integer整型类型,代表计算表达式opexp、表达式左侧参数leftobj、表达式右侧参数rightobj、结果精度scale;

13、返参为1个,为string字符串类型。

14、优选地,所述注册所述自定义高精度函数,包括如下步骤:

15、将所述程序载体编译为可执行载体;

16、将所述可执行载体存放至impala计算引擎中可访问路径下;

17、调用impala计算引擎中的注册方法,将预设功能函数映射为约定的所述函数名、入参和返参,并映射至impala计算引擎中可访问路径下的所述可执行载体。

18、优选地,所述调用所述自定义高精度参数处理预设金额类型的输入财账数据,处理完成后,获取所述预设金额类型的输出财账数据,,包括如下步骤:

19、将string字符串类型的所述第二参数和所述第三参数,,对应转换为所述bigdecimal金额类型的第二参数和第三参数;

20、确定所述string字符串类型的第一参数的运算方式;

21、根据所述第一参数的运算方式,调用bigdecimal金额类型内置的运算方法,按约定的所述函数名、所述入参进行计算,以获取string字符串类型的返参;

22、将string字符串类型的返参转换为bigdecimal金额类型的返参,作为所述预设金额类型的输出财账数据。

23、本发明提供了一种基于impala计算引擎的财账处理方法,是通过在impala计算引擎中自定义一个高精度函数,并且在impala计算引擎中注册自定义高精度函数,在注册完成后,从sql应用程序中调用已注册的自定义高精度参数处理预设金额类型的输入财账数据,处理完成后,得到预设金额类型的输出财账数据。

24、相比于现有技术,本发明将现有财账系统的java逻辑改造成impala的sql逻辑,可大幅提升财账系统的跑批效率。经本地一个小批量改造测试,原本财账系统跑批需要30分钟的时间,改造成impalasql后,耗时降到不足1分钟,且输出结果数据对比无任何差异。可以在保障数据精度和准确度的前提下,大幅提升财账的计算效率。



技术特征:

1.一种基于impala计算引擎的财账处理方法,其特征在于,包括如下步骤:

2.如权利要求1所述的基于impala计算引擎的财账处理方法,其特征在于,所述在impala计算引擎中自定义高精度函数,包括如下步骤:

3.如权利要求2所述的基于impala计算引擎的财账处理方法,其特征在于,所述设置所述程序载体对外使用的约定,具体为:

4.如权利要求2所述的基于impala计算引擎的财账处理方法,其特征在于,所述注册所述自定义高精度函数,包括如下步骤:

5.如权利要求3所述的基于impala计算引擎的财账处理方法,其特征在于,所述调用所述自定义高精度参数处理预设金额类型的输入财账数据,处理完成后,获取所述预设金额类型的输出财账数据,包括如下步骤:


技术总结
本发明提供了一种基于impala计算引擎的财账处理方法,是通过在impala计算引擎中自定义一个高精度函数,并且在impala计算引擎中注册自定义高精度函数,在注册完成后,从sql应用程序中调用已注册的自定义高精度参数处理预设金额类型的输入财账数据,处理完成后,得到预设金额类型的输出财账数据。相比于现有技术,本发明将现有财账系统的java逻辑改造成Impala的sql逻辑,可大幅提升财账系统的跑批效率。经本地一个小批量改造测试,原本财账系统跑批需要30分钟的时间,改造成Impala Sql后,耗时降到不足1分钟,且输出结果数据对比无任何差异。可以在保障数据精度和准确度的前提下,大幅提升财账的计算效率。

技术研发人员:刘志超,李尼科,戴小村,潘斌,张霞,陈梦晨
受保护的技术使用者:湖南长银五八消费金融股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1