Sql 基于分区表创建动态视图
我们有一个每月分区表的大型数据库。我需要每月汇总这些表的选择,但我不想每月更新union来添加新的月度表Sql 基于分区表创建动态视图,sql,amazon-redshift,Sql,Amazon Redshift,我们有一个每月分区表的大型数据库。我需要每月汇总这些表的选择,但我不想每月更新union来添加新的月度表 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 这是我使用存储过程的地方吗?我对他们不是很熟悉 我认为它还可以
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'));
这可能适用于本月,但我需要保存过去几个月的数据,这也是一个问题 您应该在每个表到达一个较大的表时将其追加,然后针对该表运行查询。有很多方法可以做到这一点,但可能最快和最优雅的是使用。 ALTER TABLE APPEND
此处的说明您的第一个调用端口应该是使用aws红移功能,如分发和排序键,而不是表分区,您尝试过吗。Redshift不支持/处理分区,并且不适合使用视图对分区结构进行黑客攻击。您可能会发现您没有获得预期的性能。谢谢@JonScott,我不熟悉分发和排序键。我会调查的。这是一项仅每周或每月运行的作业,因此性能并不重要。将相同的数据移动到一个新的数据库将需要一个广泛的etl过程,我正试图避免这个过程。您使用的是红移,对吗?在红移范围内每月移动一次数据将非常快。是的,它是红移。出于某种原因,我们只有这个特定用例所需的汇总表。通常,我会使用聚合表,这将解决这个问题。如果您知道月数的范围,那么您可以生成一个动态SQL并执行它