## 2019/1/21 Version 2.4
### 新功能点
#### 1、增加Kafka数据源
详情见:[Kafka数据源](chapter1/shu-ju-yuan/pei-zhi-kafka.md)
点击「新建数据源」,选择「Kafka数据源」进行新建操作:
![](https://img.kancloud.cn/ad/2c/ad2c67642d767cf190eb6f75ff38f1f2_952x696.png =360x)
* 数据源名称:是该数据源在DataPipeline的唯一标识
* 服务器地址:输入连接数据目的地的域名或IP地址及端口值,允许输入多个地址,使用","分隔。
* ZooKeeper地址:输入连接Zookeeper的域名或IP地址及端口值,允许输入多个地址,使用","分隔。
* Schema Register地址:输入Schema Register地址
* 数据格式:
* JSON(默认)、AVRO、STRING
* 点击连接后将验证数据源连接配置并同时检验数据源版本、权限等信息;
* 成功连接后将会自动打开该数据源的详情页
#### 2、实时任务回滚功能
详情见:[数据任务详情页—基本信息](yun-wei-guan-li/shu-ju-ren-wu-xiang-qing-ye/ji-ben-xin-xi.md)
* 当数据任务为:SQL类型数据源实时模式作为增量数据的读取方式时,提供回滚机制。
* 数据任务详情页提供回滚入口,任务处于激活、暂停才会高亮,其他状态置灰
![ ](https://box.kancloud.cn/4d06843a26e0cfab0cf0d032e64b2ed0_1094x610.png =360x)
* 点击「回滚」,立即弹窗显示「回滚设置」
* 用户可以选择回滚的方式:有两个选项,一:按回滚时间(默认),二:按回滚位
* 按回滚时间(默认)
* 选择完要回滚的时间后,展示后端返回的真实打点位置线,打点间隔根据用户设置的打点频率进行变动
* 默认直接定位到离该时间点最近的时间戳上,鼠标浮上下方展示出该时间戳,并且要求位置线下方展示出该时间戳的具体位置信息,每个数据源展示不同。
* 数据源为mysql
* 显示Binlog Postion、Binlog文件名称、GTID
* 数据源为:Oracle
* 显示LogMiner scn
* 数据源为:SQL Server
* 显示Change tracking version
* 数据源为:PostgreSQL
* 显示lsn
* 默认展示出附近十条打点位置
* 用户可以鼠标拖拽至自己想回滚的时间戳,下方时间戳具体位置信息根据用户选择随时变动,方便用户查看
* 按回滚的位置
* 用户选择按回滚位置进行回滚时,不同的数据源显示不同,同上
* 数据源未被任务占用时,允许修改打点频率和打点范围,修改后的数据源按照新设置进行打点。
* 每个数据源独立存在,当数据源配置信息一致时可设置不同的打点频率和打点范围。
#### 3、同步全量和增量允许用户自定义
详情见:[创建数据同步—任务设置](rwsz.md)
* 设置任务增加「同步范围」
* 两个选项:全量数据、增量数据,用户可以选择只同步全量或者只同步增量,可同时选择
* 只选择全量
* 两个选项(单选):同步一次,定时读取
* 默认选择「同步一次」。表示该任务只同步一次数据源数据到目的地即可。
* 定时读取,交互逻辑与之前「定时同步」一致。选择定时读取后,要求用户输入读取频率
:-: ![](https://img.kancloud.cn/70/8e/708efbe23420561754f27e14ac0f9c21_1280x358.png =360x)
* 只选择增量
* 只能选择实时模式
* SQL类型数据源:MySQL、Oracle、SQL Server、PostgreSQL时,实时模式,增加读取起点选项,用户可以设置增量数据读取的起始位置。
* 两个选项:激活任务为起点(默认)、自定义
:-: ![](https://img.kancloud.cn/1f/8a/1f8ac53ca993c7730cb0c5f16865cac7_2292x958.png =360x)
* 用户选择的同步范围:「全量数据」和「增量数据」。
* 全量数据默认只同步一次。
* 增量数据部分设置
* 可以选择实时读取与增量识别模式,与当前逻辑一致
#### 4、 任务和单表级别batch设置
详情见:[创建数据同步—任务设置](rwsz.md)
* 任务设置增加"子任务设置模块"
* 文案提示:设置开启后对全任务中的子任务生效(单表,单文件或数据),配置规则-高级设置相关项空缺时采用该全局设置。
* batch设置
* 文案:「待对子任务读取数据达到一定设置条件后,进行批量同步写入」。条件包括条数,大小和时间,条数和时间为必填项,为空时不能进入下一步。
* 条数类型显示“读取满\_\_\_\_条时批量写入”,输入框数值默认为5000,允许用户修改,输入为空时提示“不能为空”。
* 大小类型显示,“读取满\_\_\_\_KB/MB时批量写入”,KB和MB单位可在下拉栏切换,用户可选填,允许修改,可以为空。
* 时间类型显示“读取满\_\_\_\_秒/分时批量写入”,默认为30秒,秒和分可在下拉栏切换,允许修改,输入为空时提示“不能为空”。
* 单表设置batch
* batch设置【批量写入】
* 文案提示:设置开启后对当前界面的表或文件生效,读取数据达到设置条件后,进行批量同步写入。优先级高于全局子任务设置,启用时优先采用。 条件包括条数,大小和时间,均为选填项。
* 条数类型显示“读取满\_\_\_\_条时批量写入”,输入框数值默认为5000,允许用户修改,输入可以为空。
* 大小类型显示,“读取满\_\_\_\_KB/MB时批量写入”,KB和MB单位可在下拉栏切换,用户可选填,允许修改,可以为空。
* 时间类型显示“读取满\_\_\_\_秒/分时批量写入”,默认为30秒,秒和分可在下拉栏切换,允许修改,输入可以为空。
#### 5、Hive、Kafka、FTP目的地配置增加唯一键
详情见:[创建数据同步—配置规则](pzgz.md)
* 目的地为hive、kafka、文件系统类型时,配置规则-目的地表结构中,增加「唯一键」字段
* 不点亮小钥匙,则不进行唯一键去重;点亮多个,则按默认规则组合唯一键去重;点亮1个,选中字段直接用于唯一键去重
* 指定多个唯一键时,后端自动生成唯一键虚拟值用以去重筛选。
#### Hive全量覆写
详情见:[Hive数据目的地](chapter1/shu-ju-mu-de-di/Hive.md)
* 用户选择Hive目的地,并且同步范围选择「全量数据」
* 若用户对同步的表不进行分区,则每次定时同步全量数据时:DataPipeline会先删除目的地对应的hive表,并全量覆写。
* 若用户对同步的表进行了分区
* 如果是需要在新的分区下写入数据,则直接写入对应该分区的数据。
* 如果是需要在老的分区下写入数据,则删除老分区的所有数据后再写入本次全量覆写中对应该分区的数据。
### 优化功能点
#### 1、定时同步提供任务级别标记功能
* 目前的定时同步逻辑:当该任务下的单个表完成一次定时同步后,会单独计时用户设置的频率时间开始下一次的读取数据。
* 优化后的定时同步逻辑:当该任务所有表完成一次同步后,再根据用户设置的频率时间统一开始定时读取数据。
* 当用户选择SQL类型数据源(MySQL、SQL Server、Oracle、PostgreSQL),FTP、S3
* 系统会在状态表中记录:
* 该「任务」和所有表「表」全量同步的信息
* 字段一:最后一次同步完成时间。第一次没有,以后是永远被更新。
* 字段二:当前状态:同步中、等待中。
* 该「任务」和所有表「表」增量同步的信息
* 字段一:最后一次同步完成时间。第一次没有,以后是永远被更新。
* 字段二:当前状态:同步中、等待中。
#### 2、清洗脚本支持存储与调用,方便用户高效快捷使用清洗脚本功能。
详情见:[创建数据同步—配置规则—清洗脚本](pzgz/qxjb.md)
![](https://img.kancloud.cn/09/cc/09cc25d2635e9e231bc0fd54ad32cb13_1082x666.png =360x)
* 支持用户直接调用默认脚本
①DML.java
提示内容: DML字段标识脚本:源表数据发生变化时,在目的地表中增加相应的 DML 标识字段,包括 insert、update、delete
②CollectTime.java
提示内容: 读取时间脚本:根据数据读取时间,在目的地表中增加相应的时间字段
③UpdateTime.java
提示内容: 写入时间脚本:根据数据写入时间,在目的地表中增加相应的时间字段
#### 3、Hive目的地优化
* hive目的地存在同名表进行提示
* 分区字段要求在目的地列表里显示。
* 提示优化:
* wallclock、record、recordfiled 提示
* path.format格式提示
* 增加「LDAP」认证方式
* 下方显示三个选项:服务器地址&用户名&密码。
* 不允许为空,否则在输入框直接提示:不能为空。
#### 4、目的地表和字段名称支持大小写设置
详情见:[创建数据同步—任务设置](rwsz.md)
* 任务激活前支持修改目的地大小写设置
#### 5、API数据源
详情见:[API数据源](chapter1/shu-ju-yuan/pei-zhi-api.md)
* 修改该数据源下的任意API参数,用户保存后要求执行到所有使用该API的任务。
* 当用户修改某一个API的参数设置:
* 勾选该API,并且未激活数据任务点击「激活」后要求使用修改后的API参数。
* 勾选该API,并且已激活的数据任务(不管装提示「已暂停」还是「进行中」):
* 从下一次请求开始使用最近更新的API参数。
* 已激活的相关API任务要求按照顺序完成(优先顺序为以最近激活的任务)。
#### 6、任务详情页支持排序功能和搜索功能
详情见:[管理数据同步—数据任务详情页—概览信息](yun-wei-guan-li/shu-ju-ren-wu-xiang-qing-ye/gai-lan-xin-xi.md)
* 数据源为mysql、oracle、pg、sql server、API时,支持表排序功能
* 表名称/API名称、已读取数据、已处理数据、错误队列、完成进度提供排序功能
* 仅支持对一项列名进行排序,不支持多个同时排序
#### 7、同步列表支持查看已选表情况
详情见:[管理数据同步—数据任务详情页—选择同步内容](xzschema.md)
* 选表完毕后点击「保存」
* 弹窗右上侧显示“已选表/视图”按钮
* 点击后,按钮变蓝,可筛选显示当前所有已勾选表和视图名称
* 再次点击后,按钮变灰,显示全部表
![](https://box.kancloud.cn/1a42ebb3717c82913fb49714259d1869_1200x1428.png =360x)
#### 8、修改表结构
* 增减表操作在任务为暂停/未激活状态下进行支持修改表结构,同时在增表后标注新增表
- DataPipeline产品手册
- 产品更新日志
- v2.7.0 版本介绍
- v2.6.5 版本介绍
- v2.6.0 版本介绍
- v2.5.5 版本介绍
- v2.5.0 版本介绍
- v2.4.5 版本介绍
- v2.4.1 版本介绍
- v2.4.0 版本介绍
- v2.3 版本介绍
- v2.2.5 版本介绍
- v2.2 版本介绍
- v2.1 版本介绍
- v2.0.5 版本介绍
- v2.0 版本介绍
- v2.0 以前版本介绍
- 环境和数据库的部署要求
- Mysql - BINLOG配置方法
- Oracle - LOGMINER配置方法
- SQL Server - Change Tracking配置方法
- Postgre SQL-decoderbufs配置方法
- Postgre SQL-wal2json配置方法
- 常见场景操作
- 场景一:实时同步异构数据库数据(例:MySQL到Oracle)
- 场景二:批量同步异构数据库数据(例:SQL Server到MySQL)
- 场景三:API数据同步到关系型数据库(例:API到MySQL)
- 场景四:Hive数据同步到关系型数据库(例:Hive到SQLServer)
- 场景五:关系型数据库数据同步到Hive(例:Oracle到Hive为例)
- 场景六:Kafka数据同步到关系型数据(例:Kafka到MySQL为例)
- 场景七:一对多场景介绍
- 产品入门
- 数据同步任务
- 创建数据同步
- 配置数据源&数据目的地
- 配置数据源
- 配置MySQL数据源
- 配置Oracle数据源
- 配置SQL Server数据源
- 配置PostgreSQL数据源
- 配置FTP数据源
- 配置S3数据源
- 配置API数据源
- 配置Kafka数据源
- 配置Hive数据源
- 配置阿里云 OSS数据源
- 配置腾讯云TDSQL数据源
- 配置自定义数据源
- 配置数据目的地
- 配置MySQL数据目的地
- 配置Oracle数据目的地
- 配置SQL Server数据目的地
- 配置Greenplum数据目的地
- 配置Redshift数据目的地
- 配置TIDB数据目的地
- 配置FTP数据目的地
- 配置HBase数据目的地
- 配置HDFS数据目的地
- 配置Hive数据目的地
- 配置AnalyticDB for PostgreSQL数据目的地
- 配置Kafka数据目的地
- 数据同步的任务设置
- 读取设置
- 数据源资源组设置
- 批量功能
- SQL类型数据源读取条件设置
- 分数据源读取设置
- MySQL读取设置
- Oracle读取设置
- SQLServer读取设置
- PostgreSQL读取设置
- FTP文件系统读取设置
- S3文件系统读取设置
- Hive读取设置
- Kafka读取设置
- 阿里云OSS读取设置
- API读取设置
- 腾讯云TDSQL读取设置
- Hive数据源读取分区设置
- 其他设置
- 错误队列设置
- 邮件通知设置
- 任务分组设置
- 写入设置
- 批量功能
- 设置清洗脚本
- 数据目的地资源组设置
- 数据目的地设置
- 子任务设置
- 数据源变化设置
- 写入端数据一致性
- 批量读取后,先写入到临时表,再转存到实际表
- 高级设置
- 子任务设置
- Hive分区设置
- Column family 设置
- 数据同步任务管理
- 数据任务监控
- 重要任务
- 故障任务
- 非激活状态
- 性能关注
- 数据任务分组
- 管理数据同步
- 复制功能
- 回滚功能
- 重新同步功能
- 错误队列
- 消息列表
- 文件同步任务
- 创建文件同步
- 配置文件源
- 配置S3文件源
- 配置FTP文件源
- 配置文件目的地
- 配置HDFS文件目的地
- 文件同步的任务设置
- 任务流
- 核心功能介绍
- 新建任务流
- 配置核心组件
- 配置开始任务组件
- 配置数据任务组件
- 配置远程命令执行组件
- 配置延时器组件
- 配置权限设置
- 激活任务流
- 元数据管理
- 查看总览
- 搜索页
- 详情页
- 系统设置
- 数据任务
- 元数据管理
- 用户管理
- 常见问题
- 部署要求
- Docker安装的集群部署方式?
- DataPipeline的并发任务是线程还是进程?
- 分布式架构指的是什么样的框架?
- 生产环境配置推荐及回答?
- DataPipeline的服务是统一管理还是私有化部署?若是私有化部署若要升级怎么操作?
- DataPipeline的Kafka如果与客户目前使用的Kafka版本不一样,是否需要适配?
- 请说明产品的HA和容灾方案 ?
- DataPipeline有多少独立的服务?各容器的作用是什么?
- 在从节点上装mysql,对单表导入1000万数据对任务有影响吗?
- 数据传输
- 数据源/数据目的地
- 基本要求
- 数据源或目的地可以重复使用吗?
- 数据源多个表是否可以写到目的地一张表?
- 数据源或目的地连接失败怎么办?
- 数据源
- MySQL
- DataPieline如何应对Mysql数据库表和字段名称大小写不敏感问题?
- DataPipeline Mysql数据源的实时处理模式下,暂时无法读取哪些字段类型?
- Mysql数据源实时处理模式下,暂不支持那些语句操作的同步?
- Oracle
- Oracle实时模式为LogMiner时,为什么还需要设置读取频率?
- SQL Server
- SQL Server数据源读取方式选择Change Tracking时需要注意什么?
- SQL Server实时模式为Change Tracking时,为什么还需要设置读取频率?
- PostgreSQL
- Hive
- Hive数据源支持哪些文件格式?
- Kafka
- FTP文件系统
- FTP数据源CSV静态表结构时,用户为什么需要确认首行是否为字段名称?
- FTP数据源静态表结构和动态表结构的区别是什么?
- FTP源的文件在不断写入的情况下,DataPipeline的读取与写入的模式是怎样的?
- FTP数据源支持哪些编码方式?
- S3文件系统
- 阿里云OSS文件系统
- API
- 腾讯云TDSQL
- 数据目的地
- MySQL目的地常见问题
- 时区问题需要注意什么?
- SQL Server目的地常见问题
- 行级的物理删除,使用Change Tracking的方式,是否获取的到?DataPipeline会如何处理这类的数据?
- 数据源实时模式是否可以同步视图?
- Oracle目的地常见问题
- TiDB目的地常见问题
- 目的地TIDB同步表时,需要注意什么?
- Redshift目的地常见问题
- Redshift 并发数设置是50,DataPipeline对100个表并发插入的方案?对Redshift 性能的影响?DataPipeline对大数据量并发插入Redshift 的处理方式?
- Hive目的地常见问题
- 如何避免Hive目的地出现小文件问题?
- DataPipeline同步数据到Hive目的地表时,数据源发生变化会怎么样?
- 我们目前对已做好Hive分区逻辑的目的地,是不是不支持继续往里写?只能写新表?
- 配置Hive目的地是需要注意哪些?
- Hive目的地时字段转换需要注意哪些问题?
- GreenPlum目的地常见问题
- Kafka目的地常见问题
- kafka目的地支持设置新的分区吗?
- 多个表结构不一致的表,可以同步至kafka的同一个topic吗?
- HDFS目的地常见问题
- FTP文件系统目的地常见问题
- 目的地FTP时,我们现在是按什么逻辑创建文件的?
- AnalyticDB for PostgreSQL目的地常见问题
- Hbase目的地常见问题
- 目的地常见问题
- 各个数据目的地的写入方式分别是采用什么形式?
- DataPipeline支持的数据库的目标端的连接方式是什么?
- DataPipeline支持的目标端冲突数据处理机制是什么?
- 任务设置
- 读取模式相关问题
- 任务设置中读取频率的实现原理是什么样的?
- 采用实时同步的情况,新建同步任务时,源端的数据表有大量的存量数据,如何通过产品实现数据同步的一致性的?
- 定时批量清目标表数据的逻辑是什么样的?
- 数据源端基于日志的实时模式,是源库推送还是我们做捕获?
- 关系型数据如MySQL,如果出现大量的数据修改,BinLog日志如何抓取,如何实现及时的消费?
- 读取与写入的速率限制是按照任务还是按照表?
- 我们的无侵入性是如何实现的?是完全无侵入性,还是侵入性很小?是否无侵入性就意味着源端服务器没有访问请求的压力,那目的端写入是否还存在压力?
- 动态限速的策略是什么?
- 读写一致性的逻辑是什么?
- v2.6版本增量的逻辑如何实现?
- 重新同步策略问题
- 如果任务激活后进行重新同步,目的地数据会清空吗?
- 读取设置
- 如何设置数据读取条件where语句?有哪些注意事项?
- 用户选择实时模式时,选表时发现有一些表置灰不能同步要想同步这些表该怎么办?
- 同步完成后暂停,取消表后又新加入此表,DataPipeline对于此表的处理策略是什么样的?
- 写入设置
- 表和字段问题
- 目的地表名称和字段名称最长字符长度有什么特定限制吗?以及表名称和字段名称的输入规则要求是什么?
- 同步数据到异构数据库,字段类型会有变化吗?
- 表结构中的精度和标度是什么意思?
- DataPipeline所支持的不同数据类型有哪些?kafka schema的数据类型和不同库间的数据库转换规则?
- 数据源端支持哪些字符集类型?
- Hive作为目的地表需要注意什么?
- Hive作为数据源且格式为parquet时需要注意什么?
- 如何新增一个字段?
- 主键相关问题
- 无主键的表的同步逻辑是怎样的?
- 选择增量识别为主键,如何保证源端和目标的数据一致性呢,如果该记录有修改,系统是怎么处理的?
- 数据目的地ODS有大量无主键表,同步时DataPipeline是如何处理的?
- 表结构变化问题
- 任务激活前后,数据源变化表结构变化有什么不同?
- 当数据源表结构更新时DataPipeline是如何处理的?
- 如果目的地端已经存在了数据库表,但表结构不相同,我们能否将数据写入到该表?
- DataPipeline是否支持将不同的数据表(在不同的数据库中,但是表结构一致,同时有主键和唯一性识别的字段),导入同一个目的端表?
- 管理数据同步
- 基本概念
- 错误通知是什么?
- 错误队列是什么?
- 哪些数据错误会进入错误队列?
- 请简述产品支持的目标端冲突数据处理机制?
- 错误队列里的原始数据是指源端读取的原始数据还是说经过清洗规则后的数据?
- 激活任务后,有哪些参数可以修改?
- 同步状态
- 部分表已读取已写入等都为0,但完成进度为100%?
- 任务详情页中的数据读写量具体含义是?为什么有时候还会减少?
- 如何去查看FTP源和FTP文件中的文件有没有同步完成?
- 数据任务激活后是不允许修改任何设置吗?
- 激活任务后,数据百分比为什么会往回条,如:从99% 跳到30%
- 同步逻辑
- 自动重启逻辑是怎样的?
- 目前数据同步的暂停重启策略是什么样的?暂停和重启后是如何读取和写入数据的?
- 目前进行数据任务的时候,读取速率远大于写入速率,其中,已读取且还未写入的数据会暂时存储在Kafka上,但是由于Kafka存储空间有限,超出后容易造成数据的丢失,这怎么办?
- 如果一条数据多次、频繁变化,在DataPipeline产品侧如何保证数据的并行和保序是如何保证的?
- 用户导入数据后,hdfs认证机制,数据哪些用户可以使用,用户数据安全如何确保?
- 请简述目标端性能可管理性(可提供的性能监控、分析、调优手段等)
- DataPipeline是否支持远程抽取数据?
- 如果一条数据多次、频繁变化,在DataPipeline产品侧如何保证数据的并行和保序是如何保证的?
- 产品到期问题
- 产品使用期限到期所有任务都会被暂停任务,那么如何提前获知产品使用期限是否到期以避免任务被暂停?
- 实际场景中,目的地服务器每周可能会有aws升级,需要暂停服务器,DataPipeline有没有对应的方案能够满足?
- 任务报错
- redis连接异常任务暂停了怎么办?
- 文件传输
- FTP文件源同步整个文件时是如何同步的?
- 任务流
- 如何使用远程命令执行脚本来调取另外一个任务流?
- 任务流开启状态下,任务此时关闭掉任务流,正在同步的组件任务的处理逻辑是什么样的?
- 任务流中上游组件有多个组件任务时,上游任务全部完成才能开启下游任务吗?
- 任务既连了开始键,又配置了依赖,执行逻辑会是什么样的?
- 任务流中新建任务为何只有读取方式为增量识别字段,没有binlog?
- 任务监控
- 什么样的实时传输任务会在性能关注中显示?