数据已经在 MySQL 中生成,接下来就开始进行数据仓库的搭建环节。首先最重要的,也是首要的流程便是 ETL。这个阶段,因为是对结构化数据进行抽取,所以直接使用 Sqoop 工具即可。Sqoop 工具被安装到了 Node03 中,所以在 Node03 中编写脚本调用 Sqoop 进行数据抽取;而脚本化的编写也有助于之后的自动化执行。
1. 进入 Sqoop 安装节点,即 Node03,创建 /home/warehouse/shell 目录:
mkdir -p /home/warehouse/shell
2. 编写 Sqoop 数据导入脚本,对不同的表采用了较为不同的方法,脚本材料如下:
cd /home/warehouse/shell
vim sqoop_import.sh
# 添加内容
#!/bin/bash
db_date=$2
echo $db_date
db_name=mall
import_data() {
sqoop import \
--connect jdbc:mysql://node02:3306/$db_name \
--username root \
--password DBa2020* \
--target-dir /origin_data/$db_name/db/$1/$db_date \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "\t" \
--query "$2"' and $CONDITIONS;'
}
# 数据量少,可以进行全量抽取
import_sku_info(){
import_data "sku_info" "select
id, spu_id, price, sku_n