抽取 db 库中 table1 的增量数据进入 Hive 的 ods 库中表 table1。根据 ods.table1 表中 modified_time 作为增量字段,只将新增的数据抽入,字段 名称、类型不变,同时添加静态分区,分区字段为 etl_date,类型为 String, 且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。使用 hive cli 执行 show partitions ods.table1 命令,
时间: 2023-06-14 08:05:45 浏览: 219
您可以按照以下步骤进行操作:
1. 创建 ods 库和表 table1
```
CREATE DATABASE IF NOT EXISTS ods;
USE ods;
CREATE TABLE IF NOT EXISTS table1 (
column1 string,
column2 int,
column3 double,
modified_time timestamp
)
PARTITIONED BY (etl_date string);
```
2. 将 db 库中 table1 的增量数据导入到 Hive 的 ods.table1 表中
```
INSERT INTO TABLE ods.table1 PARTITION (etl_date='${hiveconf:etl_date}')
SELECT column1, column2, column3, modified_time
FROM db.table1
WHERE modified_time > '${hiveconf:last_etl_time}'
```
其中,`${hiveconf:etl_date}` 表示从 Hive 的配置中获取 etl_date 的值,`${hiveconf:last_etl_time}` 表示从 Hive 的配置中获取上一次执行增量抽取的时间。
3. 设置静态分区 etl_date
```
SET hiveconf:etl_date=`date -d yesterday +%Y%m%d`;
```
其中,`date -d yesterday +%Y%m%d` 表示获取昨天的日期,格式为 yyyyMMdd。
4. 执行 show partitions 命令
```
SHOW PARTITIONS ods.table1;
```
该命令将显示 ods.table1 表中所有的分区信息,包括 etl_date 的值。您可以根据 etl_date 的值进行查询和分析。
阅读全文