Skip to content
斩秋 edited this page Dec 6, 2018 · 47 revisions

结构化文本文件

系统间交互方式有很多如rpc、message、http、webservice等,在金融机构、监管行之间数据交互一般是文件

这种文件是文本文件且文件有特定的结构

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

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

分布式环境下的文件处理

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

  1. 机构过来的文件:我们先对文件进行分片,在利用集群集群处理分片文件
  2. 给机构文件:分库分表数据,每个分表生成一个分片文件,最终合成一个完整文件
    分布式环境下的文件处理原理图参考集群环境文件处理

二:分布式下文件处理需要分布式的文件存储

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

ORM映射

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

组件功能

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

组件接入

https://github.com/alibaba/rdf-file/wiki/%E7%BB%84%E4%BB%B6%E6%8E%A5%E5%85%A5

招聘

蚂蚁财富通用技术,base上海,欢迎各位加入!!!

职位描述

  1. 负责财富分布式金融计算平台研发方向,建设任务管控、并行计算、资源调度一体的计算系统,更好的支持财富各类分布式计算场景,例如余额宝收益计算、基金清算、金融量化计算等;
  2. 持续优化金融分布式计算系统,达到业界领先的性能,以及优秀的用户使用体验。调研业界相关领先技术,规划平台架构演进。
  3. 负责维护高质量技术、用户、架构文档及宣传资料,日常技术支持。定期开展培训及宣传。

职位要求

  1. 扎实的java编程基础,熟练单元测试技术和TDD,精通Java EE、SOA、OSGI等相关技术;对各种开源的框架如Spring、Hibernate、iBatis等有深入的了解,对框架本身有过开发或重构者可优先考虑。
  2. 熟练掌握JAVA编程,算法基础扎实,有三年以上大型系统设计和研发经验;有分布式系统研发经验者优先;
  3. 具备实际的大数据业务开发经验以及良好的项目沟通和协调能力。
  4. 熟悉Hadoop/HBase/Flink/Spark等开源大数据技术,对通用技术具备热情,在开源社区活跃者优先;
  5. 具备良好的软件工程研发素质、具备优秀的系统架构设计能力。 简历投递到hongwei.quhw@antfin.com

文档索引

1.组件概览
2.1 组件使用--组件默认配置
2.2 组件使用--数据定义模板
2.3.1 组件使用--组件内置协议--SP
2.3.2 组件使用--组件内置协议--DE
2.3.3 组件使用--组件内置协议--fund
2.3.4 组件使用--组件内置协议--fund_index
2.4.1 组件使用--代码示例--读文件--简单读取
2.4.2 组件使用--代码示例--读文件--汇总读取
2.4.3 组件使用--代码示例--读文件--分片读
2.4.4 组件使用--代码示例--读文件--单文件有序读
2.4.5 组件使用--代码示例--读文件--多文件有序读
2.4.6 组件使用--代码示例--读文件--原始读
2.4.6 组件使用--代码示例--写文件--简单写入
2.4.7 组件使用--代码示例--写文件--汇总写入
2.4.8 组件使用--代码示例--文件切分
2.4.9 组件使用--代码示例--文件合并
2.4.10 组件使用--代码示例--文件校验
2.4.11 组件使用--代码示例--文件排序
2.4.12 组件使用--代码示例--存储操作
2.5.1 组件使用--接口说明--FileFactory
2.5.2 组件使用--接口说明--FileConfig
2.5.3 组件使用--接口说明--StorageConfig
2.5.4 组件使用--接口说明--FileReader
2.5.5 组件使用--接口说明--FileWriter
2.5.6 组件使用--接口说明--FileMerger
2.5.7 组件使用--接口说明--FileValidator
2.5.8 组件使用--接口说明--FileSorter
2.5.9 组件使用--接口说明--FileStorage
2.5.10 组件使用--接口说明--FileSplitter
2.6.1 组件使用--编码建议--常量
3.1 组件原理设计--组件架构
3.2 组件原理设计--微内核+插件机制
3.3 组件原理设计--协议布局扩展机制
3.3.1 组件原理设计--协议布局扩展机制--xml定义
3.3.2 组件原理设计--协议布局扩展机制--Format
3.3.3 组件原理设计--协议布局扩展机制--Function函数
3.4 组件原理设计--Processor机制
3.5 组件原理设计--Resource机制
3.6 组件原理设计--集群环境文件处理
3.7 组件原理设计--数据核对原理
3.8 组件原理设计--文件唯一性校验原理

成员技术博客

斩秋 https://blog.csdn.net/quhongwei_zhanqiu