数据分析实战 45 讲
陈旸
清华大学计算机博士
123928 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
第二模块:数据分析算法篇 (20讲)
第四模块:数据分析工作篇 (2讲)
数据分析实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

12 | 数据集成:这些大号一共20亿粉丝?

Hop
Job Entry
输出
中间转换
输入
Sqoop
DataX
Scriptella
Apatar
Talend
Kettle
Microsoft SQL Server Integration Services
Oracle Data Integrator
IBM InfoSphere DataStage
Informatica PowerCenter
Transform
Load
Extract
Load
Transform
Extract
需要掌握ETL开发工具和主流数据库技术
重要工作职位
用于Hadoop和关系型数据库之间的数据传递
跨平台、跨数据库、不同系统之间的数据同步及交互
案例1:文本文件转化到MySQL数据库
创建Job
创建Transformation
Job
Transformation
可视化操作
开源软件
商业软件
ELT
ETL
80%的大数据项目工作与数据集成有关
将多个数据源合并存放在一个数据存储中
ETL工程师
Apache开源软件:Sqoop
阿里开源软件:DataX
Kettle工具的使用
Kettle工具
ETL工具
数据集成的两种架构
数据集成概念
数据集成

该思维导图由 AI 生成,仅供参考

我们采集的数据经常会有冗余重复的情况。举个简单的例子,假设你是一个网络综艺节目的制片人,一共有 12 期节目,你一共打算邀请 30 位明星作为节目的嘉宾。你知道这些明星影响力都很大,具体在微博上的粉丝数都有标记。于是你想统计下,这些明星一共能直接影响到微博上的多少粉丝,能产生多大的影响力。
然后你突然发现,这些明星的粉丝数总和超过了 20 亿。那么他们一共会影响到中国 20 亿人口么?显然不是的,我们都知道中国人口一共是 14 亿,这 30 位明星的影响力总和不会覆盖中国所有人口。
那么如何统计这 30 位明星真实的影响力总和呢?这里就需要用到数据集成的概念了。
数据集成就是将多个数据源合并存放在一个数据存储中(如数据仓库),从而方便后续的数据挖掘工作。
据统计,大数据项目中 80% 的工作都和数据集成有关,这里的数据集成有更广泛的意义,包括了数据清洗、数据抽取、数据集成和数据变换等操作。这是因为数据挖掘前,我们需要的数据往往分布在不同的数据源中,需要考虑字段表达是否一样,以及属性是否冗余。

数据集成的两种架构:ELT 和 ETL

