导入 Import--增量导入--Lastmodified 模式(Merge key 合并数据) | 学习笔记

简介: 快速学习 导入 Import--增量导入--Lastmodified 模式(Merge key 合并数据)

开发者学堂课程【Sqoop 企业级大数据迁移方案实战导入 Import--增量导入--Lastmodified 模式(Merge key 合并数据)学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/718/detail/12840


导入 Import--增量导入--Lastmodified 模式(Merge key 合并数据)


一、Merge key 合并数据

在这 Lastmodified 种模式下,会根据我们的时间类型的字段进行增量导入,在默认的情况下,是 append 追加(新增的两个数据以追加的形式或者附加的形式产生一个新的文件),另外一个模式叫 Merge key(合并),这种模式是指定相关的 ID 后,会根据我们 id 来进行判断,如果数据有更新或者有变化,就会合并成新的文件,Merge key 相当于把变化数据新增数据的统一的更新到一个文件当中,相当于从零开始做一个更新。

使用 merge-by 的模式进行增量更新,我们去更新 id 1name

字段。

update customertest set name=Neilwhere id=1;

将以上代码进行复制,运行,刷新后会发新名称已经被修改,更新之后,这条数据的时间戳会更新为更新数据时的系统时间

image.png

执行如下指令,把 id 字段作为 merge-key:

bin/sqoop import\

--connect jdbe:mysql://node-1:3306/userdb

--username root

--password hadoop

--table customertest\

--target-dir/lastmodifiedresult\

--check-column last mod

--incremental lastmodified\

--last-value2019-05-28 18:42:06

--m1\

--merge-key id

会发现导入的时间已经增加上了,第一条时间也发生了改变

image.png

这种模式进行合并的时候,相当于做了两件事,第一个如果数据当中有变化,会把变化的数据同步过来,第二个如果数据有追加有新增的数据,也会把增量数据变换过来,而且会出现同一条记录重复的情况,比如说一个表,一个订单或者一个用户信息,这一个月增加了20万个用户,在你把这20万元的数据导入过来的同时,之前的数据可能有某些信息也发生了变化,让你把这些变化的数据也进行同步,用这个模式将会非常的方便,它既可以导入增量数据又可以把更新的数据变化过来,相当于做了一次完整的程序,而且会保证数据的不重复。

小记:

1、关于 lastmodified 中的两种模式:

1oappend 只会追加增量数据到一个新的文件中 并且会产生数据的重复问题,因为默认是从指定的 last-value 大于等于其值的数据开始导入

2o merge-key 把增量的数据合并到一个文件中 处理追加增量数据之外如果之前的数据有变,修改也可以进行修改操作底层相当于进行了一次完整的 m 作业。数据不会重复。

相关文章
|
3月前
|
SQL 关系型数据库 MySQL
五、Sqoop 增量导入:精通 Append 与 Lastmodified 模式
在实际业务场景中,数据是不断变化的,怎么用 Sqoop 实现“只拉新增或变化部分”而不是每次全量导入?这一篇就详细讲清楚 Sqoop 增量导入的两种模式(append 和 lastmodified),重点解释 lastmodified 模式下 merge-key 怎么用,配套实战例子和常见坑,讲完你就能搞明白增量同步该怎么配置了。
269 0
|
9月前
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
基于云服务器的数仓搭建-hive/spark安装
|
SQL 分布式计算 关系型数据库
Sqoop入门(一篇就够了)
Sqoop入门(一篇就够了)
8541 3
Sqoop入门(一篇就够了)
|
分布式计算 算法 大数据
Sqoop性能优化:高效数据传输的技巧
Sqoop性能优化:高效数据传输的技巧
|
SQL 分布式计算 关系型数据库
【数据采集与预处理】数据传输工具Sqoop
【数据采集与预处理】数据传输工具Sqoop
1813 0
|
数据采集 机器学习/深度学习 数据可视化
数据科学面试准备:解决Python数据分析常见问答和挑战
【4月更文挑战第12天】本文介绍了Python数据分析面试中常见的问题和挑战,涉及Pandas、NumPy、Matplotlib等库的基础知识,以及数据预处理、探索性分析、可视化、回归分析和分类分析的方法。例如,使用Pandas处理缺失值和异常值,利用Matplotlib和Seaborn进行数据可视化,通过Scikit-learn进行回归和分类模型的构建。
492 2
|
算法 Apache 数据库
Sqoop的增量数据加载策略与示例
Sqoop的增量数据加载策略与示例
|
存储 数据采集 大数据
大数据必知必会系列——数仓分层架构及三层架构流程[新星计划]
大数据必知必会系列——数仓分层架构及三层架构流程[新星计划]
2272 0
|
存储 缓存 负载均衡
Hbase的Rowkey设计以及如何进行预分区
今天有人问我Hbase的rowkey设计和预分区的问题,这篇文字就简单介绍一下.,关于Hbase的表的一些基本概念这里就不说了,直接说重点,尽可能说的简单一点,废话就不写了. 1.什么是Rowkey? 我们知道Hbase是一个分布式的、面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式.
Hbase的Rowkey设计以及如何进行预分区
|
Web App开发 网络协议 算法
NAT 穿透
之前在WebRTC简介中,我们简单地讲了WebRTC中是如何进行NAT穿透的,但是我觉得当时讲的还不够详细,所以打算通过此文更加深入的总结NAT穿透技术,其中涉及到NAT,STUN协议,TURN协议,ICE协议。