如何为联合表编写多年的通用代码?

问题描述 投票:0回答:1

我有一个Hive ETL工作,我必须从年度表中提取数据并将它们联合起来。不要问为什么每年都有一个单独的表(遗留系统和巨大的规模)。

我们假设表名是表11,表12 ,. 。表19

现在我可以将查询写到'from'table19,但我想编写通用代码,否则代码必须每年更新。如果我是正确的,我相信在'from'子句中不能使用通配符。例如table20 *

最好的祝福,

mysql sql hive etl
1个回答
0
投票

你可以使用预备声明。因此,您可以使用CONCAT生成查询,然后执行它。

-- SELECT CONCAT("insert into newtable select * from table",DATE_FORMAT(now(),'%y')) 
SELECT CONCAT(" select * from mysql.user") INTO @sql;
SELECT @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
© www.soinside.com 2019 - 2024. All rights reserved.