APP下载

面向农业企业画像系统的大数据存储模型研究

2019-10-15窦旭蒙梁毅苏航

软件导刊 2019年8期
关键词:农业企业服务化

窦旭蒙 梁毅 苏航

摘 要:为克服面向农业企业画像系统在数据存储方面存在的弊端,使数据存储工作达到更加精简、高效、可扩展目的,对农企画像系统的业务场景和数据源进行分析,提出一套通用存储模型。该模型由通用操作算子表达式、解析映射器、操作算子实现集和存储介质组成,以服务的形式对外开放,对上屏蔽掉底层复杂的存储工作,对下屏蔽掉上层复杂的业务场景,达到降低系统开发维护成本,提高系统工作效率的目的。为农企画像系统数据存储工作提供了一套通用的解决方案,对该领域同类型系统存储工作具有一定的指导意义。

关键词:农业企业;画像系统;存储模型;操作算子;异构数据;服务化

DOI:10. 11907/rjdk. 182810 开放科学(资源服务)标识码(OSID):

中图分类号:TP306 文献标识码:A 文章编号:1672-7800(2019)008-0036-06

Research on Big Data Storage Model for Portrait System of

Agricultural Enterprises

DOU Xu-meng,LIANG Yi,SU Hang

(Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China)

Abstract: In order to improve the disadvantages of the portrait system for agricultural enterprises in data storage, and make the data storage work more concise, efficient and extensible, this paper analyzes the business scenarios and data sources of the agribusiness portrait system and proposes a general storage model. The model is composed of general operator expression, analytic mapper, operator implementation set and storage medium, and is open to the public as a service. The model can be done to block out the underlying complex storage work and on the upper block complex business scenarios, reduce the system development and maintenance costs, improve the work efficiency of the system to work on agribusiness portrait system data storage provides a general solution, the storage of the same kind of system about the field work has a certain guiding significance.

Key Words: agricultural enterprise; portrait system; storage model; operation primitives; heterogeneous data; servicing

基金項目:国家自然科学基金青年项目(61202074);农业部农业大数据重点实验室开放基金项目(2017,2018)

作者简介:窦旭蒙(1994-),男,北京工业大学信息学部计算机学院硕士研究生,研究方向为软件工程与理论;苏航(1978-),男,北京工业大学信息学部计算机学院讲师、硕士生导师,研究方向为软件自动化、程序分析与变换;梁毅(1975-),女,北京工业大学信息学部计算机学院副教授、硕士生导师,研究方向为计算机体系结构、海量数据处理、云计算、高性能计算。本文通讯作者:窦旭蒙。

0 引言

大数据应用的主要目的是通过对日志数据的分析得到精确的指标结果[1],基于此需求,画像概念应运而生。画像即信息标签化,是对研究个体进行特征标签化描述,从而得到精准的信息反馈[2]。画像系统研究已有不少成果:Chen[3]通过分析网站上用户的行为数据,得到不同用户对于环境问题的关心程度;刘广东[4]通过分析用户的购买行为,实现对用户的商品推送;王雪[5]通过分析各企业的公示数据,对企业运营状况、资产、经营规模等方面进行归类,为政府、银行等提供参考。

农业信息化发展带动了农业企业对信息的需求,因此,以农业企业为研究主体的画像系统(以下简称“农企画像系统”)也随之诞生[6]。农企画像系统有助于对农业企业属性特征、行为趋势进行精准评估和分类,确保农业企业管理的公平性和要素配置的高效性,对农业企业发展具有指导意义。本文以中国农业科学院信息所提出的农企画像系统为依托,进行数据存储相关技术的研究。

数据存储在农企画像系统中起着举足轻重的作用,整个系统生命周期内数据轮转都要依赖存储服务,而存储服务的架构设计和性能指标直接影响整个系统性能和结果精准度[7]。目前的画像系统由于各功能模块都涉及到数据的存储操作,数据存储服务大多散落在各功能模块中并由其独自维护[8],不但增加了业务模块与存储模块的耦合度,没有做到上层业务模块与底层存储模块分离,而且不利于系统扩展。系统后期维护和功能迭代无形增加了更多开支[9]。

针对上述弊端,田野[10]提出了异构数据存储统一管理思想;谭振强[11]等为解决关系型数据库只能满足二维关系问题,提出了一种存储中间处理模块,实现二维关系与多维关系间的灵活转变;李林[12]提出了一种基于海量图片数据的存储模型。以上研究只是针对某种类型的数据进行存储模型上的优化,不适应本文多源异构数据的研究背景。刘基阳[13]在汽车行业背景下,对异构数据进行统一管理,提出了通用访问中间件。但该研究的数据源和业务场景全部基于汽车行业下,对农业领域无法起到直接的指导作用。基于对数据存储相关工作的研究发现,在农企画像领域目前尚无学者根据该领域产生的异构数据特点进行研究,实现对该领域异构数据的统一管理和通用访问,使得农企画像系统对异构数据的存储仍使用独立维护的做法,不利于系统的扩展和稳定。而且农企画像系统还需考虑数据存储服务以何种形式对外提供[14],以及存储服务与存储工具如何寻址映射[15],存储服务与其它模块如何做到高度解耦等问题[16]。

