class RedshiftConnector::ExporterBuilder
Public Class Methods
new(ds:, exporter_class:)
click to toggle source
# File lib/redshift_connector/exporter_builder.rb, line 6 def initialize(ds:, exporter_class:) @ds = ds @exporter_class = exporter_class end
Public Instance Methods
build_for_query( schema:, table:, bucket: nil, query:, txn_id: "
click to toggle source
# File lib/redshift_connector/exporter_builder.rb, line 21 def build_for_query( schema:, table:, bucket: nil, query:, txn_id: "#{Time.now.strftime('%Y%m%d_%H%M%S')}_#{$$}", enable_sort: false, logger: RedshiftConnector.logger, quiet: false ) logger = NullLogger.new if quiet bundle_params = DataFileBundleParams.new( bucket: bucket, schema: schema, table: table, txn_id: txn_id, logger: logger ) @exporter_class.new( ds: @ds, query: ArbitraryQuery.new(query), bundle_params: bundle_params, enable_sort: enable_sort, logger: logger ) end
build_for_table(schema:, table:, columns:, bundle_params:, logger: RedshiftConnector.logger)
click to toggle source
# File lib/redshift_connector/exporter_builder.rb, line 16 def build_for_table(schema:, table:, columns:, bundle_params:, logger: RedshiftConnector.logger) query = SelectAllQuery.new(schema: schema, table: table, columns: columns) @exporter_class.new(ds: @ds, query: query, bundle_params: bundle_params, logger: logger) end
build_for_table_delta(schema:, table:, condition:, columns:, bundle_params:, logger: RedshiftConnector.logger)
click to toggle source
# File lib/redshift_connector/exporter_builder.rb, line 11 def build_for_table_delta(schema:, table:, condition:, columns:, bundle_params:, logger: RedshiftConnector.logger) query = DeltaQuery.new(schema: schema, table: table, columns: columns, condition: condition) @exporter_class.new(ds: @ds, query: query, bundle_params: bundle_params, logger: logger) end