抽取shtd_store库中sku_info的增量数据进入Hive的ods库中表sku_info。根据ods.sku_info表中create_time作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加静态分区,分区字段类型为String,且值为当前比赛日的前一天日期(分区字段格式为yyyyMMdd)数据库用户名为root数据库密码为123456
时间: 2023-05-30 10:02:54 浏览: 319
首先,需要在Hive中创建ods库和sku_info表,并添加静态分区:
```
CREATE DATABASE IF NOT EXISTS ods;
USE ods;
CREATE TABLE IF NOT EXISTS sku_info (
sku_id INT,
sku_name STRING,
category_id INT,
price DOUBLE,
create_time STRING
)
PARTITIONED BY (dt STRING);
```
然后,使用Sqoop抽取增量数据到Hive中:
```
sqoop import \
--connect jdbc:mysql://localhost:3306/shtd_store \
--username root \
--password 123456 \
--table sku_info \
--target-dir /user/hive/warehouse/ods.db/sku_info \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--append \
--check-column create_time \
--incremental lastmodified \
--last-value '2022-01-01 00:00:00'
```
其中,--incremental参数指定为lastmodified,表示使用时间戳作为增量字段;--check-column参数指定为create_time,表示根据create_time作为增量字段;--last-value参数指定为上次抽取数据的最大时间戳,表示从上次抽取数据后的增量数据开始抽取。
最后,需要将抽取的数据添加静态分区,分区字段为当前比赛日的前一天日期(分区字段格式为yyyyMMdd):
```
ALTER TABLE ods.sku_info ADD PARTITION (dt='20220101') LOCATION '/user/hive/warehouse/ods.db/sku_info/dt=20220101';
```
阅读全文