本文提出一种通用存储模型,该模型与狭义的存储模型不同[17],可以理解为一套存储架构,由通用操作算子表达式、解析映射器、操作算子实现集和底层存储介质4部分组成,以服务的形式对外开放。存储模型对外服务的实现依赖于通用操作算子表达式,通用操作算子表达式依赖于底层的操作算子实现,集和存储介质两者之间通过解析映射器进行寻址映射。该模型可对上屏蔽掉底层复杂的存储工作,对下屏蔽掉上层复杂的业务场景,降低系统耦合程度和开发维护成本,提高系统工作效率和扩展性[18],为农企画像系统的数据存储提供了一套通用解决方案,对该领域同类型系统存储工作具有一定的指导意义。

1 数据源分析

画像系统数据来源广泛、类型复杂、结构多样。王艺霖[19]研究的电信用户画像系统数据主要来源于网络文本、系统日志以及终端数据,以结构化、半结构化、非结构化结合的形式存在。数据处理流程分为数据获取、数据加工、数据分析、画像结果应用等步骤。本文研究的农企画像系统,在数据处理过程方面与王艺霖所研究的画像系统大致相同,如图1所示。

[行为日志][网络爬虫][企业报表][数据采集层][数据获取][爬虫程序][报表解析][日志收集][数据加工][缺失值处理][合法性检验][数据变换][冗余去除][文本过滤][数据分析层][标签提取][机器学习库][深度学习库][画像展示]

图1 农企画像系统数据处理流程

基于对已有画像系统和农企画像系统相关工作调研,可对农企画像系统数据源从4个维度进行分析。数据分为网络原始文本、企业原始报表、企业行为日志、图片数据、清洗加工后中间数据、特征项、标签项、系统配置等类型。数据来源分为网络爬虫、批量上传、清洗加工、分析处理、用户输入等。数据结构分为结构化、半结构化、非结构化。从数据操作特点分为定时批量读写、实时少量读写。表1是对系统中各种数据源特点的归纳总结。

表1 农企画像系统数据分析

2 通用存储模型设计

农企画像系统存储模型架构如图2所示,存储模型由上到下分为3部分。

(1)中间件:由通用操作算子集和解析映射器组成。通用操作算子集由多个基础操作算子表达式组成,算子表达式代表了数据操作的最细粒度,具有标准性、通用性、穩定性特点。例如算子表达式可以表示数据的增加操作,任何存储系统都不可能缺少增加数据的操作,且该操作不会因为上层业务逻辑和场景的变化而变化。因此,整套操作算子表达式可以达到通用的效果。算子表达式中会带有各种操作维度的参数,解析映射器会根据这些参数将算子表达式对数据的操作准确映射到目标算子上。即使上层业务或底层存储工具动态增减,只要通过算子表达式中的参数配合解析映射器,即可实现相应的数据存储操作。因此该模型具有通用性、用户低感知性、高可扩展性和高容错性等特点。

(2)操作算子实现集:由多个操作算子实现组成。操作算子表达式依赖于操作算子实现,而操作算子实现又依赖于底层异构数据库提供的操作接口,完成数据与存储工具之间的交互。操作算子实现集应提供对底层所有存储工具的操作支持,通过算子实现数据的传输或相互组合,完成算子表达式功能。

(3)存储介质:由多种异构数据库和文件系统组成,可实现存储介质的动态增减,能够对农企画像系统产生的多源、异构、海量数据进行有效存储。

3 操作算子定义

由于农企画像系统中异构数据复杂、业务场景多样,导致数据操作类型多种多样。本文从数据源特点与系统应用场景出发,提出一套具有高度通用性的操作算子表达式[20]。操作算子表达式的目的是制定一套标准、通用、稳定的数据操作规范。算子表达式格式如下:

算子表达式定义规则:operationType:returnValue→operationCondition;其中operationCondition=(data,specialCondition)。

operationType代表算子表达式操作类型,returnValue代表算子表达式操作结果,operationCondition代表算子表达式操作条件值,operationCondition由data和specialCondition组成,其中data代表操作数据,specialCondition代表具体的操作条件。用户在使用算子表达式时,如果operationCondition包含的两项参数有具体值则可作为操作条件传入;若某项为空,直接采用置空处理即可。算子表达式中各项指标的值如表2-表5所示。

