Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
创始人
2025-01-15 22:37:06
0次

章节内容

上节我们完成了如下的内容:

  • Sqoop MySQL迁移到Hive
  • Sqoop Hive迁移数据到MySQL
  • 编写脚本进行数据导入导出测试

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

在这里插入图片描述

CDC

全称为:变化数据捕获(Change Data Capture)
我们前面执行的都是全量数据的导入。

  • 如果数据量很小,则采取完全源数据抽取
    • 如果源数据量很大,则需要抽取发生变化的数据,这种数据抽取模式叫:“变化数据捕获”,简称 CDC。

如果CDC是侵入式的,那么操作会给源系统带来性能的影响。

基于时间戳

抽取过程可以根据某些属性列来判断哪些数据是增量的,最常见的属性列有以下两种:

  • 时间戳:最好有两个列,一个插入时间戳,表示何时创建,一个更新时间戳表示最后一次更新时间。
  • 序列:大多数数据库都提供自增功能,表中的列定义成自增的,很容易得根据该列识别新插入的数据

时间戳是最简单且常用的,但是有如下缺点:

  • 不能记录删除记录的操作
  • 无法识别多次更新
  • 不具有实时的能力

基于触发器

当执行:INSERT、UPDATE、DELTE 这些 SQL 语句时,激活数据库的触发器,使用触发器可捕获变更的数据,并把数据保存中间临时表里。
大多数场合下,不允许向操作性数据库里添加触发器,且这种会降低系统性能,基本不会采用。

基于快照

可以通过比较源表和快照表来得到数据的变化,基于快照的CDC可以检测插入、更新、删除等数据,这是相对于时间戳的CDC方案的优点。
缺点就是需要大量的空间。

基于日志

最复杂和没有侵入性的就是基于日志的方式,数据库把每个插入、更新、删除都记录到日志里,解析日志文件,就可以获取相关的信息。
每个关系型数据库:日志格式不一致,没有通用的产品。
阿里巴巴的Canal可以完成MySQL日志文件解析。

Append方式

初始化数据

删除 MySQL 中的数据

-- 删除 MySQL 表中的全部数据 truncate table sqoop.goodtbl; 

删除Hive中的数据

-- 删除 Hive 表中的全部数据 truncate table mydb.goodtbl; 

重新生成数据

这个SQL是之前章节写的函数方法,如果你第一次看到这里,你可能需要把前边的文章执行一次。

-- 向MySQL的表中插入100条数据 call batchInsertTestData(1, 100); 

导入Hive

sqoop import \ --connect jdbc:mysql://h122.wzk.icu:3306/sqoop \ --username hive --password hive@wzk.icu \ --table goodtbl \ --incremental append \ --hive-import \ --fields-terminated-by "\t" \ --hive-table mydb.goodtbl \ --check-column serialNumber \ --last-value 50 \ -m 1 

以上参数说明:

  • check-column 用来指定一些列,来检查是否可以作为增量数据进行导入,和关系型数据库自增或时间戳类似。
  • last-value 制定上一次导入检查列指定字段的最大值

在这里插入图片描述

检查Hive

我们通过指令查看 Hive 同步了多少数据过来:

select count(*) from mydb.goodtbl; 

继续生成

call batchInsertTestData(200, 1000); 

增量导入

sqoop import \ --connect jdbc:mysql://h122.wzk.icu:3306/sqoop \ --username hive --password hive@wzk.icu \ --table goodtbl \ --incremental append \ --hive-import \ --fields-terminated-by "\t" \ --hive-table mydb.goodtbl \ --check-column serialNumber \ --last-value 100 \ -m 1 

检查Hive

重新查看Hive,看看目前同步了多少数据过来

select count(*) from mydb.goodtbl; 

相关内容

热门资讯

玩家必看秘籍作弊器!红豆大厅作... 玩家必看秘籍作弊器!红豆大厅作弊器多功能AI脚本,红豆大厅好像是真的有作弊器脚本进入游戏-大厅左侧-...
一分钟教你透视挂!南京麻将透视... 一分钟教你透视挂!南京麻将透视挂多功能AI软件,南京麻将原来是真的有透视挂软件1、进入游戏-大厅左侧...
避坑细节透视器!战皇透视器多功... 避坑细节透视器!战皇透视器多功能AI技巧,战皇本来真的有透视器技巧亲,关键说明,战皇透视脚本安卓赛季...
每日必看透视器!好运透视器多功... 每日必看透视器!好运透视器多功能AI攻略,好运总是真的是有透视器攻略1、全新机制【好运ai辅助工具激...
科技通报辅助!河洛杠次辅助多功... 科技通报辅助!河洛杠次辅助多功能AI工具,河洛杠次确实存在有辅助工具亲,关键说明,河洛杠次透视脚本安...
一分钟教会你作弊器!起点休闲作... 一分钟教会你作弊器!起点休闲作弊器多功能AI技巧,起点休闲好像真的是有作弊器技巧1、起点休闲破解器简...
9分钟了解作弊器!心悦辽宁麻将... 9分钟了解作弊器!心悦辽宁麻将作弊器多功能AIapp,心悦辽宁麻将都是是有作弊器app1、心悦辽宁麻...
一分钟揭秘作弊器!卡卡众娱作弊... 一分钟揭秘作弊器!卡卡众娱作弊器多功能AI技巧,卡卡众娱原来是有作弊器技巧1、完成卡卡众娱辅助器v3...
科技新动态辅助!三打哈辅助多功... 科技新动态辅助!三打哈辅助多功能AI软件,三打哈其实存在有辅助软件所有人都在同一条线上,像星星一样排...
必看攻略透视挂!小熊猫麻将透视... 必看攻略透视挂!小熊猫麻将透视挂多功能AI脚本,小熊猫麻将确实是有透视挂脚本1、小熊猫麻将免费脚本咨...