@@ -179,7 +179,7 @@ class UnloadFromSelect(Executable, ClauseElement):
179179 ''' Prepares a RedShift unload statement to drop a query to Amazon S3
180180 http://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html
181181 '''
182- def __init__ (self , select , bucket , access_key , secret_key ):
182+ def __init__ (self , select , bucket , access_key , secret_key , parallel = 'on' ):
183183 ''' Initializes an UnloadFromSelect instance
184184
185185 Args:
@@ -188,22 +188,27 @@ def __init__(self, select, bucket, access_key, secret_key):
188188 bucket: The Amazon S3 bucket where the result will be stored
189189 access_key: The Amazon Access Key ID
190190 secret_key: The Amazon Secret Access Key
191+ parallel: If 'ON' the result will be written to multiple files. If
192+ 'OFF' the result will write to one (1) file up to 6.2GB before
193+ splitting
191194 '''
192195 self .select = select
193196 self .bucket = bucket
194197 self .access_key = access_key
195198 self .secret_key = secret_key
199+ self .parallel = parallel
196200
197201
198202@compiles (UnloadFromSelect )
199203def visit_unload_from_select (element , compiler , ** kw ):
200204 ''' Returns the actual sql query for the UnloadFromSelect class
201205 '''
202- return "unload ('%(query)s') to '%(bucket)s' credentials 'aws_access_key_id=%(access_key)s;aws_secret_access_key=%(secret_key)s' delimiter ',' addquotes allowoverwrite" % {
206+ return "unload ('%(query)s') to '%(bucket)s' credentials 'aws_access_key_id=%(access_key)s;aws_secret_access_key=%(secret_key)s' delimiter ',' addquotes allowoverwrite parallel %(parallel)s " % {
203207 'query' : compiler .process (element .select , unload_select = True , literal_binds = True ),
204208 'bucket' : element .bucket ,
205209 'access_key' : element .access_key ,
206210 'secret_key' : element .secret_key ,
211+ 'parallel' : element .parallel ,
207212 }
208213
209214@compiles (BindParameter )
0 commit comments