Sha256: 7b505bfb3e81a1953f7c614424261768e2bc6df4e85a781077a624f8f7d49278

Contents?: true

Size: 719 Bytes

Versions: 3

Compression:

Stored size: 719 Bytes

Contents

module RedshiftExtractor; class Unload

  attr_reader :aws_access_key_id, :aws_secret_access_key, :s3_destination, :select_sql

  def initialize(args)
    @aws_access_key_id = args.fetch(:aws_access_key_id)
    @aws_secret_access_key = args.fetch(:aws_secret_access_key)
    @s3_destination = args.fetch(:s3_destination)
    @select_sql = args.fetch(:select_sql)
  end

  def unload_sql
    "UNLOAD('#{escaped_extract_sql}') to '#{s3_destination}'"\
    " CREDENTIALS '#{credentials}' MANIFEST GZIP ADDQUOTES ESCAPE;"
  end

  def escaped_extract_sql
    select_sql.gsub("'", "\\\\'")
  end

  def credentials
    "aws_access_key_id=#{aws_access_key_id};aws_secret_access_key=#{aws_secret_access_key}"
  end

end; end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redshift_extractor-0.4.0 lib/redshift_extractor/unload.rb
redshift_extractor-0.3.0 lib/redshift_extractor/unload.rb
redshift_extractor-0.2.0 lib/redshift_extractor/unload.rb