【问题标题】:Logstash reading SQL Server data real timeLogstash 实时读取 SQL Server 数据
【发布时间】:2019-02-06 21:10:44
【问题描述】:

有什么方法可以配置logstash,以便它自动实时获取增量记录。如果没有,那么是否有任何开源插件/工具可用于实现这一目标?感谢您的帮助。

【问题讨论】:

    标签: elasticsearch logstash elastic-stack


    【解决方案1】:

    为 MSSQL 服务器尝试以下配置。您需要通过添加调度周期来安排它,如下所示,该语句将查询从您的数据库中获取数据

    input {
      jdbc { 
        jdbc_connection_string => "jdbc:sqlserver://localhost:1433;databaseName=test"
        # The user we wish to execute our statement as
        jdbc_user => "sa"
        jdbc_password => "sasa"
        # The path to our downloaded jdbc driver
        jdbc_driver_library => "C:\Users\abhijitb\.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.2.2.jre8\mssql-jdbc-6.2.2.jre8.jar"
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        #clean_run => true
        schedule => "* * * * *"
        #query
        statement => "SELECT * FROM Student where studentid > :sql_last_value"
        use_column_value => true
        tracking_column => "studentid"
        }
    }
    
    output {
      #stdout { codec => json_lines }
      elasticsearch {
      "hosts" => "localhost:9200"
      "index" => "student"
      "document_type" => "data"
      "document_id" => "%{studentid}"
      }
    }
    

    【讨论】:

    • 我的表中没有任何主 ID。任何列的组合都不能这样做。在这种情况下,我将如何确保在第二次计划运行中只插入新行?另外,为什么我们在这里使用 use_column_value 属性?
    • @pradyumn 记录更新时,您的表上有时间戳吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多