使用“时出错”$river.state.timestamp“;Sql查询中的ElasticSearch
我正在使用下面提到的JSON字符串创建一条河流。此河流将使用$river.state.timestamp值从数据库中获取记录使用“时出错”$river.state.timestamp“;Sql查询中的ElasticSearch,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我正在使用下面提到的JSON字符串创建一条河流。此河流将使用$river.state.timestamp值从数据库中获取记录 { "type": "jdbc", "jdbc": { "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver", "url": "jdbc:sqlserver://sql2008r2;databaseName=DBName", "user": "user", "passwor
{
"type": "jdbc",
"jdbc": {
"driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"url": "jdbc:sqlserver://sql2008r2;databaseName=DBName",
"user": "user",
"password": "password",
"sql": [
{
"statement": "select * from dbo.rivertest where timestamp < (?)",
"parameter": [
"$river.state.timestamp"
]
}
],
"index": "readIndex",
"type": "read_type",
"autocommit": true,
"schedule": "0 0/1 * 1/1 * ? *"
}
}
{
“类型”:“jdbc”,
“jdbc”:{
“驱动程序”:“com.microsoft.sqlserver.jdbc.SQLServerDriver”,
“url”:“jdbc:sqlserver://sql2008r2;databaseName=DBName“,
“用户”:“用户”,
“密码”:“密码”,
“sql”:[
{
“语句”:“从dbo.rivertest中选择*其中时间戳<(?)”,
“参数”:[
“$river.state.timestamp”
]
}
],
“索引”:“readIndex”,
“类型”:“读取类型”,
“自动提交”:正确,
“附表”:“0 0/1*1/1*?*”
}
}
我在两台不同的机器上使用相同的JSON。这条河在一台服务器上运行正常,但在我的本地机器上它抛出异常
[2014-12-02 22:28:01,949][ERROR][river.jdbc.RiverPipeline ] com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting date and/or time from character string.
java.io.IOException: com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting date and/or time from character string.
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.fetch(SimpleRiverSource.java:341)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow.fetch(SimpleRiverFlow.java:209)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow.execute(SimpleRiverFlow.java:139)
at org.xbib.elasticsearch.plugin.jdbc.RiverPipeline.request(RiverPipeline.java:88)
at org.xbib.elasticsearch.plugin.jdbc.RiverPipeline.call(RiverPipeline.java:66)
at org.xbib.elasticsearch.plugin.jdbc.RiverPipeline.call(RiverPipeline.java:30)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting date and/or time from character string.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.<init>(SQLServerResultSet.java:311)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1526)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.executeQuery(SimpleRiverSource.java:648)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.executeWithParameter(SimpleRiverSource.java:419)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.fetch(SimpleRiverSource.java:317)
... 9 more
[2014-12-02 22:28:01,952][INFO ][river.jdbc.RiverMetrics ] pipeline org.xbib.elasticsearch.plugin.jdbc.RiverPipeline@7c70ae7a complete: river jdbc/read_river metrics: 0 rows, 0.0 mean, (0.0 0.0 0.0), ingest metrics: elapsed 1 second, 0.0 bytes bytes, 0.0 bytes avg, 0 MB/s
[2014-12-02 22:28:01949][ERROR][river.jdbc.RiverPipeline]com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换日期和/或时间时,转换失败。
java.io.IOException:com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换日期和/或时间时,转换失败。
位于org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.fetch(SimpleRiverSource.java:341)
位于org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow.fetch(SimpleRiverFlow.java:209)
位于org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow.execute(SimpleRiverFlow.java:139)
位于org.xbib.elasticsearch.plugin.jdbc.RiverPipeline.request(RiverPipeline.java:88)
位于org.xbib.elasticsearch.plugin.jdbc.RiverPipeline.call(RiverPipeline.java:66)
位于org.xbib.elasticsearch.plugin.jdbc.RiverPipeline.call(RiverPipeline.java:30)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:744)
原因:com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换日期和/或时间时转换失败。
位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
位于com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
位于com.microsoft.sqlserver.jdbc.TDSParser.parse(TDSParser.java:84)
位于com.microsoft.sqlserver.jdbc.SQLServerResultSet.(SQLServerResultSet.java:311)
位于com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1526)
位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
位于com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
位于com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
位于com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
位于com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
位于org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.executeQuery(SimpleRiverSource.java:648)
位于org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.executeWithParameter(SimpleRiverSource.java:419)
位于org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.fetch(SimpleRiverSource.java:317)
... 9更多
[2014-12-02 22:28:01952][INFO][river.jdbc.RiverMetrics]pipeline org.xbib.elasticsearch.plugin.jdbc。RiverPipeline@7c70ae7a完成:river jdbc/read_river度量:0行,0.0平均值,(0.0.0.0),摄取度量:经过1秒,0.0字节,平均0.0字节,0 MB/s
当这条河在服务器上执行时,它正在从数据库中获取记录。JSON是相同的,JDBC驱动程序是相同的。两条河流使用相同的SQL server和相同的表
服务器正在使用
ES版本:1.1.1
JDBC River插件版本:1.1.0.0
我的机器正在使用
ES版本:1.3.4
JDBC River插件版本:1.3.4.4
它与ES/JDBC River插件版本有关吗?任何帮助都将不胜感激。感谢来自JDBC团队的任何人回顾和回答?我认为这个问题是由于一些版本的问题。qeury返回什么?我认为您需要将
where timestamp<(?)
更改为where timestamp<(\“?\”)
我会尝试一下,并得出结论,在github页面中打开了许多与$river.state.有关的未解决问题。最后一个活动\u begin