class RedshiftConnector::Importer::InsertDelta
Public Class Methods
new(dao:, columns:, delete_cond:, logger: RedshiftConnector.logger)
click to toggle source
# File lib/redshift_connector/importer/insert_delta.rb, line 6 def initialize(dao:, columns:, delete_cond:, logger: RedshiftConnector.logger) @dao = dao @columns = columns @delete_cond = delete_cond @logger = logger end
Public Instance Methods
delete_rows(cond_expr)
click to toggle source
# File lib/redshift_connector/importer/insert_delta.rb, line 18 def delete_rows(cond_expr) @logger.info "DELETE #{@dao.table_name} where (#{cond_expr})" @dao.connection.execute("delete from #{@dao.table_name} where #{cond_expr}") @logger.info "deleted." end
execute(bundle)
click to toggle source
# File lib/redshift_connector/importer/insert_delta.rb, line 13 def execute(bundle) delete_rows(@delete_cond) import(bundle) end
import(bundle)
click to toggle source
# File lib/redshift_connector/importer/insert_delta.rb, line 24 def import(bundle) @logger.info "IMPORT #{bundle.url}* -> #{@dao.table_name} (#{@columns.join(', ')})" bundle.each_batch do |rows| @dao.import(@columns, rows) end end