首页 理论教育数据映射归约函数表构建方法-软件工程论文专集

数据映射归约函数表构建方法-软件工程论文专集

【摘要】:针对前节结构化数据中数据标准不一致的问题,本文采用构建数据映射归约函数表的方式予以解决,其中Map和Reduce提供的是所需对象数据抽取的计算框架。在图2中可以看到,任意多张源数据表的数据(属性)结构映射到Map表中,而任意多张源数据表的数据内容归集到Reduce表中。

针对前节结构化数据中数据标准不一致的问题,本文采用构建数据映射归约(MapReduce)函数表的方式予以解决,其中Map和Reduce提供的是所需对象数据抽取的计算框架。可以把MapReduce过程简单理解为把一堆互不关联的数据(表)按照某种特征归纳起来,然后处理并得到最终需要的结果,本质上是一种用函数程序语言来实现泛数据归集[3]

采用MapReduce函数表方式后,在档案数据查询抽取程序设计中就较为简单了,只要构建两张函数表,一张为Map表,另一张为Reduce表。Map函数表实现将源数据表中的数据名称、类型、长度以及该数据字段在目标显示系统的展示顺序、宽度和名称等数据结构(属性)信息列入表中;而Reduce函数表的作用是将数据(属性)结构中对应的各数据内容提供一个存储空间。用计算机编程语言来讲,Map表中记录的是Key,Reduce表中存储的是Value。

为了便于理解MapReduce函数程序语言编程方法,本文提供了Map表(T_HEADER表)(表1)与Reduce表(T_DATA表)(表2)的示意结构,所有档案的元数据统一在“数据名称表T_HEADER”中存储,所有数据记录在“数据内容表T_DATA”中存储。

数据内容表T_DATA统一管理所有的数据记录,这些数据记录是严格按照T_HEADER的元数据标准进行存储的,分别用A1~A50存放每个元数据字段所对应的具体数据。法人统一代码和单位名称、自然人的身份证号码和姓名用两个字段“CREDITCODE”和“NAME”单独存放。其与各原始表的映射关系如图2所示。

在图2中可以看到,任意多张源数据表的数据(属性)结构映射到Map表中,而任意多张源数据表的数据内容归集到Reduce表中。MapReduce表中的A1、A2……即为函数代码,具体含义由系统实际需求确定。

档案数据的映射归集如图2所示,在实际应用中,最终需要的是相关数据的展现,其工作机制流程示意如图3所示。

图3的工作流程为:用查找对象的统一代码做主键,软件系统首先在数据内容表T_DATA中进行匹配,将CREDITCODE字段中所有符合条件的数据记录全部找到,以ZYMLID为外键,在数据名称表T_HEADER中找到这些数据记录对应的表头名称信息、类型信息、长度信息,资源目录中展示的先后顺序、展示的宽度、展示的别名等,然后将这些数据记录关联起来进行展示。

通过举例说明,可以清楚地认识到,Map实现的是对数据表中每个结构元素Key独立处理,且这些数据表中可以是互补关联的,而Reduce实现的数据Key后面所属的若干内容(Value)归集,这些Value是有相关性的,至少它们都在一个Key下面,这是典型的函数式语言Map和Reduce基本思想方法:Map表示对一个列表(List)中的每个元素Key做计算,Reduce表示对一个列表中的每个元素Value做迭代计算。它们具体的计算是通过传入的函数来实现的[3]

表1 数据名称表T_HEADER表结构(www.chuimin.cn)

表2 数据内容表T_DATA表结构

图2 列搜索表结构与原始表结构映射关系图

图3 列搜索模式示意图