【博学谷学习记录】超强总结,用心分享| ETL基本介绍
1.概念
1.1 Extract
1、抽取OLTP的数据
2、抽取日志数据
3、通过接口抽取第三方数据
1.2 Transform
1、数据清洗
丢弃一些异常数据
处理一些脏数据
处理一些重复数据
2、数据的格式转换
日期:
crate_time year month day
2022-12-23 --> 2022 12 23
2022-1-1 --> 2022-01-01
字符串转换:
"path/list" --> path/list
json数据 --> 解析
1.3Load
1、全量加载
数据全部加载
2、增量加载
每次只加载新增或者修改数据
2 ETL 采集工具
2.1 Kettle
特点:
1:图形化操作
2:底层是Java
3: 支持集群
4: 数据量大时,性能一般
2.2Nify
特点:
1:图形化操作
2:采集数据时会造成大量的IO操作,性能一般
2.3Datax
特点:
1:单进程,多线程
2:不能支撑海量数据的迁移操作
2.4 Sqoop
特点:
1:为Hadoop而生
2:底层是MapReduce
3:支撑大数据量的数据迁移工作
3 Sqoop框架
3.1介绍
1、Sqoop的导入导出
导入: RDBMS -----> Hadoop平台
导出: Hadoop平台 -----> RDBMS
2、Sqoop的重点是写导入导出的命令
3、Sqoop的底层是没有Reduce的MR
Sqoop这是机械性将数据源的数据一条条进行搬移,不需要对数据做额外的聚合,所以不需要Reduce
3.2 导入HDFS-全量
#split-by后边的字段是数字类型
sqoop import \
--connect jdbc:mysql://192.168.88.80:3306/userdb \
--table emp \
--username root \
--password 123456 \
--target-dir /sqoop/result3 \
--delete-target-dir \
--fields-terminated-by '\t' \
--split-by id \
--m 2#如果你要指定多个maptask来完成数据的导入,也就是--m参数的值不是1,则必须添加一个参数--split-by
#该参数用来指定你原表的数据如何分配给多个线程来实现导入
#--split-by id 内部原理是获取id的最小值和id的最大值,进行平均划分SELECT MIN(`id`), MAX(`id`) FROM `emp`#如果split-by后边的字段是字符串类型,则需要添加以下内容-Dorg.apache.sqoop.splitter.allow_text_splitter=true \
3.3导入HDFS-增量
sqoop import \
--connect jdbc:mysql://192.168.88.80:3306/userdb \
--username root \
--password 123456 \
--target-dir /sqoop/result5 \
--query 'select id,name,deg from emp WHERE id>1203 and $CONDITIONS' \
--delete-target-dir \
--fields-terminated-by '\t' \
--m 1
【博学谷学习记录】超强总结,用心分享| ETL基本介绍相关推荐
- [博学谷学习记录]超强总结,用心分享|第07节 常用的API-----笔记篇
目录 1.API 1.1 API概述-帮助文档的使用 1.2 键盘录入字符串 2. String类 2.1 String概述 2.2 String类的构造方法 2.4 创建字符串对象的区别对比 2.5 ...
- {博学谷学习记录} 超强总结,用心分享|狂野架构师-前置互联网架构演变过程
本章以系统架构,数据架构,两种维度来进行讲解 目录 1 系统架构 1,1 单体架构 1.2 中台战略 2 数据库架构 2,1 单体架构 2.2 主从读写 2.3 分库分表 3 总结 1 系统架构 1, ...
- [博学谷学习记录]超强总结,用心分享|架构 Nacos入门
提示:学习笔记 欢迎指点 文章目录 前言 一.Nacos安装 二.Nacos服务注册与发现 1.服务提供者Provider 2.服务消费者Consumer 三.Nacos作为配置中心 前言 Nacos ...
- [博学谷学习记录]超强总结,用心分享|架构 敏捷 - 开发管理之道
提示:学习笔记 欢迎指点 文章目录 1.敏捷开发思想之道 2.面向对象开发之道 3.敏捷学习之道 1.敏捷开发思想之道 一名敏捷开发者,敏捷思想的掌握自然首当其冲.在敏捷开发实施的过程中,我们虽然不是 ...
- [博学谷学习记录]超强总结,用心分享|第16节 集合续-----笔记篇
目录 1.HashSet集合 1.1HashSet集合概述和特点[应用] 1.2HashSet集合的基本应用[应用] 1.3哈希值[理解] 1.4哈希表结构[理解] 1.5HashSet集合存储学生对 ...
- [博学谷学习记录] 超强总结,用心分享|陌陌综合案例
注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flin ...
- [博学谷学习记录]超强总结,用心分享|Hive的压缩格式
压缩格式 工具 算法 文件扩展名 是否可切分 DEFAULT 无 DEFAULT .deflate 否 Gzip gzip DEFAULT .gz 否 bzip2 bzip2 bzip2 .bz2 是 ...
- [博学谷学习记录]超强总结,用心分享|软件测试之计算机基础(一)
本周开始学习软件测试,而我也即将开始在平台记录我的学习之路.我会把我的个人心得及掌握的知识发布在此平台,俗话说最好的输入就是输出,希望在输出的同时能有更多的收获,也希望与大家多多交流. 为了更好的学习 ...
- [博学谷学习记录]超强总结,用心分享|人工智能机械学习基础知识线性回归总结分享
1.线性回归的核心是参数学习,线性回归和回归方程(函数)有关 2.线性回归是目标值预期是输入变量的线性组合 3.欠拟合的产生原因是学习到数据的特征过少 4.多元线性回归中的"线性" ...
- [博学谷学习记录] 超强总结,用心分享|JavaEE就业课-尊享无忧+Java基础语法|面向对象(1wk)
学习笔记目录 目录 学习笔记目录 前言 一.变量 1. 关键字:被java赋予特殊含义的字符 2. 常量:不会发生改变的量(数据)编辑 3. 变量:内存中的存储空间. 4. 类型转换 5. 算术运算 ...
最新文章
- SQL中的case when then else end用法
- 广东安网2016:重拳挥出 打造安宁互联网环境
- 用java编写一个函数,统计一个字符串中每个字母出现的次数
- cocos2dx-lua之断点调试支持
- mysql+提升更新语句效率_MySQL加快批量更新 UPDATE优化
- Excel分列功能的妙用
- 如何提高阅读源代码的效率 .
- demo12 webpack 处理 scss
- code principles
- Android Studio Template(模板)开发,最后有参考
- “春风又绿江南岸”真正的关键是什么?
- Windows电脑生成iOS证书p12及mobileprovision文件文档
- P800 GPS 地图安装教程
- 9、电话区号信息API接口,免费好用
- Navicat 被投毒了 | 调查结果来了
- Android版疯狂填字第三关,iOS/安卓版《疯狂填字》答案攻略第三十八关
- unity3d中如何将Hierarchy中的物体批量拖到Inspector中的数组中?
- Jquery实现点击事件的四种写法
- 西南科技大学数电FPGA第一次实验报告
- 经典面试题扔鸡蛋(Google面试题附带LeetCode例题)