我们有一个包含月度分区表的大型数据库。我需要每月汇总这些表格的选择,但我不想每个月都更新工会以添加新的月度表。
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'));
这可能适用于当月,但我需要保存过去几个月的数据,这也是一个问题。
答案 0 :(得分:1)
你应该在每个表到达一个更大的表时附加每个表,然后针对它运行查询。有很多方法可以做到这一点,但可能最快,最优雅的是使用。 更改表附录 这里的说明https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE_APPEND.html