不知不觉中,大家已经陪伴DataPipeline走过了3年时间。在这期间,得益于客户们的积极反馈和沟通,我们总结了一些日常工作中比较常见的问题,并基于这些问题进行了总结。

为避免突兀,我们会先从比较基础且通用的问题开始,进而陆续放出一些稍加复杂的问答,希望大家在接下来的日子里持续关注我们的更新~

Q1: DataPipeline支持的读取方式

A:DataPipeline在成立之初只有一种模式,只支持实时流同步,在我们看来这是未来的一种趋势。

但在后来发现,很多客户实际上有批量同步的需求。比如,银行在每天晚上可能会有一些月结、日结,证券公司也有类似的结算服务。基于一些历史原因,或出于对性能、数据库配置的考虑,可能有的数据库本身不能开change log。所以实际上并不是所有情况下都能从源端获取实时的流数据。

考虑到上述问题,我们认为一个产品在支撑数据融合过程中,必须能同时支撑批量和流式两种处理模式,且在产品里面出于性能和稳定性考虑提供不同的处理策略,这才是一个相对来说比较合理的基础架构。

详情参见:DataPipeline CTO陈肃:构建批流一体数据融合平台的一致性语义保证

Q2:目标端的连接方式是什么

A:对于关系型数据库,写入方式为JDBC,未来版本将通过文件加载的方式提高吞吐率。其它类型的目的地,根据具体类型各不相同。例如FTP目的地用的是FTP Client,Kafka目的地用的是Kafka Producer。

Q3:采集和写入能否对数据进行加密

A:如果是要对数据内容加密可以使用高级清洗。

Q4:DataPipeline安装部署模式

A:DataPipeline 产品是采用Docker容器的部署方式,支持Docker集群;支持虚拟环境(VMW)部署,但不推荐,DataPipeline正在研发支持非Docker部署。

Q5:DataPipeline是否支持图形化监控

A:DataPipeline支持读写速率、数据量、任务进度、错误队列、操作记录、表结构等图形化监控。

Q6:数据库日志保留策略多久合适

A:如,MySQL Binlog保留策略,建议保留日志策略>=3天。

Q7: 后续增量导入数据如何保证一致性

A:DataPipeline默认支持at least once同步机制,保证数据不会在同步过程中丢失。这适合源端有主键、目的地有主键去重能力的场景,例如关系型数据库到关系型数据库的同步。

如果类似Hive这样没有主键去重能力的目的地,DataPipeline支持开启任务级别的端到端一致性选项,通过多阶段提交协议来保证数据一致性。

Q8:监控报警一般在项目上如何使用

A:DataPipeline的数据任务有监控看板和报警两种方式,报警会发送到指定的邮箱,根据错误类型,可以选择重启或通知技术支持,DataPipeline会有工程师协助客户排查错误。

Q9:是否方便扩容

A:DataPipeline支持动态扩容,当集群资源紧张时,无需暂停现有任务,增加新节点后,即可以实现集群的扩容。

Q10:如果一条数据多次、频繁变化,DataPipeline如何保证数据的并行和顺序?

A:DataPipeline源端会将任务按照一定原则拆分为多个互不干扰的子任务进行并行执行。例如:在JDBC源读取场景下,如果任务包括多张表,每个表是由一个独立线程进行顺序读取的,线程并行度可以在任务属性中进行设置。

为了保证顺序写入和读取,默认每个单独子任务会创建一个独立的topic,设置一个分区,这样目标端消费的时候,同一个topic只有一个consumer在进行消费,从而保证消费的顺序性。如果可以接受非顺序消费,也可以为一个topic创建多个分区,这样目的端可以更好地利用Kafka的并行能力提高吞吐量。

本篇集中介绍了10种问题答疑,如果你在工作中遇到了类似的问题,或者对一些答疑心存疑惑,欢迎与我们交流。

