datax(13):源码解读Column-datax中的数据类型
一、基类Column概述
Column是datax中所有数据类型的基类,里面有3个属性,以及一个构造方法,外加一个枚举类;
public abstract class Column {private Type type;private Object rawData;private int byteSize;public Column(final Object object, final Type type, int byteSize) {this.rawData = object;this.type = type;this.byteSize = byteSize;}//省去其他非关键方法public enum Type {BAD, NULL, INT, LONG, DOUBLE, STRING, BOOL, DATE, BYTES}
}
二、Column衍生出的类型对象
一个爷爷衍生出的7个金刚葫芦娃
三、用Column及其子类构建出的记录对象Record
Record家族系列(一般情况下DefaultRecord使用较多)
可以通过idea的全局搜索 record.addColumn
方法,看看各个读插件是怎么转成Datax内部Column的。具体方法在Record中
基类Record/*** 给该record 添加列** @param column*/void addColumn(Column column);实现类DefaultRecord@Overridepublic void addColumn(Column column) {columns.add(column);incrByteSize(column);}
四、创建Record的RecordSender类
RecordSender主要方法
RecordSender家族类
RecordSender主要通过createRecord来构建一个Record
五、RecordSender,Record,Column关系总结
1、RecordSender中Record createRecord() 可以创建一个Record
2、Record中void addColumn(Column column)可以将column添加到该记录中
注:
对源码进行略微改动,主要修改为 1 阿里代码规约扫描出来的,2 clean code;
所有代码都已经上传到github(master分支和dev),可以免费白嫖
datax(13):源码解读Column-datax中的数据类型相关推荐
- faster rcnn源码解读(四)之数据类型imdb.py和pascal_voc.py(主要是imdb和roidb数据类型的解说)
转载自:faster rcnn源码解读(四)之数据类型imdb.py和pascal_voc.py(主要是imdb和roidb数据类型的解说) - 野孩子的专栏 - 博客频道 - CSDN.NET ht ...
- datax(10): 源码解读Communication(Datax通讯类)
前面看了datax的通讯机制,继续看源码-具体的通讯类 Communication.根据datax的运行模式的区别, 数据的收集会有些区别,这篇文章都是讲的在standalone模式下. 一.comm ...
- datax(16):源码解读AbstractReporter
之前介绍了通信类communication,容器类container,communication的收集类collector,今天再看一个报告类Reporter: 一.概述AbstractReporte ...
- Spark Streaming源码解读之Driver中ReceiverTracker架构设计以具体实现彻底研究
本期内容 : ReceiverTracker的架构设计 消息循环系统 ReceiverTracker具体实现 一. ReceiverTracker的架构设计 1. ReceiverTracker可以以 ...
- DataX Transformer 源码分析及 UDF 扩展与使用
DataX GitHub DataX Transformer 目录 1 前言 2 需求说明 3 解决方案分析 4 解密算法 5 Hive UDF 5.1 测试数据 5.2 新建 Maven 项目 5. ...
- spark源码解读3之RDD中top源码解读
更多代码请见:https://github.com/xubo245/SparkLearning spark源码解读系列环境:spark-2.0.1 (20161103github下载版) 1.理解 输 ...
- Fabric中PBFT源码解读——Checkpoint机制
文章目录 1. 写在前面 1.1 前置阅读 1.2 对TestCheckpoint函数的测试 2. 对TestCheckpoint函数运行流程的解读 2.1 Checkpoint和Water mark ...
- Fabric中PBFT源码解读 (3)
文章目录 5. Preprepare消息的接收以及Prepare消息的发送 6. Prepare消息的接收以及Commit消息的发送 5. Preprepare消息的接收以及Prepare消息的发送 ...
- Hive中lateral view的应用到源码解读
对于从事大数据开发的同学,经常会应用到explode(炸裂函数)和lateral view(侧输出流). Explode(炸裂函数) 参数必须是array或者map格式(通常跟split函数使用): ...
- ios html zfplayer,【iOS】ZFPlayer源码解读中
前言 本篇继ZFPlayer源码解读基础之上,主要解析说明控制层与播放器,因为在上篇文章至现在并未提及丝毫关于这两个类业务的实现. 首先说下这两个类各自的职责. 控制层:主要负责响应与用户之间的交互, ...
最新文章
- 【Linux 内核 内存管理】RCU 机制 ① ( RCU 机制简介 | RCU 机制的优势与弊端 | RCU 机制的链表应用场景 )
- [密码学] 公钥密码基础与RSA
- [开源JVM] yvm - 自制Java虚拟机
- WebStorm 格式化代码 - 快捷键
- JavaApplet 绘制火柴棒和轮播图片
- 最新桌面操作系统份额统计:Windows占比91.59%
- (19)ISE14.7软件生成bit失败永久解决方法(FPGA不积跬步101)
- 用cocos2d-android开发android游戏时调用box2d中的native本地函数问题
- sql server2012中使用convert来取得datetime数据类型样式(全)
- H3CSE(路由)学习笔记----下
- PHPMailer如何获取企业微信授权码
- 整合阿里云视频播放器——Coding在线(十四)
- linux ftp命令大全,linux ftp命令详解
- Linux(七)DNS域名解析服务器学习
- 计算机图形学当前研究热点和发展方向,微软亚洲研究院网络图形组深入解释了图形学的现状、发展和未来...
- 用案例说话,教你如何写出有吸引力的开发信以及主题
- 拉面哥的火爆看新媒体时代的底层逻辑!
- 电脑蓝屏的原因及解决原因
- cocos2dx-js 开发
- mysql开发语言,纯干货
热门文章
- 融360赴美IPO:大数据能否助其吸引海外投资者青睐?
- (笔记)记录Sql中一些例子和常用语法
- 【论文浅读】《Deep Pyramidal Residual Networks for Spectral–Spatial Hyperspectral Image Classification》
- pygame:超级玛丽
- MybatisPlusException: Your property named “xxx“ cannot find the corresponding database column name!
- 你一事无成,还在那里傻乐
- C. Dima and Salad
- 《自控力》 第三章读书笔记
- linux 挂接磁盘阵列,Linux下磁盘分区挂载和磁盘阵列
- 老庙黄金2016春晚抢红包活动技术架构详解