例如,对于网页文本数据,若获取某一时间段内某个网页的文本数据,算子表达式可以定义为:select:collection→operationCondition;在operationCondition中,data值为text,specialCondition值为webCrawlerName和time。用户在使用算子表达式时只需传入操作类型、期望返回值、操作条件,即可完成对数据的操作。算子表达式具有一定的通用性,即使将本例更换数据类型、操作类型,只要遵循定义规范,依然可以定义出符合要求的算子表达式,这充分体现了算子表达式的通用性、稳定性特点。

表2 operationType值及含义

表3 returnValue值及含义

表4 data值及含义

表5 specialCondition值及含义

算子表达式的操作请求最终是依靠算子实现集完成的。可以把算子表达式看作是任务策划者,把算子实现集看作任务的实施者。算子实现集提供了多源异构数据最细粒度的操作实现,是整套存储模型的中流砥柱。算子表达式和算子实现之间可以是一对多、一对一、多对一、多对多的逻辑关系。

为使存储模型达到上下屏蔽、动态可扩展,在算子表达式和算子实现集之间引入解析映射器。解析映射器可将算子表达式的传入参数进行解析,然后通过映射将请求转交给对应的算子实现。即使上层算子表达式或下层算子实现发生变化,只要解析映射器始终保有一份最新的映射关系,即可完成数据存储工作,同时也屏蔽了上下层的互相感知。三者关系如图3所示。

图3 通用存储模型架构

以上3种组件协助工作,首先完成多源异构数据的存储;其次做到上层业务与下层存储互相屏蔽的解耦效果;最后使整个存储模型具有通用化、标准化、稳定化、可扩展特点。

4 操作算子实现

本文以农企画像系统中的特征值处理为例,对存储模型实现过程进行描述。特征值的分析依赖多种数据源,其中包含网页文本、企业报表、操作日志等,这些数据结构多样,读写场景也各不相同,需要使用不同的存储工具,例如不同类型的数据库。如果不使用本文提出的存储模型进行数据处理,则需要在业务代码中嵌入不同数据库的操作代码,使得开发人员不能将精力完全集中于业务层面,需要兼顾数据存储相关功能的代码开发。使用本文存储模型时,只需按照算子表达式的规范定义好算子表达式,传入对应的查询条件,即可得到多种查询结果。整个处理流程分为调用存储模型及数据处理两部分。

业务层面调用存储模型伪代码如下:

Input:compantName公司名称,startTime查询起始时间,endTime查询结束时间,webCrawlerName爬虫名称,reportName报表名称

Output:combineData含有网页文本,企业报表,操作日志的数据组合

Initialization:combineData, list

1:function dataSelect(webCrawlerName,reportName,compantName,startTime,endTime)

2:list.get(0).data ← text

3:list.get(0).operationCondition ← webCrawlerName[×]time

4:list.get(1).data ← report

5:list.get(1).operationCondition ← compantName[×]reportName

6:list.get(2).data ← log

7:list.get(2).operationCondition ← compantName[×]time

8:combineData.text ← select×collection×list.get(0)

9:combineData.report ← select×collection×list.get(1)

10:combineData.log ← select×collection×list.get(2)

11:return combineData

12:end function

如上偽代码表示业务逻辑层只需组织好操作所需的条件,按照操作规范对算子表达式进行调用即可得到操作结果。存储模型内部在接收到用户的调用请求后,将算子表达式进行拆分解析,按照解析条件调用映射器,得到对应的映射地址,然后调用算子完成目标地址的数据操作,流程如图4所示。

解析映射器是用动态可配置方式实现对目标数据库、目标表、目标字段的记录和修改,确保算子表达式请求能准确对应到某个算子实现上,并且算子实现能够准确操作对应地址的数据库、表名以及字段。本文解析映射器实现主要通过几张记录关键维度信息的表,具体关联关系如图5所示。

存储模型内部处理伪代码如下(以操作日志查询为例,无论数据类型数据结构如何变化,存储模型内部的工作原理都是相同的):

Input:operationType操作类型,operationCondition操作算子条件

Output:combineData.log日志数据(可能为空)

Initialization:combineData

1:function select(operationType,operationCondition)

2:desTableId ← tableMapping(operationCondition.compantName)

3:desDatabase ← databaseMapping(desTableId)

4:combineData.log← databaseMapping(desTableId)

5:log← databaseMapping(desTableId)

6:if log.isEmpty(),goto step 7,else goto step 8

7:combineData.log ← text

8:combineData.log ← null

9:return combineData.log

10:end function

5 结语

