【问题标题】:logstash SQL Query not able to read (XMLTYPE) fieldlogstash SQL 查询无法读取 (XMLTYPE) 字段
【发布时间】:2016-11-23 05:34:31
【问题描述】:

我正在尝试通过 logstash 配置文件从我的 Oracle DB 中读取包含 (XMLTYPE) 数据的列。但似乎发生了一些 xml 解析错误。

查询

从事件中选择 ilmd;

Logstash 配置文件

input {
    jdbc {
        jdbc_validate_connection => true
        jdbc_connection_string => "jdbc:oracle:thin:@localhost:1521/orcl"
        jdbc_user => "abc"
        jdbc_password => "abc"
        jdbc_driver_library => "/home/user/ES/ojdbc6-11.2.0.4.0.jar"
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
        statement => "SELECT ilmd FROM event"
       }
}
filter {
}
output   {
    stdout { codec => rubydebug }
}

控制台异常

Exception when executing JDBC query {:exception=>#<Sequel::DatabaseError: Java::JavaLang::NoClassDefFoundError: oracle.xdb.XMLTypeFactory>, :level=>:warn}

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: elasticsearch oracle11g logstash logstash-configuration


    【解决方案1】:

    该错误是由于您的jdbc_driver_class 中的拼写错误而发生的。它应该看起来像这样:

    jdbc {
            jdbc_validate_connection => true
            jdbc_connection_string => "jdbc:oracle:thin:@localhost:1521/orcl"
            jdbc_user => "abc"
            jdbc_password => "abc"
            jdbc_driver_library => "/home/user/ES/ojdbc6-11.2.0.4.0.jar"
            jdbc_driver_class => "java::oracle.jdbc.driver.OracleDriver"
            statement => "SELECT ilmd FROM event"
         }
    

    【讨论】:

    • 虽然它是来自同一数据库的其他查询的工作文件,但我尝试了您的建议并得到了异常,错误:java::oracle.jdbc.driver.OracleDriver 未加载。你确定你在 :jdbc_driver_library 中包含了正确的 jdbc 驱动程序吗?您可能对“--configtest”标志感兴趣,您可以在选择重新启动正在运行的系统之前使用它来验证logstash的配置。
    • 我的连接设置没问题,是XML解析不行,请看一下。
    • 如果我尝试从数据库中获取一些非 xml 文件,它可以正常工作,问题在于数据库中的 (XMLTYPE) 文件。
    • 您似乎还需要包含 XMLTypeFactory 类的xdb.jar。这SO 有点证明了这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多