MAPREDUCE服务 MRS-如何对insert overwrite自读自写场景进行优化:操作步骤
操作步骤
假设存在如下一张表:
user_data(user_group int, user_name string, update_time timestamp);
其中user_group是分区列,需要根据已有数据,按更新时间进行排序,刷新用户组信息。操作步骤如下:
- 在Hive Beeline命令行执行以下命令开启Hive动态分区:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
- 执行以下命令创建一个临时表,用于存储去重后的数据:
CREATE TABLE temp_user_data AS
SELECT * FROM (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY user_group ORDER BY update_time DESC) as rank
FROM user_data
) tmp
WHERE rank = 1;
- 执行以下命令使用临时数据作为数据源,并插入到目的表中:
INSERT OVERWRITE TABLE user_data
SELECT user_group, user_name, update_time
FROM temp_user_data;
- 执行以下命令清理临时表:
DROP TABLE IF EXISTS temp_user_data;
- Hudi服务_什么是Hudi_如何使用Hudi
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper
- 大数据分析是什么_使用MapReduce_创建MRS服务
- GaussDB(for MySQL)读写分离_数据库代理_Proxy事务拆分
- GaussDB(for MySQL)一致性级别_事务拆分_读写分离
- MRS优势_什么是MRS_MRS功能
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_什么是Kafka_如何使用Kafka