本文以中国农业科学院信息所农企画像系统为基础,提出农企领域的通用存储模型,将数据存储工作从业务逻辑中拆分出来,实现模块间的松耦合,增强系统的可迭代和可维护性。提出的操作算子表达式具有标准性、通用性、稳定性特点,可为该领域同类系统提供一种数据存储的通用解决方案和操作规范;使用者只需按规范对算子表达式进行调用,即可实现特定业务场景下的数据存储工作。算子表达式底层依赖算子实现集支持,算子实现集从农业领域的数据源和操作场景出发,完成对多源异构数据的各类型存储操作。有了算子表达式和算子实现集的共同协作,整个存储模型就可做到对上屏蔽底层数据源,对下屏蔽上层业务逻辑的效果,实现对异构数据的统一存储、统一管理。进一步提出解析映射器概念,将解析映射器作为算子表达式与算子实现集沟通的桥梁,满足用户数据源的寻址映射、底层数据源的地址切换、存储工具的动态扩增等需求;提升了通用存储模型的灵活性、低感知度,增强了存储模型的通用性。

本文研究还可延伸,未来可在通用存储模型响应性能方面实现优化,加入多级缓存手段,同时对缓存命中率进一步优化,实现性能和数据访问准确性方面的提升和突破。

参考文献:

[1] H G, J W, Z W, et al. Modeling of user portrait through social media[C]. 2018 IEEE International Conference on Multimedia and Expo (ICME), 2018: 1-6.

[2] NIE J, HUANG L, CUI P, et al. Social media profiler: inferring your social media personality from visual attributes in portrait[M]. China: Springer Verlag, 2016.

[3] CHEN Z M, HU Z Y. User portrait study on UGC website[J]. Computer Systems & Applications,2017,26(1):24-30.

[4] 劉广东. 基于“用户画像”的商品推送系统设计与实现[D]. 西安:西安电子科技大学, 2017.

[5] 王雪. 基于企业画像的公示数据查询系统设计与实现[D]. 大连:大连海事大学, 2017.

[6] 赵恒. “互联网+税务”:用大数据为企业“画像”[N]. 中国税务报,2015-08-28 (A2).

[7] KHAN F A,REHMAN M U,KHALID A,et al. An intelligent data service framework for heterogeneous data sources[J]. Journal of Grid Computing,2018(2): 1-13.

[8] KIM H S, RAVINDRA P, ANYANWU K. A semantics-aware storage framework for scalable processing of knowledge graphs on Hadoop[C]. Boston, MA:2017 IEEE International Conference on Big Data, 2017:193-202.

[9] 张锐,赵瑞锋,王海柱,等. 基于统一模型的电网大数据存储与分析服务平台的实现[J]. 电子技术与软件工程,2018(21): 153-154.

[10] 田野,袁博,李廷力. 物联网海量异构数据存储与共享策略研究[J]. 电子学报,2016, 44(2): 247-257.

[11] 谭振强,陈莘萌,冯舸. 基于关系数据库的多维数据存储模型[J]. 小型微型计算机系统, 2001, 22(7): 885-888.

[12] 李林. 基于hadoop的海量图片存储模型的分析和设计[D]. 杭州: 杭州电子科技大学, 2011.

[13] 刘基阳. 面向多源异构数据的数据集成中间件的设计与开发[D]. 成都: 电子科技大学, 2018.

[14] M C N, H  S W. Data storage adapter in big data platform[C]. 2015 8th International Conference on Database Theory and Application (DTA),2015:6-9.

[15] J R, S V. A study on storage mechanism for heterogeneous sensor data on big data paradigm[C]. 2017 International Conference on Electrical, Electronics, Communication, Computer, and Optimization Techniques (ICEECCOT),2017: 342-345.

[16] ALKHELAIWI A, DAN G. Smart city data storage optimization in the cloud[C]. 2018 IEEE Fourth International Conference on Big Data Computing Service and Applications,2018:153-160.

[17] N N,M N,M K. Application sensitive energy management framework for storage systems[J]. IEEE Transactions on Knowledge and Data Engineering,2015, 27(9): 2335-2348.

[18] JIANG L, XU L D, CAI H, et al. An iot-oriented data storage framework in cloud computing platform[J]. IEEE Transactions on Industrial Informatics, 2014, 10(2): 1443-1451.

[19] 王艺霖. 基于大数据技术的电信用户画像系统的实现与应用[D]. 北京:北京邮电大学, 2018.

[20] COWEN C C, GALLARDO-GUTIéRREZ E A. A new class of operators and a description of adjoints of composition operators[J]. Journal of Functional Analysis,2006, 238(2): 447-462.

(责任编辑:杜能钢)

猜你喜欢

农业企业服务化
制造服务化与企业绩效的U 型关系研究
——基于组织惰性的调节作用
制造企业服务化程度、服务化模式和服务化收益研究
制造业服务化发展战略研究
深化云南农垦企业改革的思考
现代农业企业财务管理创新研究
制造服务化发展战略
制造业服务化对提升制造型企业创新能力的作用研究