Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“时出错”$river.state.timestamp“;Sql查询中的ElasticSearch - Fatal编程技术网

使用“时出错”$river.state.timestamp“;Sql查询中的ElasticSearch

使用“时出错”$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

我正在使用下面提到的JSON字符串创建一条河流。此河流将使用$river.state.timestamp值从数据库中获取记录

{
  "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