class Embulk::Output::AmazonCloudsearch
Public Class Methods
transaction(config, schema, count) { |task| ... }
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 11 def self.transaction(config, schema, count, &control) # configuration code: task = { 'endpoint' => config.param('endpoint', :string), 'id_column' => config.param('id_column', :string), 'upload_columns' => config.param('upload_columns', :array), 'stub_response' => config.param('stub_response', :bool, default: false), 'batch_size' => config.param('batch_size', :integer, default: 1000) } # resumable output: # resume(task, schema, count, &control) # non-resumable output: task_reports = yield(task) next_config_diff = {} return next_config_diff end
Public Instance Methods
abort()
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 88 def abort end
add(page)
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 48 def add(page) # output code: page.each_slice(@batch_size) do |records| documents = records.map do |record| hash = Hash[schema.names.zip(record)] { type: "add", id: hash[@id_column].to_s, fields: @upload_columns.inject({}) {|acc, c| acc[c] = hash[c] if hash[c] acc } } end begin res = client.upload_documents( documents: documents.to_json, content_type: 'application/json' ) rescue => e Embulk.logger.error { "embulk-output-amazon_cloudsearch: #{e}" } Embulk.logger.error { "embulk-output-amazon_cloudsearch: id #{documents.first[:id]}-#{documents.last[:id]}, response #{res}" } else Embulk.logger.debug { "embulk-output-amazon_cloudsearch: response #{res}" } unless res.status == 'success' Embulk.logger.error { "embulk-output-amazon_cloudsearch: id #{documents.first[:id]}-#{documents.last[:id]}, response #{res}" } end if res.warnings Embulk.logger.warn { "embulk-output-amazon_cloudsearch: id #{documents.first[:id]}-#{documents.last[:id]}, response #{res}" } end end end end
close()
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 45 def close end
commit()
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 91 def commit task_report = {} return task_report end
finish()
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 85 def finish end
init()
click to toggle source
def self.resume(task, schema, count, &control)
task_reports = yield(task) next_config_diff = {} return next_config_diff
end
# File lib/embulk/output/amazon_cloudsearch.rb, line 37 def init @endpoint = task['endpoint'] @id_column = task['id_column'] @upload_columns = task['upload_columns'] @stub_response = task['stub_response'] @batch_size = task['batch_size'] end
Private Instance Methods
client()
click to toggle source
# File lib/embulk/output/amazon_cloudsearch.rb, line 97 def client @_client ||= c = Aws::CloudSearchDomain::Client.new(endpoint: @endpoint, stub_responses: @stub_response) end