使用csv为载体
- 从原集群中导出数据为csv。可以使用语句,也可以使用dbeaver之类的数据库连接软件
- 删除第一行表头,删除所有双引号
- 存储到新集群的hdfs中
hadoop dfs -put export.csv /user/username
- 新hive集群创建分区表,另外创建接受csv数据的临时表。csv文件无法直接导入分区表中,只能额外使用一张临时表过渡一下
1
2
3
4
5
6
7
8
9
10
11drop table db.tablename_csv;
CREATE TABLE db.tablename_csv (
columns
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '$'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
load data inpath '/user/username/export.csv' into table db.tablename_csv;
-- ALTER TABLE db.tablename DROP PARTITION (logdate <= 20230605); - 在trino中将csv临时表数据导入分区表中
1
2insert into hive.db.tablename
select * from hive.db.tablename_csv where logdate>'20240605';
使用hive export的方式
原集群上导出数据:
1 | hadoop dfs -mkdir /user/username/db.table |
export语句是可以指定分区的,但似乎只能指定一个分区。
新集群上导入数据:
1 | hadoop dfs -put db.tablename /user/username |