Snowflake数据库转移到Postgres



我正在尝试将Snowflake数据库的完整副本复制到PostgreSQL数据库中(每个表/视图,每一行(。我不知道怎样才能做到这一点。我尝试过使用一个名为pipelinewise的包,但无法获得将雪花视图转换为postgreSQL表所需的访问权限(它需要一个唯一的id(。长话短说,这对我来说是行不通的。

我现在开始使用雪花sqlalchemy包。所以,我想知道什么是制作整个数据库的完整副本的最佳方法。因为这是一个大数据库,所以有必要为每个表创建一个模型吗?一般来说,我是SQL炼金术的新手,所以我不知道从哪里开始。我的猜测是有反思的,但当我尝试下面的例子时,我没有得到任何结果。

from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine, MetaData
engine = create_engine(URL(
account="xxxx",
user="xxxx",
password="xxxx",
database="xxxxx",
schema="xxxxx",
warehouse="xxxx"
))
engine.connect()
metadata = MetData(bind=engine)
for t in metadata.sorted_tables:
print(t.name)

我很确定问题不在于引擎,因为我确实做了validate.py示例,它确实返回了预期的版本。任何关于我上面的代码为什么不起作用的建议,或者一种更好的方法来实现我制作DB的完整副本的目标,都将不胜感激。

试试这个:我让它在我的上运行,但我有一些函数用于我的sqlalchemy引擎,所以可能无法按原样运行:

from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine, MetaData
import sqlalchemy sa
engine = sa.create_engine(URL(
account="xxxx",
user="xxxx",
password="xxxx",
database="xxxxx",
schema="xxxxx",
warehouse="xxxx"
))
inspector = sa.inspect(engine)
schema = inspector.default_schema_names 
for table_name in inspector.get_table_names(schema):
print(table_name)

最新更新