我们有一个带有每月分区表的大数据库。我需要每个月汇总这些表的选择,但我不想每月更新工会以添加新的月度表。
CREATE VIEW dynamic_view AS
SELECT timestamp,
traffic
FROM traffic_table_m_2017_01
UNION ALL
SELECT timestamp,
traffic
FROM traffic_table_m_2017_02
这是我要使用存储过程的地方吗?我对他们并不熟悉。
我认为它也可以用作:
SELECT timestamp,
traffic
FROM REPLACE(REPLACE('traffic_table_m_yyyy_mm',
yyyy, FORMAT(GETDATE(),'yyyy', 'en-us')),
mm, FORMAT(GETDATE(),'mm', 'en-us'));
这可能在本月工作,但我需要保存过去几个月的数据,这也是一个问题。
您应该附加每个表,因为它到达1个较大的表,然后对此进行查询。有很多方法可以做到这一点,但最快,最优雅的是使用。Alter表附加在此处https://docs.aws.amazon.com/redshift/latest/dg/r_alter_table_append.html