class RedshiftConnector::Importer::RebuildTruncate

Public Class Methods

new(dao:, columns:, logger: RedshiftConnector.logger) click to toggle source
# File lib/redshift_connector/importer/rebuild_truncate.rb, line 6
def initialize(dao:, columns:, logger: RedshiftConnector.logger)
  @dao = dao
  @columns = columns
  @logger = logger
end

Public Instance Methods

execute(bundle) click to toggle source
# File lib/redshift_connector/importer/rebuild_truncate.rb, line 12
def execute(bundle)
  truncate_table(@dao.table_name)
  import(bundle)
end
import(bundle) click to toggle source
# File lib/redshift_connector/importer/rebuild_truncate.rb, line 23
def import(bundle)
  @logger.info "IMPORT #{bundle.url}* -> #{@dao.table_name} (#{@columns.join(', ')})"
  bundle.each_batch do |rows|
    @dao.import(@columns, rows)
  end
end
truncate_table(table_name) click to toggle source
# File lib/redshift_connector/importer/rebuild_truncate.rb, line 17
def truncate_table(table_name)
  @logger.info "TRUNCATE #{table_name}"
  @dao.connection.execute("truncate #{table_name}")
  @logger.info "truncated."
end