Q&A系列一:DataPipeline常见问题回答的更多相关文章

  1. HTTP/2 常见问题回答

    常见问题 为什么修订HTTP? HTTP/1.1已经很好的服务Web超过15个年头,但它的劣势开始显现. 载入一个Web页面比之前占用更多的资源(详情可见HTTP压缩页大小统计),有效的载入这些资源很 ...

  2. arcgis for android常见问题回答

    Q:arcgis for android最新版本是多少?(2014-7-18) Arcgis for android 10.2.3 sdk 百度盘下载地址:http://pan.baidu.com/s ...

  3. Nexus5如何手动OTA更新系统到4.4.3、4.4.4及常见问题回答

    这里将记录一套行之有效的Nexus5手动升级方法,以帮助看见这篇文章的朋友成功将手头的Nexus5升级到4.4.4. 因为谷歌服务器的事,我的这次OTA更新起来走了很多弯路.我试过挂VPN等待系统来更 ...

  4. Q:关于栈的常见问题

     对于栈,一个常见的问题是:给定一个序列a0,a1,a2,a3...an依次顺序入栈,在元素顺序入栈的过程中,栈中任意一个元素可以选择是否出栈,则其共有几种出栈的可能,给定的出栈序列中,哪种是不可能的 ...

  5. Docker入门系列5:常见问题小结

    重启容器 再次运行容器: docker start container_id 然后 docker attach container_id 就可以继续下命令了. [编辑]命名 --name [编辑]端口 ...

  6. linux系列之-—03 常见问题

    问题1 描述:Linux如何查看JDK的安装路径 问题2 描述:执行shell脚本时报错,错误信息为:bash: line 19: jar: command not found 原因:因为在系统环境变 ...

  7. ENS中文文档系列之三 [ ENS常见问题 ]

    原文地址:https://ensuser.com/docs/frequently-asked-questions.html更多最新信息,请前往 ENS 中文服务站点:ENSUser 关于 ENS 注册 ...

  8. 转移iOS App常见问题和回答

    打算转移公司的app,做下转移的记录 怎样转移app官方的一个视频:http://v.youku.com/v_show/id_XNjI0MjQxMzI0.html 以下是apple官方转移常见问题回答 ...

  9. DataPipeline CTO陈肃:从ETL到ELT,AI时代数据集成的问题与解决方案

    引言:2018年7月25日,DataPipeline CTO陈肃在第一期公开课上作了题为<从ETL到ELT,AI时代数据集成的问题与解决方案>的分享,本文根据陈肃分享内容整理而成. 大家好 ...

随机推荐

  1. oracle使用DECODE函数来减少处理时间

    使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如: SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAM ...

  2. HTML5有哪些新特性?移除了哪些元素?

    HTML5新特性: 拖放(Drag and drop)API 语义化标签(header.nav.footer.section.article.aside) 音频.视频(audio.video)API ...

  3. C#面向对象--练习题

    public class Program { //用户自定义:我们自己定义这种数据类型 public struct jiegouti// 结构体前面加上public, 可供外界访问 { public ...

  4. Porject Euler Problem 6-Sum square difference

    我的做法就是暴力,1+...+n 用前n项和公式就行 1^2+2^2+....+n^2就暴力了 做完后在讨论版发现两个有趣的东西. 一个是 (1+2+3+...+n)^2=(1^3)+(2^3)+(3 ...

  5. 横向tab计算滚动位置

    React横向滚动计算 class Footer extends React.Component { handleClick(e) { const offset = 150; // 指定偏移量 thi ...

  6. Node.js 安装及环境配置 以及google浏览器安装插件并使用

    一.安装环境 1.本机系统:Windows 10 企业版(64位)2.Node.js:node-v10.16.0-x64.msi(64位) 二.安装Node.js步骤 1.下载对应自己系统对应的 No ...

  7. 多线程:“对象当前正在其他地方使用”如何解决 system.drawing

    使用这个委托,在拥有此控件的基础窗口句柄的线程上执行指定委托 this.Invoke(new Action(() => { node.SetValues(values); }));

  8. Python--day41--守护线程

    1,守护线程:守护线程会在主线程结束之后等待其他子线程的结束才结束 拓展--守护进程:守护进程随着主进程代码的执行结束而结束 代码示例:守护线程.py import time from threadi ...

  9. H3C DHCP租约更新

  10. JVM调优-Jstack线程分析

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...