【发布时间】:2022-01-03 08:38:39
【问题描述】:
将数亿行从 teradata 导出到雪花的方法是什么?我正在使用 to_csv() 的方法,但是,将数据从数据帧加载到 csv 需要 2 个小时以上。任何更快/更好的方法都可以用来提高性能和提高效率。此外,使用 to_csv() 数据似乎在某些地方已损坏。有什么解决办法吗?
代码 -
query = "SELECT * FROM " + table_name
df = pd.read_sql(query, connect)
df.to_csv(path, index=False, encoding='utf-8')
【问题讨论】:
-
我不知道雪花是什么。但是,从您展示的代码中可以清楚地看出,您正在将整个结果集加载到内存(数据框)中。对于数以百万计的行,这可能会导致交换,因此可能会非常慢。为什么不在结果集上获得一个游标,然后一次处理一行,或者如果可行,分块处理?这将使用更少的内存并且可能更快
-
@JCaesar 是的,但是我应该如何处理它?另外,熊猫块大小不是设置为默认值 1 吗?如果您可以提供任何链接或资源来参考此方法,将会有很大帮助!
-
@JCaesar Snowflake 也是一个数据仓库。我正在将数据从 teradata 迁移到雪花。但是,问题在于将数以亿计的数据导出并加载到目标数据库中,
-
我不明白你为什么要使用 pandas。为什么你认为这是必要的?
-
你到底想做什么?从本地 Teradata 迁移到云雪花?云到云?本地到本地?其他一些我没想到的组合?
标签: python python-3.x teradata teradatasql