class Triglav::Agent::Vertica::Connection
Attributes
connection_info[R]
Public Class Methods
new(connection_info)
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 10 def initialize(connection_info) @connection_info = connection_info end
Public Instance Methods
close()
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 14 def close @connection.close rescue nil if @connection end
query(sql)
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 18 def query(sql) connection.query(sql) end
Private Instance Methods
connection()
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 24 def connection return @connection if @connection begin @connection = ::Vertica.connect(connection_params) rescue => e $logger.error { "Failed to connect #{connection_info[:host]}:#{connection_info[:port]} with #{connection_info[:user]}" } raise e end $logger.info { "Connected to #{connection_info[:host]}:#{connection_info[:port]}" } set_resource_pool set_memorycap @connection end
connection_params()
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 50 def connection_params params = @connection_info.dup params.delete(:resource_pool) params.delete(:memorycap) params.merge!(global_connection_params) end
global_connection_params()
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 57 def global_connection_params params = {} params[:interruptable] = $setting.dig(:vertica, :interruptable) if $setting[:vertica].has_key?(:interruptable) params[:read_timeout] = $setting.dig(:vertica, :read_timeout) if $setting[:vertica].has_key?(:read_timeout) params end
set_memorycap()
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 44 def set_memorycap if @connection_info[:memorycap] and !@connection_info[:memorycap].empty? @connection.query("set session memorycap = '#{@connection_info[:memorycap]}'") end end
set_resource_pool()
click to toggle source
# File lib/triglav/agent/vertica/connection.rb, line 38 def set_resource_pool if @connection_info[:resource_pool] and !@connection_info[:resource_pool].empty? @connection.query("set session resource_pool = '#{@connection_info[:resource_pool]}'") end end