APP下载

大数据环境下并行化先进先出成本算法研究

2019-07-08侯宁

软件导刊 2019年6期
关键词:大数据环境

侯宁

摘 要:传统计算机算法在大数据环境下效率较差。为此,从数据处理并行角度出发探索大数据环境下实现先进先出的新算法逻辑,通过先进先出算法实现对成本的有效计算,尤其是提高计算容错性,利用优化的并行化计算模式提高算法时间效率。对传统成本算法与新的并行化先进先出成本算法在实际数据上进行比较实验,结果表明并行化的先进先出成本算法在时间效率上优于传统成本算法,且随着数据量的不断扩大时间效率更加明显,而先进先出的计算模型与传统算法在计算误差上并无扩大,说明并行化的先进先出成本算法在大数据环境下优于传统成本算法。

关键词:大数据环境;先进先出成本算法;并行化计算;时间效率

DOI:10. 11907/rjdk. 182526

中图分类号:TP312

文献标识码:A文章编号:1672-7800(2019)006-0085-04

Abstract: With the popularity of large data environment, the traditional computer algorithms show some problems such as poor efficiency in large data environment. This paper explores a new arithmetic logic to implement FIFO in large data environment from the point of data processing parallelism. Through the first-in-first-out (FIFO) algorithm, the cost can be calculated effectively, especially the fault tolerance can be improved in large data mode. By using the optimized parallel computing mode, the time efficiency of the algorithm is improved. Experiments on real data show that parallel first-in-first-out cost algorithm is superior to traditional cost algorithm in time efficiency and time efficiency is more obvious with the continuous expansion of data volume, and the first-in-first-out calculation model is also better than the traditional algorithm. There is no expansion in the calculation error. This shows that the parallel first in first out cost algorithm is better than the traditional cost algorithm in big data environment.

Key Words: first-in-first-out; Parallelization; Time efficiency

0 引言

成本是企业核算经济效益的基本内容和中心环节。在企业成本核算的一般程序中,约当产量比例法是生产费用在月末完工产品和产品分配环节应用较广的一种方法[1],不同的约当产量法产品成本的真实性与正确性不同,在复杂连续生产条件下,先进先出计价具有实物流转与成本流转一致、如实反映本月实际成本水平、提供真实生产占用资金数据、真实反映产品成本降低情况等优势[2]。约当产量比例法相比于传统的成本计算方法,只是将数据统一为按月度计算,在算法本质上并没有改变,因此需要一种成本算法对传统模型进行改进。而涉及数据库设计时,经常需要处理多对多关系,处理效率及便利性对算法执行效率极为重要[3],将数据库中的多对多数据关系改进后引入到成本计算模型中,形成先进先出的成本关系是本文研究的算法模型之一。对象和关系数据是业务实体模型的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中关系数据无法直接表达为多对多關联和继承关系。因此,把对象持久化到关系数据库中,需要进行对象/关系映射[4],而成本计算中也需要对象/关系的映射,因此先进先出的成本算法模型需要一种并行化的映射模式以提高算法执行效率。高效的服务器算法是大数据环境中的关键技术[5],并行化计算模式是高效算法的重要组成部分之一。本文提出的并行化模式正是基于高效的服务器算法模式之上,引入基于多对多的数据关系下的先进先出算法模型进行企业成本计算,并通过改进窗口函数模型进行逻辑优化。

1 算法结构分析

1.1 先进先出模型

先进先出是财务管理中常见的一种存货计价方法。先进先出法指按照先购进存货先发出的原则,对先发出存货的个别计价方法。该方法根据存货批次逐一对生产成本进行计算, 对实际存货加以计价 [6]。采用这种方法,先购入的存货成本在后购入存货成本之前转出,据此确定发出存货和期末存货的成本[7]。具体做法是,接收有关存货时,逐笔登记每批存货的数量、单价和金额;发出存货时,按照先进先出原则计价,逐笔登记存货发出和结存金额。

按照原材料编码提供各原材料当月的总耗用量,见表 1;当月产品的实际产量见表 2;产品耗用原材料的工艺信息,即在没有损耗的前提下,单位产品理论上耗用多少单位的原材料,见表 3。

以上是基于大数据环境下的先进先出计算模型流程,此模型在实际成本计算中由于使用了先进先出思想,因此对成本的计算步骤可查,容错性较高,间接提高了成本计算的准确性。同时算法不存在时间等待,具有一定的高效性。

1.2 并行计算模型优化

成本计算常见逻辑主要是通过嵌套循环遍历原材料入库表与使用表,最终处理得到原材料入库表与使用表间的多对多数据关系。这种算法逻辑采用循环方式,只能对数据进行串行处理,因此时间复杂度较高。本文以空间换时间[5],将串行计算模型改为并行计算模型。新的算法逻辑每次同时处理多张原材料使用表,一次性得到各原材料入库与使用数据的对应关系,算法逻辑如下:

(1)对原材料使用表按照原材料名称、使用日期先后排序,对原材料入库表也按照原材料名称、入库日期先后排序。

