如何使用SQL或Python在amazon redshift中从amazon雪花中重新创建数据库表?(一次性重新创建,而



我正试图将数据库表移动到amazon红移,但为了做到这一点,我必须在红移中重新创建空表。

请参见此处。

我需要的是一种以某种方式同时重现它们的方法。不像上面链接中那样一个接一个地完成,因为有很多表。

原始数据库位于亚马逊雪花中。我需要一个简单的解决方案,而不是一个完全自动化的服务,因为这是一次需要做的事情

在Snowflake上,您可以执行:

SELECT get_ddl('database','{name of database}');

这将获得Snowflake中的整个架构、表、视图等CREATE或REPLACE语句。您可能需要对数据类型或Snowflake和RedShift之间可能不同的其他事情进行一些查找/替换,但这是最简单的方法。

INFORMATION_SCHEMA提供了有关表的详细信息——名称、列、数据类型、键、注释。您可以使用"dynamicsql"将它们拼接到一个createtable语句中。这里有一个例子:

select 
'create or replace table ' || max(table_name) || ' (n' 
|| listagg('  ' || column_name || ' ' || data_type, ',n')
|| 'n);'
from my_database.information_schema.columns
group by table_name
;

请参阅这篇Snowflake文章以获得更多灵感。

最新更新