一、ETL
Extract-Transform-Load: 抽取->转换->加载 抽取(Extract):一般抽取过程需要连接到不同的数据源,以便为随后的步 骤提供数据。这一部分看上去简单而琐碎,实际上它是 ETL 解决方案的成 功实施的一个主要障碍。
转换(Transform):任何对数据的处理过程都是转换。这些处理过程通常包 括(但不限于)下面一些操作: 移动数据 根据规则验证数据 数据内容和数据结构的修改 将多个数据源的数据集成 根据处理后的数据计算派生值和聚集值
加载(Load):将数据加载到目标系统的所有操作。
二、实现方式
-
手工编码
-
编写脚本
-
Java
-
Python
三、ETL工具
商业ETL软件:
InformaticalIBM
DataStage Microsoft SSIS
Oracle ODI
。。。
四、对比
名称 | 核心 | 优劣 |
---|---|---|
OGG | 不开源 | |
Canal | binglog | 只支持Mysql |
otter | 利用canal来进行同步的, canal作为其数据源组件 |
依赖组件 |
DataX | 多数据源支持,通过select同步 | 不支持ddl同步 |
kettle | 功能强大,多数据源,多语言, 扩展性好,通过select同步 |
学习成本高 |
FlinkX | 袋鼠云开源的,批流处理, 多用于大数据量(实时、离线),通过 |
通过select查询 |
Porter |
相似点: •Pentaho 和Informatica都提供了大量的转换步骤、脚本功能,都可以处理复杂的ETL 转换。
kettle 的优点:
1 Kettle 的易用性比Informatica好,需要的培训要少很多。
2 Kettle 不需要像Informatica那样大的前期投入
3 Kettle 的插件架构支持快速定制开发
informatic的优点:
1 informatica的错误报告功能比Kettle 更友好,更容易定位错误。Kettle 通常只把异常抛出,需要实施人员有更丰富的经验。
2 Informatica比Kettle 有更好的监控工具和负载均衡等企业级应用功能,更适合大规模的ETL 应用
。。。
参考资料
ETL工具对比 偏向性较强