• 收藏
  • 加入书签
添加成功
收藏成功
分享

基于SDFS的数据版本控制

刘晓涛
  
电子企业
2024年4期
中国联合网络通信有限公司哈尔滨软件研究院

摘要:本文旨在研究基于SDFS的数据版本控制在渠道佣金计算流程中的应用,数据版本控制是佣金计算流程中的一个重要任务。其目的是将渠道佣金计算流程中涉及到的主要数据划分为具有相同属性的类别和版本。本文首先介绍了现有渠道数据的存储方法以及数据版本的控制方法。然后,提出了一种基于SDFS的数据版本控制方法,并详细描述了该数据版本控制方法在渠道佣金计算流程中的实现过程。

关键词:HDFS;SDFS;数据;版本控制;佣金计算

其中涉及到的数据包含:

·基础数据:原始话单、渠道资料、政策规则指标、码表文件、活动数据等。

·计算结果:计算侧佣金计算结果数据、佣金账单、指标累计、冻结解冻数据、预提应付支付数据、黑名单佣金明细数据。

·过程数据:佣金计算过程产生的中间数据,稽核单、稽核错单、复合话单、佣金清单、批价算费错单等。

外围系统包括:cBSS、经分系统、ECS、活动中心、收入管理系统等。

现有渠道系统进行佣金计算的基础数据,都是以文件的形式存储在FTP服务器上,基础数据包括原始话单、渠道资料、政策规则指标、码表文件、活动数据等,不同类型的文件存储在不同文件目录下,渠道系统通常使用文件目录的名称来区分所存储的文件类型。由于每个计算账期,渠道系统的基础数据多达40多种类型,数据量更是达到4T以上,所以,每个计算账期都会创建大量的文件目录来存储数据。这种使用文件目录名称来区分文件类型和版本的方法,不利于文件的存储,并且在使用的过程中也非常的不方便。

1、HDFS(Hadoop分布式文件系统)

随着数据量越来越大,一台主机可能无法存储所有数据,那么就需要将数据分散存储到多台主机上,但是管理和维护非常不方便,需要一种系统来管理多台主机上的文件,这就是分布式文件管理系统。HDFS就是分布式文件管理系统中的一种,它是一个文件系统,用于存储文件,它是分布式的,由很多服务器联合起来实现其功能。

1.1、HDFS的优势

首先,HDFS是一种容错的分布式文件系统。HDFS所有数据经由源数据生成后会立即进行副本的备份操作,并将副本分别存储到集群的各个节点中执行数据的管理调度和数据的分析请求,允许节点数据出现灾难性崩溃的情况。其次,HDFS可以部署在大量廉价设备集群上以节约存储成本。HDFS采用的多副本镜像复制策略保证了数据存储的安全性和可靠性。通过增加数据的副本数量弥补硬件设备的不足,同时也减少了本地架构与异地架构之间数据传输的时间开销。最后,在实际的数据读写操作过程中,HDFS的多副本复制策略实现了多节点传输,降低了对网络传输总带宽的依赖,在不损害数据可靠性和读取操作效率的前提下,提高了对文件高效写入操作的支持。

1.2、HDFS的劣势

HDFS整体存储成本较高。以常用的3副本策略为例,实际所需存储空间为存储数据容量的3倍,直接增加了存储硬件成本和文件索引的建立时间。此外,根据HDFS的架构,管理者NameNode暂存所有存储Block文件块的DataNode节点的信息,并负责数据块的备份操作,周期性地从集群中的各个节点接收反馈心跳信号以及Block分块的反馈状态报告BlockReport,NameNode会根据这些反馈信息来监测HDFS系统中Block分块数据映射的状况信息。工作者DataNode是HDFS分布式文件系统的实际操作节点。这些节点由管理者NameNode统一调度,根据实际需要进行文件的存储操作或者数据块的检索操作。同时,DataNode节点还负责执行管理者NameNode发出的对数据块的增删、查改等操作的指令,并周期性地向管理者NameNode提交Block数据块的反馈心跳信号以及Block分块的反馈状态报告。Block数量过多将对NameNode的内存造成非常大的压力,降低了系统的可扩展性。

