class Bricolage::StreamingLoad::JobParams

Public Class Methods

find_job_file(ctx, schema, table) click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 32
def JobParams.find_job_file(ctx, schema, table)
  paths = Dir.glob("#{ctx.home_path}/#{schema}/#{table}.*")
  paths.select {|path| File.extname(path) == '.job' }.sort.first
end
load(ctx, job_class, schema, table) click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 11
def JobParams.load(ctx, job_class, schema, table)
  job = load_bricolage_job(ctx, job_class, schema, table)
  schema = resolve_schema(ctx, schema)
  job.provide_default 'dest-table', "#{schema}.#{table}"
  #job.provide_sql_file_by_job_id   # FIXME: provide only when exist
  job.compile
  new(job)
end
load_bricolage_job(ctx, job_class, schema, table) click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 20
def JobParams.load_bricolage_job(ctx, job_class, schema, table)
  if job_file = find_job_file(ctx, schema, table)
    ctx.logger.debug "using .job file: #{job_file}"
    Bricolage::Job.load_file(job_file, ctx.subsystem(schema))
  else
    ctx.logger.debug "using default job parameters (no .job file)"
    Bricolage::Job.instantiate(table, job_class, ctx).tap {|job|
      job.bind_parameters({})
    }
  end
end
new(job) click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 42
def initialize(job)
  @job = job
  @params = job.params
end

Private Class Methods

resolve_schema(ctx, schema) click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 37
def JobParams.resolve_schema(ctx, schema)
  ctx.global_variables.get_force("#{schema}_schema") || schema
end

Public Instance Methods

ctl_bucket() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 51
def ctl_bucket
  @params['ctl-ds']
end
dest_table() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 63
def dest_table
  @params['dest-table']
end
ds() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 47
def ds
  @params['redshift-ds']
end
enable_work_table?() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 55
def enable_work_table?
  !!@params['work-table']
end
load_options_string() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 67
def load_options_string
  @params['load-options'].to_s
end
sql_source() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 71
def sql_source
  sql = @params['sql-file']
  sql ? sql.source : "insert into #{dest_table} select * from #{work_table};"
end
work_table() click to toggle source
# File lib/bricolage/streamingload/jobparams.rb, line 59
def work_table
  @params['work-table']
end