数据集成是数据工程师要做的工作之一。一般来说,数据工程师的工作包括了数据的 ETL 和数据挖掘算法的实现。算法实现可以理解,就是通过数据挖掘算法,从数据仓库中找到“金子“。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了数据集成的重要性以及ETL和ELT两种常见的架构方式。文章详细介绍了Kettle工具的使用方法,包括Transformation和Job的创建过程,并给出了将文本文件内容转化到MySQL数据库的案例。此外,还介绍了阿里开源软件DataX和Apache开源软件Sqoop。总结指出ETL工程师需要掌握至少一种ETL开发工具,熟悉主流数据库技术,并鼓励读者分享对数据集成的理解和ETL工具的选择和使用经历。文章内容丰富,涵盖了数据集成的基本概念和工具操作,适合数据工程师和对数据集成感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《数据分析实战 45 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(53)

  • 最新
  • 精选
  • Monica
    置顶
    在“数据分析实战交流群”,老师分享了额外干货资料:“Kettle的操作视频”,有入群需求的,可加我的微信:imonica1010,和老师及同学们交流数据分析的学习心得。 由于申请人数太多,进群免费但设置了一道小门槛,欢迎加我,了解入群规则。
    2019-01-09
    3
    22
  • 云深不知处
    大约三年大数据工程师工作,从最开始的数据集成(sqoop、代码、商用软件ETL工具等),将数据汇聚到数据仓库,理解业务,清洗应用需要的数据。数据集成是将多源(多系统)、多样(结构化、非结构化、半结构化)、多维度数据整合进数据仓库,形成数据海洋,更好的提供业务分析系统的数据服务,通过数仓的数据集成,达到数据共享的效果,降低对原始业务系统的影响,同时加快数据分析工作者的数据准备周期。数据集成最开始就是原始系统的数据,照样搬到数据仓库,这种类型工作长期实施,容易疲劳失去兴趣,理解业务需求,通过自己的数据集成、清洗、数据分析,提供有意思的数据,就是挖金子过程,应该也是一件有趣的事情。

    作者回复: 很好的分享,很多人都在做数据集成的工作,时间长了难免失去兴趣,相反数据分析会更有价值,能从数据中提炼金子

    2019-06-09
    27
  • JingZ
    #2019/1/9 Kettle数据集成 1、安装jdk:官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,下载mac版的JDK,下载后,直接安装。终端验证java-version~ 2、安装Kettle:https://sourceforge.net/projects/pentaho/files/Data%20Integration/ 下载最新pdi-ce-8.2.0.0-342.zip压缩包,直接生成data integration文件夹 3、下载数据库驱动:https://dev.mysql.com/downloads/connector/j/ mysql-connector-java-5.1.41.tar.gz解压,但是出现了query-cache-size问题,重新下载最新mysql-connector-java-8.0.13.tar.gz,又出现找不到jar文件。重启也不行~最后两个文件都放在了data integration/lib里面,貌似就可以了,这块还需再探索 4、打开终端,启动Kettle:sh spoon.sh打开Spoon,开始文本输入和表输出了 5、安装MySQL,同时安装了MySQL WorkBench建立数据库wucai和表score,目前出现表输出Unexpected batch update error committing the database connection和org.pentaho.di.core.exception.KettleDatabaseBatchException问题,可能是对SQL设置问题,还需debug 接触新工具,还需多实践

    作者回复: 加油~ 不错的整理

    2019-01-09
    14
  • 奔跑的徐胖子
    希望有如我一般的使用Mac的屌丝注意,安装完了Kettle之后,要去mysql官网下载驱动,这个驱动不能用最新版本的,要用老版本的才能连接数据库,我用的是5.1.46

    作者回复: 感谢分享

    2019-03-22
    2
    13
  • veical
    加载就是把转换后的数据从中间层(stage层,通常是一个数据库或数据库集群)导入数据分析层,然后才能在模型中用这些干净的数据进行数据分析

    作者回复: 对的

    2019-01-10
    6
  • qinggeouye
    1、搭环境(open jdk , mysql 8.0 , mysql-connector for java, kettle) 2、启动 kettle , 实操 ...

    作者回复: 嗯 加油~

    2019-11-12
    2
  • 羊小看
    目前我们做的业务需求比较多,一个需求有时会关联五六张表,所以我们特别希望可以先做转换,做成大宽表,入仓,可以直接用。 老师说的先加载再转换,是适用于做数据挖掘时吗?

    作者回复: 两种方式都适用于数据挖掘的情况

    2019-08-27
    2
  • Sandy
    我现在每天的工作就是写kettle job

    作者回复: 不错的分享,看来ETL工作需求还是挺大的

    2019-04-08
    2
    1
  • 旭霁
    数据库 MySQL 操作 本地登录 mysql -u root -p 创建数据库 wucai CREATE DATABASE wucai; 查询数据库 show databases; 切换/进入数据库 wucai use wucai; 创建数据库表 score。包含 create_time、name、Chinese、English、Math 五个字段。 CREATE TABLE score (create_time VARCHAR(255) NULL, name VARCHAR(255) NULL, Chinese VARCHAR(255) NULL, English VARCHAR(255) NULL, Math VARCHAR(255) NULL); 查询数据库表 show tables;

    作者回复: God Job

    2019-03-19
    1
  • lemonlxn
    通过pandas预处理数据,然后用 pd.to_sql 的方式直接写到 数据库里面,这个方式感觉会更快。 或者通过 Koalas 的 to_spark 后的overwrite模式,可以直接 将数据写入到 DBFS里面的

    作者回复: 不错的分享

    2020-09-18
收起评论
显示
设置
留言
53
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部