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