gpt4 book ai didi

sql - 将已排序表中的所有数据插入到另一个表中

转载 作者:行者123 更新时间:2023-12-04 21:04:48 26 4
gpt4 key购买 nike

我在 Amazon Redshift 集群中有两个表,它们都使用时间戳作为排序键。第一个表是排序的,只包含时间点1到时间点2的数据。第二个表只是临时的,但也是排序的,包含时间点3到时间点4的数据。有没有将第一个表中的所有数据插入第二个表无需在表上运行 VACUUM 作为。据我所知,从一张 table 到另一张 table 的正常插入总是需要一个 VACUUM 之后。

我知道如果我在预先排序的平面文件上使用 COPY 是可能的。但是对于不需要 VACUUM 的两个预排序表是否也有解决方案?

最佳答案

选项1:

创建新表说最终表与表 2 相同的模式,因为您希望将表 1 的内容复制到表 2。

请检查

select "column", type, encoding 
from pg_table_def where tablename='table2'

这将为表 2 的每一列提供编码。为每一列创建具有相同编码的新最终表。

使用查询按排序顺序加载最终表中的数据
insert into final table ( select * from table1 order by timepoint asc)

然后开火
insert into final table ( select * from table2 order by timepoint asc )

选项 2:

创建最终表并加载 timpoint1 的数据,然后加载 timepoint2 .. 继续直到以排序方式加载时间点。

选项 3:

您可以查询 Deep 复制 Redshift 也可以选择
这是链接 http://docs.aws.amazon.com/redshift/latest/dg/performing-a-deep-copy.html

在做深拷贝时,先拷贝表1的数据,然后加载表2

关于sql - 将已排序表中的所有数据插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25400188/

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