数据只有一个目的:推荐
一、什么是ETL?
二、ETL & ELT
三、常用的ETL工具 3.1 sqoop 3.2 DataX 3.3 Kettle 3.4 canal 3.5 StreamSets
四、ETL加载策略 4.1 增量 4.2 全量 4.3 流式
一、什么是ETL?
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,是数据仓库的生命线。

抽取(Extract)主要是针对各个业务系统及不同服务器的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定可操作的数据源,制定增量抽取和缓慢渐变的规则。

转换(transform)主要是针对数据仓库建立的模型,通过一系列的转换来实现将数据从业务模型到分析模型,通过ETL工具可视化拖拽操作可以直接使用标准的内置代码片段功能、自定义脚本、函数、存储过程以及其他的扩展方式,实现了各种复杂的转换,并且支持自动分析日志,清楚的监控数据转换的状态并优化分析模型。

装载(Load)主要是将经过转换的数据装载到数据仓库里面,可以通过直连数据库的方式来进行数据装载,可以充分体现高效性。在应用的时候可以随时调整数据抽取工作的运行方式,可以灵活的集成到其他管理系统中。

二、ETL & ELT
伴随着数据仓库的发展,数据量从小到大,数据实时性从T+1到准实时、实时,ETL也在不断演进。

在传统数仓中,数据量小,计算逻辑相对简单,我们可以直接用ETL工具实现数据转换(T),转换之后再加载到目标库,即(Extract-Transform-Load)。但在大数据场景下,数据量越大越大,计算逻辑愈发复杂,数据清洗需放在运算能力更强的分布式计算引擎中完成,ETL也就变成了ELT(Extract-Load-Transform)。

即:Extract-Transform-Load >> Extract-Load-Transform

通常我们所说的ETL,已经泛指数据同步、数据清洗全过程,而不仅限于数据的抽取-转换-加载。

三、常用的ETL工具
下面小编将介绍几类ETL工具(sqoop,DataX,Kettle,canal,StreamSets)。

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

3.2 DataX
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台
实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

3.3 Kettle
一款国外免费开源的、可视化的、功能强大的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
3.4 canal
canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据实时订阅和消费,目前主要支持了MySQL,也支持mariaDB。

3.5 StreamSets
是大数据实时采集ETL工具,可以实现不写一行代码完成数据的采集和流转。通过拖拽式的可视化界面,实现数据管道(Pipelines)的设计和定时任务调度。
创建一个Pipelines管道需要配置数据源(Origins)、操作(Processors)、目的地(Destinations)三部分。
四、ETL加载策略
4.1 增量
有些表巨大,我们需要选择增量策略,新增delta数据需要和存量数据merge合并。
两种方法:
merge(一)

merge(二)
只有新增(full join。能拿更新表就拿更新表)

新增+删除
history-table Left join delet-table where delect-table.value is null == 表a
表a full join update-table (能拿update就拿update)

4.2 全量
每天一个全量表,也可一个hive天分区一个全量。

4.3 流式
使用kafka,消费mysql binlog日志到目标库,源表和目标库是1:1的镜像。

推荐系统常用ETL工具、方法【35】相关推荐

  1. JavaScript常用的工具方法

    JavaScript常用的工具方法 1.邮箱 2.手机号码 3.电话号码 4.是否url地址 5.是否字符串 6.是否数字 7.是否boolean 8.是否函数 9.是否为null 10.是否unde ...

  2. 一篇文章搞懂数据仓库:常用ETL工具、方法

    目录 一.什么是ETL? 二.ETL & ELT 三.常用的ETL工具 3.1 sqoop 3.2 DataX 3.3 Kettle 3.4 canal 3.5 StreamSets 四.ET ...

  3. 大数据获取方法;数据采集工具;常用ETL工具简介

    1.采用哪些方式可以获得大数据? 方式1.外部购买数据 有很多公司或者平台是专门做数据收集和分析的,企业会直接从那里购买数据或者相关服务给数据分析师,这是一种常见的获取数据的方式之一. 方式2.网络爬 ...

  4. mysql etl工具有哪些_常用ETL工具

    一 ETL工具 [国外] 1. datastage 点评:最专业的ETL工具,价格不菲,使用难度一般 下载地址:ftp://ftp.seu.edu.cn/Pub/Develop ... taStage ...

  5. 前端常用的工具方法,常用js方法

    1.邮箱 export const isEmail = (s) => {return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2, ...

  6. python工具方法35 实现SWA,再一次提升模型的性能

    SWA是论文Averaging Weights Leads to Wider Optima and Better Generalization所提出的一种无痛涨点的方式,只需要在模型训练的最后阶段保存 ...

  7. 常用元器件使用方法35:SPI Flash芯片W25Q128JVSIQ

    文章目录 前言 一.特性 1.New Family of SpiFlash Memories(SpiFlash存储器新系列) 2.Highest Performance Serial Flash(高性 ...

  8. jquery1.43源码分析之工具方法

    相关文章: jQuery插件开发全解析 读jq之四 jquery1.43源码分析之核心部分 推荐圈子: Jquery 更多相关推荐 这个部分是jquery一些常用的工具方法. 包括为jquery对象扩 ...

  9. 前端常用60余种工具方法(上)

    1.邮箱 export const isEmail = (s) => {return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2, ...

最新文章

  1. centos7 源码编译安装mysql 5.7.21
  2. 高手追小萝莉的故事(洛谷P1184题题解,Java语言描述)
  3. maven学习5 构建MyBatis项目
  4. 【Flink】Flink ClosureCleaner 闭包清除
  5. 管理mysql表知识点,数据库知识点整理(全)
  6. 【NLP】关系提取简述
  7. 真心干货:一起学习阿里巴巴数据中台实践!首次公开!
  8. linux下简单好用的端口映射转发工具rinetd
  9. 有赞MENLO 2022发布会:升级私域运营解决方案,发布人工智能引擎Jarvis
  10. 三级联动下拉列表的开发过程与范例
  11. SiamFC代码分析(architecture、training、test)
  12. JS判断数组是否包含某个元素
  13. 【UCSC Genome Browser】- 小技巧
  14. 怎样做终端安全防御?
  15. java min函数_Java Math min()用法及代码示例
  16. python大气模型算法_[学习笔记][Python机器学习:预测分析核心算法][利用Python集成方法工具包构建梯度提升模型]...
  17. CO03生产订单“状态”值对应表和值描述对应表(TJ02T) 和通过BAPI(STATUS_TEXT_EDIT)获取
  18. 如何做好一个让领导欣赏的下属
  19. 微软在文件夹里插广告,把用户恶心到了,官方:试验功能,不小心推送了!...
  20. 脑机接口竞赛( BCI competition)数据集,其他数据集下载链接

热门文章

  1. 中科大计算机科学与浙大比,2020强基计划高校复旦、上交大、南大、浙大、中科大怎么选?...
  2. elasticsearch head、kibana 安装和使用
  3. STM324G模组实现OTA升级
  4. 夸奖对方代码写的好_程序员名言(赞美程序员的句子)
  5. 如何评价一个程序员的好坏
  6. SpringBoot2访问webapp文件404
  7. whoosh mysql_Whoosh例子
  8. 放苹果———动态规划中的划分数问题
  9. js 方法传this
  10. IPV4 地址不够如何解决