(2)每张原材料使用表要计算出当前使用表总数[TUA]与前一张使用表总数[TUB],每张入库表要计算出当前入库表总数[TWA]与截止到前一张入库的汇总数[TWB]。将改造后的原材料使用表与入库表通过名称进行关联,由此形成新的入库与使用关联数据表。对关联数据表中的每组数据同时进行处理,得到两个数据:①当前原材料使用量即本组数据对应的由入库状态转变成使用状态的数量,称之为[TRA]。[TRA]的计算由[TUA]与[TWA]和[TWB]的差值之一组成;②之前的原材料使用量,即前组数据对应的由入库状态转变为使用状态的数量,称之为[TRB]。[TRB]的计算由[TUB]与[TWA]和[TWB]的差值之一组成。

(3)关联数据表中的每组数据并行化计算[TRA]-[TRB],两者之差[TRC]即为本组数据对应的入库表中进入本组使用表的数目,最后筛选出[TRC>]0的每组数据即为查询结果。

2 算法伪代码分析

为验证新算法逻辑的可行性,在SQL Server2012环境中使用窗口函数对大数据样本下的新算法逻辑进行数据模拟,以实例详细阐述基于SQL Server窗口函数的算法实践。事实证明,窗口函数是应对大数据处理的一种有效解决方案[8]。现假设有如表 6所示的若干原材料入库表及表7所示的若干原材料使用表,经过SQL代码处理后得到关联数据表 8。

3 实验数据分析

将原材料入库表与原材料使用表取10%的数据作为实验数据。表9、表10为传统成本计算模型与先进先出的并行化算法比较。

由表 9、表 10可知,基于先进先出的并行算法相比一般串行算法逻辑有时间效率优势,且当数据量越来越大时,时间效率越发明显。同时算法计算误差与传统算法计算误差一致,因此该算法在提升时间效率的同时保证了算法计算误差没有扩大。

4 结语

在SQL Server2012环境中使用窗口函数对大数据样本进行处理,实践证明使用先进先出的并行化计算逻辑后,相比传统算法降低了时间复杂度,同时计算误差上没有扩大,说明基于先进先出的并行化成本计算模型在大数据环境下比传统成本算法拥有更好的性能。未来可引入更加精确的成本计算方法如基于产品特征的成本计算模型以提高成本计算精度,同时针对时间效率可在并行化模式基础上加入排序算法以优化数据存取效率,从而进一步降低算法的时间复杂度。

参考文献:

[1] 吴晶晶. 基于先进先出计价的约当产量比例法应用问题研究[J]. 赤峰学院学报:自然科学版,2017, 33(11):130-132.

[2] 王大江. 基于先进先出计价的约当产量法研究[J]. 渭南师范学院学报,2015, 30(2):85-89.

[3] 韦金兴. 用编程的方法处理数据库中多对多关系——以计量标准和计量设备为例[J]. 计算机光盘软件与应用,2014(20):92-93.

[4] 覃远霞. 基于关系数据库的对象/关系映射研究[J]. 科技风,2008(5):54-55.

[5] 乔平安,颜景善,周敏. 基于Linux系统的构建高性能服务器的研究[J]. 计算机与数字工程,2016(4):653-657.

[6] 林珑. 存货计价与核算的研究[J]. 当代经济,2015(9):120-121.

[7] 财政部. 企业会计准则 [M]. 北京:经济科学出版社,2006.

[8] 宋光旋,赵大鹏,王晓玲. IM2:一种改进的MIN/MAX窗口函数优化技术[J]. 华东师范大学学报:自然科学版,2018(1):104-116.

[9] 李帅,吴斌,杜修明,等. 基于Spark的BIRCH算法并行化的设计与实现[J]. 计算机工程与科学,2017, 39(1):35-41.

[10] 李慧彦. 一种并行化的分类算法研究[J]. 智能计算机与应用, 2017,7(3):127-129.

[11] 蔡洪基. 从网状到关系数据库映射的研究[D]. 天津:南开大学, 2007.

[12] 林菁. 一种从关系数据库到XML映射方法的研究及应用[J]. 电脑知识与技术,2006(20):17-19.

[13] 杨景常,周國权. 先进先出(FIF0)存储器技术在高速数据采集中的应用[J]. 西华大学学报:自然科学版, 2002, 21(2):20-21.

[14] 温惠英,徐建闽,邹亮. 基于遗传算法的离散时间动态网络最短路径求解[J]. 华南理工大学学报:自然科学版,2008,36(2):13-16.

[15] 张帆,邵之江,仲卫涛,等. 基于Matlab的分布式并行优化计算环境[J]. 系统仿真学报,2002,14(9):1145-1148.

[16] 贺继刚,杨晓伟,吴广潮,等. 基于模板保留的快速并行细化算法[J]. 计算机应用与软件,2007,24(12):26-28.

[17] 李侠民,徐美瑞.  两个快速的完全的并行细化算法[J]. 计算机研究与发展,1996(7):521-527.

[18] 刘汉兴,田绪红,孙微微. 基于Web的XML与数据库映射[J]. 现代计算机,2002(11):83-86.

[19] 刘喜重,朱玉文,但军波,等. OOAD中的信息结构及数据库映射的实现[J]. 计算机工程与应用, 2005, 41(30):169-170.

[20] 魏群,段国林,蔡瑾,等.  STEP模型基于数据仓库的关系数据库映射实现[J]. 机械设计与制造,2010(5):209-211.

(责任编辑:杜能钢)

猜你喜欢

大数据环境
浅谈在大数据环境下的民生审计思路
基于大数据环境下传统媒体广告经营创新分析
大数据环境下高校图书馆个性化信息服务研究
基于大数据环境的新闻编辑理念变革创新机制