大数据7_01_Sqoop简介

1 Sqoop简介

1.1 概念

MySQL ----导入import----> Hadoop生态(HDFS、Hbase、Hive)

Hadoop生态 ----导出----> MySQL

一般导入比较常用,业务数据上传到HDFS,HIve的表,Hbase的表

导出export场景一般为:业务可视化的报表。

  • sqoop的底层原理是MapReduce,但是MR只有map没有reduce。

    因为只需要传输数据,不需要聚合等操作。

大数据7_01_Sqoop简介

1.2 Sqoop的切片策略

sqoop的切片数:–num-mappers设为几,切片数就为几,map的个数就为几。

mr的切片规则根据Inputformat中的split()方法决定的。

MapReduce的默认InputFormat是:TextFileInputFormat,它的split()策略是根据文件大小128M为一个切片

Sqoop的InputFormat的split()是根据num-mappers的值去确定切片的数量。

4 同步策略

小公司,为了处理简单,业务表数据量小的情况下,一般是全量导入。

中大型公司,由于数据量比较大,需要严格按照同步策略导入数据。

业务数据上传到HDFS需要一个同步策略。来保证数据两边数据是一致的。

Ø 全量表:存储完整的数据。

Ø 增量表:存储新增加的数据。

Ø 新增及变化表:存储新增加的数据和变化的数据。

Ø 特殊表:只需要存储一次。

4.1 全量同步

每日全量,就是每天存储一份完整数据,作为一个分区。

适用于数据量不大,且每天既会有新数据生成,也会有旧数据更改的场景。

4.2 增量同步

每日增量,就是每天存储一份增量数据,作为一个分区。

适用于数据量大,且每天只会有新数据插入的场景。

4.3 新增及变化同步

每日新增及变化,就是存储创建时间操作时间都是今天的数据。

适用于表的数据量大既会有新增又会有变化

4.4 特殊情况

某些特殊的维度表。

1 客观世界维度,没有变化的客观世界的维度。

比如性别、地区、民族、政治成分、鞋子尺码等只存一份固定值

2 日期维度

一次性导入一年或者若干年的数据。

大数据7_01_Sqoop简介