APP下载

数据中台架构的主数据平台及关键技术设计

2022-12-06郝晓伟武汉伟高旭瑞刘秀

微型电脑应用 2022年11期
关键词:数据模型数据量调用

郝晓伟,武汉伟,高旭瑞,刘秀

(国网山西省电力公司信息通信分公司,山西,太原 030021)

0 引言

传统的数据平台基于简单的总体架构,完成数据导入、整理多维数据集合简单的数据分析[1]。当前传统的数据平台是单节点,数据存储容量不大,只能对结构化的数据进行处理,面对海量的异构数据时,一些数据源无法涉及[2]。

针对上述存在的问题,文献[3]将Hadoop与传统数据平台相结合,将采集到的数据存储在Hadoop平台中,减轻了传统数据平台的压力,但由于是传统的单一服务器关系型数据库,数据平台调用和分析处理数据的效率还有待提高。文献[4]构建Spark大数据平台,对系统日志数据标准化、过滤合并分析,并统一存储和管理,对信息进行统计和离线分析,但系统的数据采集模块格式单一,有些系统数据的格式和种类会出现不兼容的现象。

针对上述研究中存在的不足,本研究对业务流中数据的层级和结构进行了设计,不同的数据层包括有不同业务功能的数据。中台架构的数据平台分为数据采集模块、标签化模块和数据开发模块标签化模块和数据开发模块。

1 数据中台架构的主数据平台

1.1 主数据平台设计

数据的中台架构为完成系统业务数据的层级分割和水平解耦,将公共业务数据入口独立出来,通过数据层的数据模型实现跨域数据整理和知识累积,应用视图和控制器实现构建数据接口,进行数据业务的开放,对数据业务的前后端应用需求灵活部署[5]。

数据平台对数据划分多个层次可以更好地管理数据模型,按照数据结构规范分层处理,数据模型将多种数据标准化,使用多维度建模。数据标准化概括为3层:基础数据模型处理数据;融合模型按照数据的维度进行建模,整合多种数据类型,处理数据的形式包括整合、关联和分解;挖掘数据模型偏向于业务层面,复用性较高的融合在中台架构中,作为企业的数据模型,提高了业务效率[6]。数据中台架构的主数据平台对外提供统一的服务能力,按照应用要求,对构成数据根据业务场景进行服务。数据服务能够使开发人员快速访问和查询数据业务,数据分析人员可以进行算法分析,包括数据模型的管理和数据结构的分析。数据中台架构的主数据平台的结构如图1所示。

图1 主数据平台结构图

数据平台中,源数据和数据模型是数据中台搭建的基础,数据开发是连接前台开发重要的环节。首先是提供标签库,基于标签库的分类区分营销客户,面向业务人员。数据开发平台面向所有用户和SQL开发人员,提供数据访问,将业务数据可视化处理。方便快速掌握了解数据,及时发现透明数据动态,保护数据的安全性。在数据业务响应过程中,共享数据服务实现数据共享,其中数据平台中分层模型如表1所示。

表1 分层模型

数据模型多元化支持可视化平台,给业务决策提供数据支持,结合自身实际数据结构,对数据平台分层划分,不同的层次承担不同的数据类型[7],可以更方便地进行数据模型管理。

1.2 数据采集模块

数据平台中数据采集方式包括自动爬虫、第三方数据和手动采集3种方式。大部分数据由自动爬虫获取,第三方数据采集的数据主要是公司企业的各项业务场景中的数据指标,这部分数据量过大,采集过程较为复杂。数据加载是AJAX请求,具体数据采集实现过程分为3个类,如图2所示。

图2 数据采集模块类图

使用以下方法进行数据采集:首先进行数据请求时,headers配置需要填充path、query_hash等关键词。Cookie可以进行一次登录后截取修改,配置Session ID,X-IG-App-ID、X-Instagram-GIS从html中Shared Data字段中获取。Instagram的页面访问结构不是传统数据采集的线性结构,是通过cursor进行的链式结构[8]。

数据注册模块对采集到的图片数据进行注册,将收到的图片数据各等级业务来源信息记录并保存,为每个图片数据生成唯一编号,分配base64存储空间与索引结构化操作。类图如图3所示。

数据注册模块和数据采集模块之间紧密耦合,减少了数据采集占有服务器的存储空间,减少了磁盘空间,防止磁盘空间溢出造成的程序崩溃。当采集到的业务数据到达一定数量级时,使用数据注册模块将图像数据注册入库,删除本地缓存,清理出磁盘空间,保证数据采集模块的顺畅运行。图像数据注册过程中,每一次图片注册实例化一个数据类[9],并调用该函数,将图像数据的文件名、base64、源数据引用,根据图像的特征生产md5值作为数据的编码,同时检索数据库中是否存在相同的数据,防止数据重复,引起数据调用的错误。最后调用self_create_data_center_record为图像补全注册信息,并返回图像编码。表2为注册模块接口描述。

图3 图像数据类图

表2 注册模块接口描述

数据注册模块使用Nginx+Gunicorn+Flask架构部署在AWS EC2服务器节点,利用了Nginx高并发的优势,又利用了Gunicorn多进程管理的优点,可以更快地处理多线程并发数据请求,为分布式数据模块的结构提供基础。数据中台系统数据标签库,将注册后的图像数据和非线性数据在dbl_garment_basic中的整个记录传入标签库,减少了数据库IO操作的次数。

数据标签化模块连接主数据平台数据调用的后端接口,生成结构标签,作为可并发调用的服务端口,分为传参调用和空调用。

传参调用表示数据注册模块接收bdl_garment_basic中的图像信息,调用后端接口,对bdl_garment_basic中记录updata,最后调用索引模块,并上传更新后的图像数据。

