配置logstash输入jdbc插件以禁用自动提交PostgreSQL连接

我希望能够在不借助分页的情况下将大型postgresql表加载到ElasticSearch中。

我遇到了以下问题:由于连接默认为自动提交,因此无法将大小应用于postgresql jdbc连接,如下所示:

https://github.com/logstash-plugins/logstash-input-jdbc/issues/103

看看logstash输入的jdbc插件文档,我发现在sequel_opts下有一个选项可以指定一个after_connect可调用对象。

我正在尝试测试是否实现after_connect以禁用自动提交,然后是否将允许获取大小。或者也许after_connect需要禁用自动提交,然后重新应用获取大小值。

这似乎是可行的方法,还是有人已经走了这条路而看到失败了?

我正在尝试在我的logstash配置文件中实现此内联。我一直无法提出Ruby语法来正确调用脚本。

我已经尝试了几种变体-请参阅下面的最新尝试。感谢您提供有关如何正确表示此代码的指导。

jdbc {
    # Postgres jdbc connection string to our database
    jdbc_connection_string =>  "${JDBC_URL}"

    # validate connection before use
    jdbc_validate_connection => true

    # The user we wish to execute our statement as
    jdbc_user => "${JDBC_USER}"

    # The password for jdbc_user
    jdbc_password => "${JDBC_PWRD}"

    # The path to our downloaded jdbc driver
    jdbc_driver_library =>  "${JDBC_JAR}"


    # The name of the driver class for Postgresql
    jdbc_driver_class =>  "${JDBC_DRIVER}"


    sql_log_level => "debug"
    jdbc_fetch_size => 10000

    sequel_opts => {
    after_connect =>
        "proc { |c| c.autocommit = false } end"             
    }


    # our query
    statement => "some valid select statement"   

}

谢谢。

大卫

mlefk 回答:配置logstash输入jdbc插件以禁用自动提交PostgreSQL连接

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3141802.html

大家都在问