gpt4 book ai didi

amazon-redshift - Redshift 查询每日生成的表

转载 作者:行者123 更新时间:2023-11-29 13:23:25 32 4
gpt4 key购买 nike

我正在寻找一种创建 Redshift 查询的方法,该查询将从每天生成的表中检索数据。我们集群中的表具有以下形式:

event_table_2016_06_14
event_table_2016_06_13

..等等。

我曾尝试编写一个将当前日期附加到表名的查询,但这似乎无法正常工作(无效操作):

SELECT * FROM concat('event_table_', to_char(getdate(),'YYYY_MM_DD'))

非常感谢任何有关如何执行此操作的建议!

最佳答案

I have tried writing a query that appends the current date to the table name, but this does not seem to work correctly (invalid operation):

Redshift 不支持。但您很可能不需要它。

尝试以下操作(扩展@ketan 的回答):

  1. 使用适当的(用于联接)DIST 键和时间戳列上的 COMPOUND 或简单的 SORT KEY 创建主表,并对列进行适当的压缩。

  2. 每天,创建一个临时表(使用 CREATE TABLE ... LIKE - 这将保留 DIST/SORT 键),用每日数据加载它,VACUUM SORT.

  3. 使用ALTER TABLE APPEND已排序 临时表复制到主表中 - 这将复制已排序的数据,并将减少主表上的 VACUUM。之后您可能仍需要 VACUUM SORT

之后正常查询您的主表,可能会在时间戳上给它一个范围。 Redshift 针对这些场景进行了优化,99% 的情况下您不需要自己优化表扫描——即使是在具有十亿行扫描的表上也需要几毫秒到几秒。您可能需要在其他地方进行优化,但这是第二步。

要深入了解扫描性能,请使用 STL_QUERY 系统表查找您的查询 ID,然后使用 STL_SCAN(或 SVL_QUERY_SUMMARY)表查看扫描速度。

您的示例实际上是 ALTER TABLE APPEND 的主要用例.

关于amazon-redshift - Redshift 查询每日生成的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37848628/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com