2016-11-23 152 views
0

我想通過logstash配置文件從我的Oracle數據庫中讀取包含(XMLTYPE)數據的列。但它看起來像一些XML解析錯誤發生。logstash SQL查詢無法讀取(XMLTYPE)字段

查詢

從事件選擇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} 

有人可以幫助我在此,請。

回答

0

由於您的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" 
    } 
+0

雖然它正在從同一個數據庫等查詢文件,我想你的建議,並得到了一個例外,錯誤:JAVA ::未加載oracle.jdbc.driver.OracleDriver。你確定你已經在jdbc_driver_library中包含了正確的jdbc驅動嗎? 您可能對'--configtest'標誌感興趣,您可以使用 驗證logstash的配置,然後選擇 重新啓動正在運行的系統。 –

+0

我的連接設置沒問題,不起作用的是XML解析的東西,請查看它。 –

+0

如果我試圖從Db中獲取一些非xml文件,那麼它就可以正常工作,問題出在數據庫中的(XMLTYPE)文件中。 –