Python/SQLAlchemy:如何将巨大的红移表保存到CSV?

Python/SQLAlchemy:如何将巨大的红移表保存到CSV?,python,sql,sqlalchemy,amazon-redshift,Python,Sql,Sqlalchemy,Amazon Redshift,我将运行一个查询,从Redshift返回一个巨大的表(大约700Mb),并在我的本地机器(MacPro)上使用SQLAlchemy和Python2.7将其保存到CSV。 我以前从未对如此大的查询执行过此操作,显然可能存在一些内存和其他问题 我的问题是我应该考虑什么,以及如何使用sql炼金术来让这个过程正常工作 谢谢, Alex如果你没有在那台机器上运行太多其他东西,那么内存就不应该是个问题。试试看。在执行过程中监视内存使用情况。还可以使用“加载”来查看系统上的压力。如果在该机器上没有运行太多其他

我将运行一个查询,从Redshift返回一个巨大的表(大约700Mb),并在我的本地机器(MacPro)上使用SQLAlchemy和Python2.7将其保存到CSV。 我以前从未对如此大的查询执行过此操作,显然可能存在一些内存和其他问题

我的问题是我应该考虑什么,以及如何使用sql炼金术来让这个过程正常工作

谢谢,
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:

您是否试图在转储数据时以任何方式更改数据?是否试图在转储数据时以任何方式更改数据?