让ElasticSearch Oracle SQL River正常工作
我是ElasticSearch新手,正在尝试在本地计算机上设置一个实例,该实例将连接到另一台服务器上的Oracle SQL数据库。目前,我正在使用ES1.5.2,并下载了插件ojdbc6.jar。我也在使用Windows电脑 我可以打开elasticsearch.bat文件并成功启动一个Test_节点,但我无法使移动的片段对齐。我从几个问题/答案以及一些ES文档中拼凑了以下命令 我建造这条河的命令:让ElasticSearch Oracle SQL River正常工作,sql,oracle,jdbc,elasticsearch,Sql,Oracle,Jdbc,elasticsearch,我是ElasticSearch新手,正在尝试在本地计算机上设置一个实例,该实例将连接到另一台服务器上的Oracle SQL数据库。目前,我正在使用ES1.5.2,并下载了插件ojdbc6.jar。我也在使用Windows电脑 我可以打开elasticsearch.bat文件并成功启动一个Test_节点,但我无法使移动的片段对齐。我从几个问题/答案以及一些ES文档中拼凑了以下命令 我建造这条河的命令: curl -XPUT "localhost:9200/_river/JDBC_River
curl -XPUT "localhost:9200/_river/JDBC_River/_meta" -d @config.json
My@config.json文档:
{"type": "jdbc",
"jdbc": "{
\"strategy\": \"oneshot\",
\"url\": \"jdbc:oracle:thin:@server.database:1521/Hello.WORLD\",
\"user\":\"user\",
\"password\":\"password\",
\"sql\":\"select id as \"_id\", count(*) from table group by stuff\",
\"gridfs\": false
}",
"index": "{
\"index\": \"CHANNEL_DATA\",
\"type\": \"MDM_data\"
}"
}
我用于检查河流是否存在的命令:
curl -XGET "localhost:9200/JDBC_River/_search?pretty"
此命令接收以下输出:
{
"error" : "IndexMissingException[[JDBC_River] mising]",
"status" : 404
}
此外,我拼凑的用于将数据拉回到视图和删除河流的命令分别如下:
curl -XGET "localhost:9200/JDBC_River"
curl -XDELETE "localhost:9200/_river/JDBC_River/"
有人能帮我解释一下为什么我的河流不存在,但它是被创造出来的吗?我的直觉是,这是一个驱动程序问题,我的river实际上并没有撞到oracle数据库,但我不知道应该使用什么语法,因为我发现的大多数oracle JDBC文档都已经过时了。您的JDBC URL中的“Hello.WORLD”是什么?正确的格式是
jdbc:oracle:thin:@/:/ServiceName
,谢谢您的回复。那个Hello.WORLD的东西是从我找到的另一个问答论坛上抄来的。我不知道“ServiceName”是什么意思。例如,is=server.database?主机是一个网络主机,由其主机名或IP地址指定。服务名称是DBA分配给Oracle实例(=数据库)的名称。我已经适当地调整了主机名和服务名。然而,我仍然得到与上面相同的错误。还有其他建议吗?另外,我还有一个问题:我的url应该是有效的url吗?如果我在浏览器中输入URL,它应该在任何地方吗?