导入 Import--增量导入--Lastmodified 模式(附加数据)| 学习笔记

简介: 快速学习 导入 Import--增量导入--Lastmodified 模式(附加数据)

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

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


导入 Import--增量导入--Lastmodified 模式(附加数据)


一、增量导入

last modified(上一次的更新时间),这种模式下的增量跟表中的时间戳相关,时间这种类型的字段能够表示数据的变化。

首先创建一个 customer 表,指定一个时间戳字段:

Create   table   customer test (id int name var char(20),last mod

timestamp default current timestamp on update current timestamp);

第一个字段 id int,第二个字段 name var char,第三个字段叫做 last mod(上次更新时间),它的类型是timestamp(时间戳类型),default 如果不指定,默认值会是当前系统的时间 current times,而且在更新的时候数据发生修改也未修改为更新的当前时间,就意味着表当中的这个字段会在数据产生变化的时候呢都会更新时间。

首先打 my circle(查询),将以上进行复制,运行并刷新,会发现多了一个名为 customer-test

将以下分别插入如下记录:

insert into customertest(idname)values(1neil’):

insert into customertest(idname)values(2.jack’):

insert into customertest(idname)values(3martin):insertintocustomertest(idname)values(4,tony);insertintocustomertest(idname)values(5,eric);

可以将以上代码进行分别复制和运行,会出现对应的时间

执行 sqoop 指令将数据全部导入 hdfs:

bin/sqoop import\

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

--username root\

--password hadoop\

--target-dir/lastmodifiedresult\

--table customertest-m1

服务器已经提示完成后显示会有五条记录,进行刷新与核对。

改变表数据:

再去 insert 一条记录,进行复制

insert into customer-test(id name) values (6,"James")

运行后,相当于在 customer-test 多了一条数据。

根据时间戳进行增量的导入:

bin/sqoop import \

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

-username root\

-password hadoop\

-table customertest\

-target-dir /lastmodifiedresult \

--check-column last mod \

--incremental lastmodified\

--last-value "2019-05-28 18:42:06"\

--m1\

--append

追加模式:check-column(检测字段)叫做 last mod,追加模式是 last modified,把上一次五条记录粘贴过来,append 进行追加。

将以上代码进行复制,进行运行后会发现出现两条记录,发现刚才的时间又重复了一遍,这是因为采用 last modified 模式去处理增量时,会将大于等于 last-value 值的数据当做增量插入。所以一定要避免导入数据重复的问题。

小记:

增量数据的导入

1、所谓的增量数据指的是上次至今中间新增加的数据

2、osgaop 支持两种模式的增量导入

(1)append 追加根据数值类型字段进行追加导入大于指定的 last-value

(2)lastmodified 根据时间戳类型字段进行追加 大于等于指定的 lastvalue

(3)注意在 lastmodified 模式下还分为两种情形:append merge-key

相关文章
|
JavaScript 数据可视化
基于fabric.js的图片编辑器, 画布背景实现原理
基于vue3 + fabric.js + vite + element-plus + typescript等技术,画布背景原理分析
基于fabric.js的图片编辑器, 画布背景实现原理
|
11月前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
420 2
|
Web App开发 前端开发
css小技巧——鼠标悬浮时切换图片
css小技巧——鼠标悬浮时切换图片
612 0
|
机器学习/深度学习 监控 算法
使用Python和OpenCV实现简单的人脸识别系统
使用Python和OpenCV实现简单的人脸识别系统
308 0
|
机器学习/深度学习 人工智能 监控
人脸识别技术发展历史、技术全解和实战应用
人脸识别技术发展历史、技术全解和实战应用
760 1
|
机器学习/深度学习 人工智能 自然语言处理
好书推荐丨AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀
好书推荐丨AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀
753 2
|
存储 移动开发 前端开发
HTML动态爱心
HTML动态爱心
365 1
|
前端开发 网络协议 Java
Netty | 工作流程图分析 & 核心组件说明 & 代码案例实践
Netty | 工作流程图分析 & 核心组件说明 & 代码案例实践
1100 1
|
新零售 运维 Prometheus
带你读《云原生架构白皮书2022新版》——加速 SaaS 规模化演进,餐道基于 K8s 的云上创新底座(下)
带你读《云原生架构白皮书2022新版》——加速 SaaS 规模化演进,餐道基于 K8s 的云上创新底座(下)
973 91
|
iOS开发
你知道IOS移动端到操作手势有哪些吗?
你知道IOS移动端到操作手势有哪些吗?
564 0