空调用表示在不传参调用时,判断数据的清理擦操作,首先对主数据平台中没有使用过的标签数据的图像编号,将获得的记录迭代传给标签化模块,进行传参调用。

1.3 数据分析并行化算法

传统的串行化数据处理算法运算时间过长,效率较低,在实际业务场景中无法正常使用。本研究提出设计实现大规模神经网络训练并行化算法,C Neural数据系统基于HBase实现大规模训练数据的分布式存储,减少了加载训练数据的时间。在使用相关业务的数据集时,系统以并发模式读取训练数据,加载入数据平台的分布式内存中。计算框架采用主从式结构,数据分析并行化训练过程中,计算节点和主控节点同步进行。

在三层感知机的前向阶段,输入层将数据传输到隐层中的每个神经元,神经元对输入信号进行处理:

(1)

(2)

其中,θ表示偏置,uj表示输入的数据,Wij表示神经元之间的权重,θj表示偏置,hf表示经过神经元输出的数据。输出层接收的信号也需要进行处理:

(3)

(4)

其中,γ表示连接层之间的权重,Vik表示隐藏层和输出层神经元之间的权重,Vik表示数据的偏置。如果最终输出的数据和实际数据一致,下一个输入的数据的向量输入到神经网络开始新的前向过程;如果最终输出的数据与真实信息之间存在偏差,算法进入后向过程,计算输出层偏差dk,可表示为

dk=(yk-c)ck(1-ck),k=1,2,…,n

(5)

式中,yk表示理论值,ck表示实际值。

隐藏层神经元之间的偏差ej为

(6)

式中,hj表示隐含层中的数据信息。

通过偏置后向传播,更新输出层与隐藏层之间的权重:

Vjk(N+1)=Vjk(N)+α1dk(N)hj

γk(N+1)=γk(N)+α1dk(N)

(7)

式中,V(N+1)和γ(N+1)表示输出层与隐藏层之间的权重之间的关系。

更新隐藏层和输出层之间的权重:

Wij(N+1)=Wij(N)+α2ej(N)

θj(N+1)=θj(N)+α2ej(N)

(8)

式中,α表示学习率,N表示数据训练的次数。对数据库中非线性结构的数据集来说,每次数据训练采用一批数据样本,每个数据样本产生ΔW数据的偏差,累加后的ΔW用于修正数据权重。

在数据并行化算法中,训练的数据被分为多个数据子集分给不同的计算节点进行处理完成数据的训练,适用于多核或众核数据平台的计算模块。数据分析并行化处理减少了大量训练数据网络的开销,减少了处理多维度数据的时间,降低了数据分析产生的误差。

2 应用测试

为验证本研究数据中台架构的数据平台的性能,分别使用文献[3]数据平台、文献[4]数据平台和本研究数据平台对数据进行处理分析,比较分析各数据平台对大量级数据的处理时间。表3为本研究数据平台的运行环境。

在表3运行的环境中,经过2个小时的试验,从本样本数据库中获取不同格式的数据量,如表4所示。

表3 运行环境

表4 实验数据

以整个数据平台的业务流转为根据,通过测试数据,验证整个数据流程能否正常通过,各模块功能是否达到预期效果。测试结果如表5所示。

表5 测试结果

测试结果显示,中台架构的数据平台业务流程完整,生产的数据准确没有误差,系统实现的功能与设计相符合,数据处理和流转效率提高。

本研究测试环境为4台AWS EC2服务器,基于主数据平台的数据信号分布式采集,3种数据平台对实验数据进行处理的时间如图4所示。

图4 实验结果

从图4可以看出,本研究中台架构的数据平台对大量级的实验数据处理速度最快,并将处理过的数据存储在数据库中。随着数据量的增多,分析处理的时间增长趋势呈非线性,当数据量达到10万时,所用时间还不到3 600 s;达到20万时,所用的时间在7 200 s左右;数据量在30万时,所用的时间在14 000 s左右。其中处理图像数据使用时间远大于数字数据。使用并行化的方式将数据分层处理,加快了数据采集和处理的效率。

文献[3]数据平台对数据进行处理使用的时间最多,5万的数据量耗时7 200 s,数据量达到30万使用时间高达200 000 s左右。数据量在0~20万范围内所使用时间增长的幅度最大,随后增长率逐渐减小。文献[4]数据平台处理15万以下的数据量效率较高,数量量增加到15万以上时所使用的时间越来越多,数据量在30万时所用的时间超过了文献[3]达到210 000 s左右。文献[3]和文献[4]在面对数据量级较大的多维度数据时,处理数据的效率降低,运算速度过慢花费时间过长。出现同类数据重复处理的现象,增加了处理时间。

3 总结

本研究对数据中台架构进行了分析,说明了层级结构和数据业务中间的关系,实现了数据的水平解耦,并独立出公共数据出口,通过数据模块整个各业务场景的数据。面对复杂多变的业务需求,可构件多个中间数据结构,二次调用减少了数据冗余,提高了数据采集和分析处理的效率。

本文研究还存在一些不足之处,有待改进,数据平台的中台开放性和安全之间还需优化,数据量级的提升给现有系统带来的隐患还需进一步考虑。

猜你喜欢

数据模型数据量调用
基于大数据量的初至层析成像算法优化
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
核电项目物项调用管理的应用研究
面板数据模型截面相关检验方法综述
基于系统调用的恶意软件检测技术研究
经济全球化对我国劳动收入份额影响机制研究——基于面板数据模型
利用RFC技术实现SAP系统接口通信
基于数据模型的编程应用
一种顾及级联时空变化描述的土地利用变更数据模型