分布式环境下的结构化文件处理组件Rdf-File

Rdf-File是蚂蚁财富开源的,在分布式环境下处理与机构、监管行之间文件交互的基础组件。

Rdf-File开源项目地址https://github.com/alipay/rdf-file


结构化文本文件   

系统间交互方式有很多如rpc、message、http、webservice等,在金融机构、监管行之间数据交互一般是文件  
  
这种文件是文本文件且文件有特定的结构
1. 国标文件开放式基金业务数据交换协议的第5章描述了交互文件的格式, 通过组件的FUND协议(格式)能够对国标文件进行处理
2. 非标文件是与国标文件想对而言的,SP、DE或者用户自定义的协议(格式)  
   有了标准文件,为什么还要非标文件  
   标准文件有如下几个特点:  
   (1) 数据字段采用定长补位方式后难于阅读   
   (2) 数据字段采用定长补位方式后浪费空间  
   (3) 因为是标准,定义的文件内容冗余很多,能用到的字段也很少,存在不必要的空间浪费   
   所以非标文件是交互双方约定一种文件交互格式,即能节约空间,又能方便阅读
     

Rdf-File处理的结构化文本文件可以有head、body、tail三部分,完整数据之间通过换行符分割, 一条完整数据又可以有多个字段组成 


分布式环境下的文件处理

一:数据量大了以后,单机解析或者生成文件的效率就很低,需要通过集群处理

1. 机构过来的文件:我们先对文件进行分片,在利用集群集群处理分片文件

2. 给机构文件:分库分表数据,每个分表生成一个分片文件,最终合成一个完整文件 

Rdf-File组件不涉及任务及调度,下图示意处理流程 

    分布式环境下的结构化文件处理组件Rdf-File_第1张图片

二:分布式下文件处理需要分布式的文件存储  
1. 目前组件内部实现了NAS/OSS分布式的文件存储操作实现    
2. 同时也欢迎对其他分布式的文件存储操作实现的贡献,组件开放相关SPI通过插件可以实现  

 


ORM映射

文本文件数据内容跟关系型数据库数据关系类似, 在对象与关系型数据库之间我们有hibernate、mybatis(ibatis)等orm框架做自动映射类型转换,同样在对象与文本数据之间Rdf-File起到了orm映射和类型转换的作用。 


组件架构

分布式环境下的结构化文件处理组件Rdf-File_第2张图片

1. intefaces模块:主要包含用户使用接口API

2. tools模块:包含组件内核实现的文件操作工具

3. codec模块:对文件结构,行数据,字段数据进行编码解码

4. meta模块: 元数据配置以及加载

5. loader/extension模块: 对配置、插件等资源进行加载

6. resource模块:对资源层抽象,组件内部实现classpath, file, oss加载,用户可以自定义插件实现其他存储加载

7. spi模块:开放给用户的插件扩展入口

8. config模块:配置相关的资源信息


组件功能

1. 文件个性化参数配置
2. 文件读
3. 文件写
4. 文件切分
5. 文件合并
6. 文件多存储操作
7. 文件校验
8. 文件排序
9. 文件多协议(格式)支持
10. 用户自定义文件协议
11. 自动类型转换


你可能感兴趣的:(rdf-file,file,文件交互,rdf-file,分布式环境)