在当前渠道基础数据中,不超过1MB 的小文件数量是巨大的,如用户资料、用户终端、用户促销活动、产品订购、用户预存款、代缴费等信息,HDFS 文件系统对小文件的存储会造成 NameNode 内存开销过大、存储耗时过长而导致系统性能下降,因此HDFS不适合做为渠道佣金计算过程中的数据版本控制工具。

2、SDFS(思特奇分布式文件系统)

SDFS是一种分布式的、能够全局共享访问的文件系统,可以实现存储文件,文件的复制、修改、删除等功能,提供大容量存储和负载均衡的能力。可适用于多个行业,尤其适用于海量数据文件存储、需要多主机共享访问的云计算应用领域和中小碎文件处理的业务场景。针对HDFS系统小文件合并方法的局限性SDFS对其进行了改进优化,提升了小文件合并存储性能,使其更加适合渠道基础数据的存储。

3、OceanBase

OceanBase 数据库是一个原生的分布式关系数据库,它是完全由阿里巴巴和蚂蚁集团自主研发的项目。OceanBase 数据库构建在通用服务器集群上,基于 Paxos 协议和分布式架构,提供金融级高可用和线性伸缩能力,不依赖特定硬件架构,具备高可用、线性扩展、高性能、低成本等核心技术优势。

4、数据版本控制

4.1、创建数据快照

外围系统将基础数据上传到SFTP服务器的指定目录下,省分管理员通过版本控制中心向任务调度中心发起创建快照任务,任务调度中心接收到该任务后向快照管理中心发送创建快照指令,快照管理中心根据指令信息到SFTP服务器指定目录下执行创建快照指令,并将创建的文件快照保存在SDFS中,生成的快照ID、快照版本号、以及快照存储路径、快照所属系统、数据类型等信息存储到OceanBase数据库中。

4.2、创建数据版本

当数据快照创建完毕后,快照管理中心会将数据快照的相关信息保存在OceanBase数据库中,省分管理员可以通过版本控制中心,选择需要计算的数据快照组合来创建数据版本,版本控制中心将新创建的数据版本与数据快照之间的关联关系保存在OceanBase数据库中。

4.3、版本推送

数据版本创建完毕后,数据版本与数据快照之间的关联关系保存在OceanBase数据库中,省分管理员通过版本控制中心,选择需要计算的数据版本点击推送按钮,版本控制中心会向任务调度中心发起数据推送任务,任务调度中心接收到该任务后向快照管理中心发送数据推送指令,快照管理中心根据指令信息从SDFS中查询相关的数据快照,并将这些数据快照发送到计算主机的指定目标下,当数据快照推送完毕后,快照管理中心会将OceanBase数据库中数据快照推送的状态更新为已完成。

4.4、版本计算

省分管理员通过版本控制中心查看数据快照推送状态,当状态为已完成时,省分管理员可以点击版本计算按钮,版本控制中心会向任务调度中心发起版本计算任务,任务调度中心接收到该任务后向数据计算中心发送数据计算指令,数据计算中心根据指令信息开始执行数据计算任务,当数据计算完毕后,数据计算中心会将计算结果保存在OceanBase数据库中,省分管理员可以通过版本控制中心查看OceanBase数据库中的计算结果。

4.5、版本重算

当某个账期的计算结果不符合要求时,省分管理员可以通过修改计算中心的相关配置,然后在版本控制中心选择相同的数据版本重新发起计算,数据计算中心计算完毕后,会将新的计算结果保存在OceanBase数据库中。省分管理员可以通过不断修改计算配置参数,重新发起计算,从而最终获得符合要求的计算结果。

现有渠道数据版本的控制方法,不利于基础数据的存储,也不利于数据的查询和使用,所以,无法长期保存历史版本的数据,也无法实现历史版本数据的重算。而基于SDFS的数据版本控制方法很好的解决了历史版本数据的存储问题,从而有效的解决了历史版本数据的重算问题。

参考文献

[1]《Hadoop构建数据仓库实践》2017年清华大学出版社出版,作者是王雪迎。

[2]《Kafka权威指南》2018年人民邮电出版社出版,作者是妮哈·纳克海德(Neha Narkhede)、格温·沙皮拉(Gwen Shapira)、托德·帕利诺(Todd Palino)。

[3]《OceanBase数据库源码解析》2023年机械工业出版社,作者是彭煜玮、杨传辉、杨志丰。

*本文暂不支持打印功能

monitor