我正在尝试使用elasticsearch river将一个postgresql Json数据类型列放入elasticsearch中。
这里是创造的河
curl -XPUT 'localhost:9200/_river/business_river/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"driver" : "org.postgresql.Driver",
"url" : "jdbc:postgresql://localhost:5432/business",
"user" : "postgres",
"password" : "",
"sql" : "select id, active, companies->'sic'->>'national_number' AS sic, companies->'names'->>'name' AS name, companies->'address'->>'country' AS country from businesses.business",
"index" : "business",
"type" : "jdbc"
}
}'
河边抱怨说“名称”列不存在!该查询在Postgresql中工作,这使我认为JDBC或river不支持Json数据类型。
这是完整的消息
[2014-01-13 07:47:27,919][INFO ][org.xbib.elasticsearch.river.jdbc.JDBCRiver] [Brigade] [jdbc][business_river] starting JDBC river: URL [jdbc:postgresql://localhost:5432/business], driver [org.postgresql.Driver], strategy [oneshot], index [jdbc]/[jdbc]
[2014-01-13 07:47:33,281][ERROR][org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow] ERROR: column "names" does not exist
Position: 31
org.postgresql.util.PSQLException: ERROR: column "names" does not exist
Position: 31
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:560)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:283)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.executeQuery(SimpleRiverSource.java:417)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverSource.fetch(SimpleRiverSource.java:241)
at org.xbib.elasticsearch.river.jdbc.strategy.simple.SimpleRiverFlow.move(SimpleRiverFlow.java:184)
at org.xbib.elasticsearch.river.jdbc.strategy.oneshot.OneShotRiverFlow.run(OneShotRiverFlow.java:38)
at java.lang.Thread.run(Thread.java:744)
感谢克雷格·林格(Craig Ringer)向我指出了真正的问题,我改写了我的河,用“ \ u0027”替换了PostgreSQL
json查询中的简单引号,现在一切正常
主要内容:日期和时间数据类型,处理NULL值JDBC驱动程序将Java数据类型转换为适当的JDBC类型,然后将其发送到数据库。 它为大多数数据类型提供并使用默认映射。 例如,Java 类型会被转换为SQL 。 创建默认映射以提供到驱动程序时保持一致性。 下表总结了当调用或对象或方法的方法时,将Java数据类型转换为的默认JDBC数据类型。 SQL类型 JDBC/Java类型 setXXX updateXXX VARCHAR java.lan
我试图使用Spring数据Elasticsearch连接到Elasticsearch 5。 根据链接-https://github.com/spring-projects/spring-data-elasticsearch,spring数据弹性搜索-3.0.0。M4与Elasticsearch 5.4.0兼容 但我在尝试连接Elasticsearch时出现以下错误 请告诉我,如果你们中的任何一个人
请帮助解决此错误... 因为我在该对象上使用了bigdecimal类型,而没有添加一个操作@字段(type=FieldType.Double) 有没有办法配置默认的FieldType。大十进制加倍?或者我们需要在每个大十进制中添加字段注释
问题内容: 当使用各种JDBC模板方法之一时,我对如何迭代/滚动大结果集(不适合内存)感到困惑。即使没有直接公开Iterable接口,我至少也希望RowQuerybackHandler实例在查询执行后( 而 不是在堆溢出之后)执行时被调用。 我也有在看一个这个(这什么都没有改变,我尽管是在精神上类似这个帖子上的堆栈溢出),并在该岗位在spring论坛。后者似乎暗示在游标获取数据时确实应该调用回调处
本文向大家介绍详解jdbc实现对CLOB和BLOB数据类型的操作,包括了详解jdbc实现对CLOB和BLOB数据类型的操作的使用技巧和注意事项,需要的朋友参考一下 详解jdbc实现对CLOB和BLOB数据类型的操作 1、 读取操作 CLOB BLOB 2、写入操作 CLOB BLOB 3、读写CLOB/BLOB数据到文件 TNS: Table: 测试代码: 注:如果是具体的字符串写入CLOB字段
我知道Kafka JDBC接收器连接器对于数组数据类型有一些缺点。然而,是否有可能将接收器连接器与一个简单的Kafka连接器结合起来,该连接器可以支持数组数据类型。如何从Kafka配置中筛选并切换到简单的Kafka连接器配置简单的Kafka配置意味着什么?Kafka如何连接支持阵列字段 这是否可能,因为它将作为字符串而不是数组消耗给db