数据仓库【数据同步&ETL】

  • ETL数据同步之语言;
  • ETL数据同步之源数据类型;
  • ETL数据加载策略;
  • ETL数据加载策略【增量表详解】
  • ETL数据加载策略【拉链表详解】
    ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
    ETL工具或类ETL的数据集成同步工具或语言,企业生产中工具也非常之多,主流的etl工具有Sqoop、DataX、Canal、flume、Logstash、kettle、DataStage、Informatica、Talend等,语言有强悍的SQL、Shell、Python、Java、Scala等。而数据源多为业务系统,埋点日志,离线文件,第三方数据等。

1、ETL数据同步之工具

    kettle、DataStage、Informatica 三大工具牢牢稳固传统数仓三大主力位置,在如今一些互联网公司使用较多的是sqoop、dataX、Canal等。

1.1 sqoop

    Sqoop,SQL-to-Hadoop 即 “SQL到Hadoop和Hadoop到SQL”。
    是Apache开源的一款在Hadoop和关系数据库服务器之间传输数据的工具。主要用于在Hadoop与关系型数据库之间进行数据转移,可以将一个关系型数据库(MySQL ,Oracle等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。
    sqoop命令的本质是转化为MapReduce程序。sqoop分为导入(import)和导出(export),策略分为table和query,模式分为增量和全量。

1.2 DataX

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
    github地址: https://github.com/alibaba/DataX
    DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader+Writer插件,纳入到整个同步框架中。

1.3 kettle

    Kettle,中文名:水壶,是一款国外免费开源的、可视化的、功能强大的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
    Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。
    Kettle的最大特点:
  • 免费开源:基于Java免费开源软件
  • 易配置:可跨平台,绿色无需安装
  • 不同数据库:ETL工具集,可管理不同数据库的数据
  • 两种脚本文件:transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制
  • 图形界面设计:托拉拽,无需写代码
  • 定时功能:在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时

1.4 canal

    canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据实时订阅和消费,目前主要支持了MySQL,也支持mariaDB。
    很多大型的互联网项目生产环境中使用,包括阿里、美团等都有广泛的应用,是一个非常成熟的数据库同步方案,基础的使用只需要进行简单的配置即可。
    github地址: https://github.com/alibaba/canal
    当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值