Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

लॉगस्टैश MySQL से नई प्रविष्टियों में नहीं पढ़ रहा है

डिफ़ॉल्ट रूप से, 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"



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli multi_query उसके बाद क्वेरी

  2. VB.NET और MySql अद्यतन क्वेरी

  3. mysqld_safe निर्देशिका '/var/run/mysqld' UNIX सॉकेट फ़ाइल के लिए मौजूद नहीं है

  4. Liferay MySQL के साथ काम नहीं कर रहा है

  5. यूनियन 2 परिकलित स्तंभों के साथ चयन-प्रश्न