Python/SQLAlchemy:如何将巨大的红移表保存到CSV?
我将运行一个查询,从Redshift返回一个巨大的表(大约700Mb),并在我的本地机器(MacPro)上使用SQLAlchemy和Python2.7将其保存到CSV。 我以前从未对如此大的查询执行过此操作,显然可能存在一些内存和其他问题 我的问题是我应该考虑什么,以及如何使用sql炼金术来让这个过程正常工作 谢谢,Python/SQLAlchemy:如何将巨大的红移表保存到CSV?,python,sql,sqlalchemy,amazon-redshift,Python,Sql,Sqlalchemy,Amazon Redshift,我将运行一个查询,从Redshift返回一个巨大的表(大约700Mb),并在我的本地机器(MacPro)上使用SQLAlchemy和Python2.7将其保存到CSV。 我以前从未对如此大的查询执行过此操作,显然可能存在一些内存和其他问题 我的问题是我应该考虑什么,以及如何使用sql炼金术来让这个过程正常工作 谢谢, Alex如果你没有在那台机器上运行太多其他东西,那么内存就不应该是个问题。试试看。在执行过程中监视内存使用情况。还可以使用“加载”来查看系统上的压力。如果在该机器上没有运行太多其他
Alex如果你没有在那台机器上运行太多其他东西,那么内存就不应该是个问题。试试看。在执行过程中监视内存使用情况。还可以使用“加载”来查看系统上的压力。如果在该机器上没有运行太多其他操作,则内存不应成为问题。试试看。在执行过程中监视内存使用情况。还可以使用“load”查看系统上的压力。理想情况下,您可以使用UNLOAD命令将其移动到S3存储,然后将其移动到本地计算机。以下是一个例子:
UNLOAD ('select * from my_table')
TO 's3://bucket_name/path/to/my_filename_prefix'
WITH CREDENTIALS
'aws_access_key_id=<my_access_key>;
aws_secret_access_key=<my_secret_key>'
MANIFEST
GZIP
ALLOWOVERWRITE
ESCAPE
NULL AS '\\N'
否则,只需写入所有行:
# dump column titles (optional)
csvfile.writerow(x[0] for x in cursor.description)
# dump rows
csvfile.writerows(cursor.fetchall())
outfile.close()
代码段贷记:理想情况下,您应该使用UNLOAD命令将其移动到S3存储,然后将其移动到本地计算机。以下是一个例子:
UNLOAD ('select * from my_table')
TO 's3://bucket_name/path/to/my_filename_prefix'
WITH CREDENTIALS
'aws_access_key_id=<my_access_key>;
aws_secret_access_key=<my_secret_key>'
MANIFEST
GZIP
ALLOWOVERWRITE
ESCAPE
NULL AS '\\N'
否则,只需写入所有行:
# dump column titles (optional)
csvfile.writerow(x[0] for x in cursor.description)
# dump rows
csvfile.writerows(cursor.fetchall())
outfile.close()
snippet credit:您是否试图在转储数据时以任何方式更改数据?是否试图在转储数据时以任何方式更改数据?