class LogStash::Filters::Jdbc
This filter executes a SQL query and store the result set in the field specified as `target`.
For example you can load a row based on an id from in the event
- source,ruby
-
filter {
jdbc { jdbc_driver_library => "/path/to/mysql-connector-java-5.1.34-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => ""jdbc:mysql://localhost:3306/mydatabase" jdbc_user => "me" jdbc_password => "secret" statement => "select * from WORLD.COUNTRY WHERE Code = :code" parameters => { "code" => "country_code"} target => "country_details" }
}
Public Instance Methods
filter(event)
click to toggle source
# File lib/logstash/filters/jdbc.rb, line 51 def filter(event) result = [] #Prepare parameters from event values params = @parameters.inject({}) {|hash,(k,v)| hash[k] = event.get(event.sprintf(v)) ; hash } #Execute statement and collect results success = execute_statement(@statement,params) do |row| result << row end if success event.set(@target, result) filter_matched(event) else @tag_on_failure.each do |tag| event.tag(tag) end end end
register()
click to toggle source
# File lib/logstash/filters/jdbc.rb, line 45 def register @logger = self.logger prepare_jdbc_connection() end