导入 Import--增量导入--Append 模式 | 学习笔记

简介: 快速学习 导入 Import--增量导入--Append 模式

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

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


导入 Import--增量导入--Append 模式


内容介绍:

一、Append 模式增量导入

二、Lastmodified 模式增量导入

三、Lastmodified 模式:appendmerge-key

 

在企业中实际工作当中,比如公司从今天开始成立了数据分析部门,今天需要做的就是把所有的数据全部导入进来,这叫做全量数据,导入之后过了一个星期之后有需要分析需要分析,老板要求把新增加的数据导入进来进行分析,这个时候就没有必要把所有数据从零开始全部导入进来,只需要把这一个星期之内新增加的数据导入进来,新增加的数据就被称为增量数据,在企业的实际工作当中,往往数据的导入都是增量数据的导入而不是每次都需要把全部表的数据都导入进来,因为这样的导入第一工作量比较大,第二之前导过再导入会产生数据的重复,那么 sqoop 在底层也满足增量导入,其实要想支持增量导入首先需要一个判断的依据,我上一次干到哪里了,这一次需要从哪里继续,叫增量导入。比如说导入一个叫学生的表,上一周导入到了学生编号为1202,那么这周就应该从1203开始导入,下一周导入到1303,这样从理论上猜想他的技术,有一个判断的依据来作为检测某一字段是不是有增量的变化。在 sqoop 进行增量导入有三个核心参数来控制,如下:

--check - columnl ( col )

用来指定一些列,这些列在增量导入时用来检查这些数据是否作为增量数据进行导入,和关系型数据库中的自增字段及时间戳类似。这个列不是瞎导入,比如说制定学生姓名,上一次导入到张三,这次是李四就是不可以的。这个字段往往是组件是数字字段或时间戳,因为字增长不重复。并且字段可以指定多个,比如制定一个id组件再指定一个更新的时间。

注意:这些被指定的列的类型不能使任意字符类型,如 char varchar 等类型都是不可以的,同时--check -column 可以去指定多个列。

-- incremental ( mode )增量导入的模式

append :追加,比如对大于 last - value 指定的值之后的记录进行追加导入。

lastmodified:最后的修改时间,追加 last - value 指定的日期之后的记录。

-- last - value ( value )

指定自从上次导入后列的最大值(大于该指定的值),也可以自己设定某一值。

增量导入是仅导入新添加的表中的行的技术。

 

一、 Append 模式增量导入

执行以下指令先将我们之前的数据导入:

bin / sqoop import \

--connect jdbc:mysql :// node -1:3306/userdb\

--username root \

--password hadoop \

--target - dir / appendresult \

--table empm1

使用 hadoop fs - cat 查看生成的数据文件,发现数据已经导入到 hdfs 中。

然后在 mysql emp 中插入2条增量数据:

image.png

执行如下的指令,实现增量的导入:

bin / sqoop import \

-- connect jdbc : mysq // node -1:3306/userdb\

--username root \-- password hadoop \

-- table emp --m 1\

-- target - dir / appendresult \

--incremental append \

--check - column id \(检测字段为 id

-- last - value 1205

image.png

最后验证导入数据目录 可以发现里面多了一个文件 里面就是增量数据

image.png

打开脚本,首先把之前所有的数据进行全量导入,把 emp 表中的全部数据导入 appendresult 中,有五条数据,

发现现在这个表中的全量数据跟增量没有关系,

image.png

接下来模拟经过一天产生了新的数据,往表中插入两条记录,insert into 复制下来,

image.png

新建一个查询,选中做一个运行,

image.png

然后刷新 emp 数据记录表发现多了两条数据。

image.png

append 为追加模式,--check - column id 检测字段 id-- last - value 1205猜想这次应该从1206开始导入。

image.png

接下来看看是否能把增加的数据全部导入,有没有重复有没有问题。打开 sqoop 进行执行,sqoop 必须借助 m 码来执行,所以需要一定的时间。在网页中发现现在又多了一个新的文件-00001

image.png

打开文件发现里面只有1206,1207两条数据,这样就满足了增量数据的追加导入。

image.png

在进行 append 时,上一次检测的字段往往是数值类型的,不能乱写,至于数值是多少,由自己来指定,默认为上次的最大值,比如说这次结束时是1207,那么下次就从1208开始。要注意细节,不要造成数据的重复。

相关文章
|
3月前
|
人工智能 JSON Oracle
Oracle中各个c版本介绍
Oracle数据库“c”系列(Cloud)始于2013年12c,标志多租户架构革命。当前生产首选19c(长期稳定),学习与AI应用推荐23ai(原23c),支持向量搜索与JSON关系二元性;21c为短期创新版,12c/18c已停更。云原生演进清晰,稳中求新。(239字)
954 4
|
Java 数据库连接 Spring
如何在Spring Boot中使用`@Retryable`注解来实现重试机制?
如何在Spring Boot中使用`@Retryable`注解来实现重试机制?
2088 0
如何在Spring Boot中使用`@Retryable`注解来实现重试机制?
|
安全 Linux iOS开发
Anaconda下载及安装保姆级教程(详细图文)
Anaconda下载及安装保姆级教程(详细图文)
37789 1
Anaconda下载及安装保姆级教程(详细图文)
|
4月前
|
Java 数据中心
Java 并发核心:CountDownLatch、CyclicBarrier、Semaphore 原理吃透 + 生产级实战
本文深度解析JUC三大核心并发工具:CountDownLatch(一次性等待)、CyclicBarrier(可重用屏障)和Semaphore(信号量限流)。从AQS原理、源码关键点、生产实战、易混淆对比到避坑指南,五维讲透多线程协作本质,助力高并发系统稳定落地。
457 1
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
40065 184
|
5月前
|
人工智能 自然语言处理 监控
大型企业怎么做数据治理?(2026年2月最新)
2026年,数据治理迈入深水区。瓴羊Dataphin作为智能“数据大脑”,融合AI建模、企业语义层、流批一体与全景资产管理,协同Quick BI(对话式分析)和Quick Audience(隐私计算营销),打通“采建管—用运营”全链路,助力大型企业构建“读得懂、反应快、融得通”的数智治理体系。(239字)
|
安全 测试技术 数据库
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(二)
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(二)
达梦 DM8 数据库安装详细手册(Windows+Linux+Docker)(二)
|
11月前
|
存储 前端开发 JavaScript
Cookie、Session、Token、JWT 是什么?万字图解带你一次搞懂!看完这篇,你连老奶奶都能教
HTTP 协议是无状态的,就像一个“健忘”的银行柜员,每次请求都像第一次见面。为解决这一问题,常用的技术包括 Cookie、Session 和 Token。Cookie 是浏览器存储的小数据,Session 将数据存在服务器,Token(如 JWT)则是自包含的无状态令牌,适合分布式和移动端。三者各有优劣,适用于不同场景。
1259 0
Cookie、Session、Token、JWT 是什么?万字图解带你一次搞懂!看完这篇,你连老奶奶都能教
|
机器学习/深度学习 算法 TensorFlow
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
学习率是深度学习中的关键超参数,它影响模型的训练进度和收敛性,过大或过小的学习率都会对网络训练产生负面影响,需要通过适当的设置和调整策略来优化。
3076 0
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
|
Java 数据库连接 Spring

热门文章

最新文章