我正在尝试使用 Logstash 将我的sqlserver表格转换为 Elasticsearch 。为此我创建了以下配置文件。
input {
jdbc {
jdbc_connection_string => "jdbc:sqlserver://xxx.xxx.x.xxx:1433/DB_name"
jdbc_user => "devuser"
jdbc_password => "devuser"
jdbc_driver_library => "D:/Mssqljdbc/sqljdbc4-2.0.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
statement => "SELECT * FROM sample"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
hosts => "localhost"
index => "testmigrate"
document_type => "data"
}
}
然后我使用bin\logstash -f sqltable.conf
来执行它。
但我得到了
错误:Java :: ComMicrosoftSqlserverJdbc :: SQLServerException:端口 编号1433 / DB_name无效。
我检查了我能够ping特定的IP地址,端口也是打开但仍然得到相同的错误。请帮忙
答案 0 :(得分:1)
经过一番挖掘后,我做了一个小改动,它对我有用。我在DB_name前添加了 databaseName 。
input {
jdbc {
jdbc_connection_string => "jdbc:sqlserver://xxx.xxx.x.xxx:1433;databaseName=DB_name"
jdbc_user => "devuser"
jdbc_password => "devuser"
jdbc_driver_library => "D:/Mssqljdbc/sqljdbc4-2.0.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
statement => "SELECT * FROM sample"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
hosts => "localhost"
index => "testmigrate"
document_type => "data"
}
}
很奇怪我没有在任何文档中找到它。