डिफ़ॉल्ट रूप से, logstash-input-jdbc प्लगइन आपके SELECT स्टेटमेंट को एक बार चलाएगा और फिर छोड़ देगा। आप <जोड़कर इस व्यवहार को बदल सकते हैं। कोड>अनुसूची पैरामीटर आपके कॉन्फ़िगरेशन के लिए क्रॉन एक्सप्रेशन के साथ, इस तरह:
input {
jdbc {
jdbc_driver_library => "C:/logstash/lib/mysql-connector-java-5.1.37-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test"
jdbc_user => "root"
jdbc_password => ""
statement => "SELECT * FROM transport.audit"
schedule => "* * * * *" <----- add this line
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
}
}
नतीजा यह है कि सेलेक्ट स्टेटमेंट अब हर मिनट चलेगा।
यदि आपकी MySQL तालिका में दिनांक फ़ील्ड था (लेकिन ऐसा प्रतीत नहीं होता है), तो आप पूर्व-निर्धारित sql_last_start
का भी उपयोग कर सकते हैं हर रन पर सभी रिकॉर्ड्स को फिर से इंडेक्स नहीं करने के लिए पैरामीटर। उस पैरामीटर का उपयोग आपकी क्वेरी में इस प्रकार किया जा सकता है:
statement => "SELECT * FROM transport.audit WHERE your_date_field >= :sql_last_start"