同步策略
Ø 全量表:存储完整的数据。
Ø 增量表:存储新增加的数据。
Ø 新增及变化表:存储新增加的数据和变化的数据。
Ø特殊表:只需要存储一次。
1.全量同步策略
image-20210524105637572.png
2.增量同步策略
image-20210524105830582.png
3.新增及变化策略
image-20210524110032003.png
4.特殊策略
某些特殊的维度表,可不必遵循上述同步策略。
1)客观世界维度
没变化的客观世界的维度(比如性别,地区,民族,政治成分,鞋子尺码)可以只存一份固定值。
2)日期维度
日期维度可以一次性导入一年或若干年的数据。
分析表同步策略
image-20210524110210314.png
sqoop命令
sqoop import \
--connect jdbc:mysql://hadoop102:3306/gmall \
--username root \
--password 000000 \
--target-dir /origin_data/$APP/db/$1/$do_date \
--delete-target-dir \ #是否删除已存在的目标文件
--query "select 1=1 and \$CONDITIONS" \ # 查询语句最后都要加 and $CONDITIONS
--num-mappers 1 \ #数据分割 sqoop底层执行MR中的map
--fields-terminated-by '\t' \
--compress \
--compression-codec lzop \
--null-string '\\N' \ #字符串空值
--null-non-string '\\N' #非字符串空值
#Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用--input-null-string和--input-null-non-string两个参数。导入数据时采用--null-string和--null-non-string。