基于历史所有分区数据(ods_iflyaiui_sn_uid_relation ) 1、uid不为'' 2、sn是以133开头 3、逻辑主键就应该是sn,uid 生成一张SN和uid的映射表,要求SN和UID不可以重复,每天生成全量数据 dw_iflyaiui_sn_uid_relation
时间: 2024-03-16 08:47:00 浏览: 23
可以使用 Hive 的 INSERT INTO 语句和 SELECT 语句来实现生成每天的全量数据。
首先,创建一个新的 Hive 表 `dw_iflyaiui_sn_uid_relation`,该表包含两个字段:`sn` 和 `uid`,并设置 `sn` 和 `uid` 为联合主键以确保不会出现重复的 sn 和 uid。
```
CREATE TABLE IF NOT EXISTS dw_iflyaiui_sn_uid_relation (
sn STRING,
uid STRING,
PRIMARY KEY (sn, uid)
);
```
然后,使用以下 SELECT 语句从历史分区数据中筛选出满足条件的 sn 和 uid,并插入到新表 `dw_iflyaiui_sn_uid_relation` 中:
```
INSERT INTO TABLE dw_iflyaiui_sn_uid_relation
SELECT DISTINCT sn, uid
FROM ods_iflyaiui_sn_uid_relation
WHERE uid != '' AND sn LIKE '133%'
```
该语句会将历史分区数据中 uid 不为空且 sn 以 133 开头的所有数据插入到新表 `dw_iflyaiui_sn_uid_relation` 中,并去重,确保 sn 和 uid 不会重复。
为了每天生成全量数据,只需要将以上 SQL 代码封装为一个 Hive 脚本,并使用定时任务来自动执行即可。
相关问题
基于历史所有分区数据(ods_iflyaiui_sn_uid_relation ) 1、uid不为'' 2、sn是以133开头 3、逻辑主键就应该是sn,uid 生成一张SN和uid的映射表,每天生成全量数据 dw_iflyaiui_sn_uid_relation
可以通过以下步骤基于历史所有分区数据(ods_iflyaiui_sn_uid_relation)生成每天的全量数据dw_iflyaiui_sn_uid_relation:
1. 创建一个用于存储全量数据的表dw_iflyaiui_sn_uid_relation,包含sn和uid两列,以及日期列:
```
CREATE TABLE dw_iflyaiui_sn_uid_relation (
sn string,
uid string,
dt string
)
PARTITIONED BY (dt)
```
2. 通过以下查询语句将符合条件的数据插入到全量表中:
```
INSERT OVERWRITE TABLE dw_iflyaiui_sn_uid_relation PARTITION (dt = '2022-01-01')
SELECT sn, uid, '2022-01-01' as dt
FROM ods_iflyaiui_sn_uid_relation
WHERE uid != '' AND sn LIKE '133%'
```
注意:这里的日期是示例,实际情况中应该根据需要修改日期。
3. 为了每天生成全量数据,可以编写一个脚本或调度任务,每天自动执行以上步骤,生成当天的全量数据。例如,使用shell脚本和crontab定时任务实现:
```
#!/bin/bash
dt=`date +%Y-%m-%d`
hive -e "INSERT OVERWRITE TABLE dw_iflyaiui_sn_uid_relation PARTITION (dt = '$dt')
SELECT sn, uid, '$dt' as dt
FROM ods_iflyaiui_sn_uid_relation
WHERE uid != '' AND sn LIKE '133%' "
```
然后在crontab中设置每天自动执行脚本:
```
0 0 * * * /path/to/script.sh
```
这样每天就可以在dw_iflyaiui_sn_uid_relation表中生成当天的全量数据了。
sed命令替换ods_exp_rec_bill为ods_exp_rec_bill_v,不区分大小写
可以使用sed命令的正则表达式替换功能进行替换。具体命令如下:
```
sed -i 's/ods_exp_rec_bill/ods_exp_rec_bill_v/ig' 文件名
```
其中,`-i`参数表示直接修改文件,`s/ods_exp_rec_bill/ods_exp_rec_bill_v/ig`表示将文件中所有的`ods_exp_rec_bill`替换为`ods_exp_rec_bill_v`,`i`参数表示不区分大小写进行替换。`文件名`为需要进行替换的文件名。
相关推荐
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)