太阳能与太阳能Sybase:DIH 完全导入失败

发布于 2024-12-14 18:58:21 字数 2241 浏览 0 评论 0原文

我尝试从需要 Sybase 驱动程序进行连接的数据库导入。

使用数据配置从 DIH 完全导入:

<dataConfig>
    <dataSource type="JdbcDataSource"
        driver="sybase.jdbc4.sqlanywhere.IDriver"
               url="jdbc:sqlanywhere:eng=dbn;dbn=dbname;links=tcpip{host=10.94.XXX.XX}"
                user="usr" 
        password="pwd" />
    <document name="products">
      <entity name="company" pk="id" query="call WS.getFieldsLimited('RU', '2011-10-01', 10)">
            <field column="ID" name="crefo" />
...
...
        </entity>
    </document>
</dataConfig>

失败并抛出异常

严重:完全导入失败 org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:调用 WS.getCrefoSearchFieldsLimited('RU', '2011-10-01', 10) 处理文档 # 1 在 org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72) 在 org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator。(JdbcDataSource.java:253) 在 org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:210) 在 org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39) 在 org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:58) 在org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:71) 在 org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:237) 在 org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357) 在 org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242) 在 org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在 org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) 在 org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) 引起原因:java.lang.NullPointerException 在 org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator。(JdbcDataSource.java:251) ... 11 更多

我是否使用了错误的 url 或错误的数据源声明? 我可以通过 sql 客户端访问该过程。

I try to import from a DB that requires Sybase driver for connection.

Full-import from DIH with data-config:

<dataConfig>
    <dataSource type="JdbcDataSource"
        driver="sybase.jdbc4.sqlanywhere.IDriver"
               url="jdbc:sqlanywhere:eng=dbn;dbn=dbname;links=tcpip{host=10.94.XXX.XX}"
                user="usr" 
        password="pwd" />
    <document name="products">
      <entity name="company" pk="id" query="call WS.getFieldsLimited('RU', '2011-10-01', 10)">
            <field column="ID" name="crefo" />
...
...
        </entity>
    </document>
</dataConfig>

Fails and throws an exeption

SEVERE: Full Import failed
org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: call WS.getCrefoSearchFieldsLimited('RU', '2011-10-01', 10) Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:253)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:210)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:58)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:71)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:237)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370)
Caused by: java.lang.NullPointerException
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251)
... 11 more

Do I use a wrong url or bad dataSource declaration?
I can acces that procedure through sql client.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

开始看清了 2024-12-21 18:58:22

语法

(RU', '2011-10-01', 10)

Java 正在抄袭跟踪第二行的 。我猜你的意思是

 ('RU', '2011-10-01', 10)

Stack Overflow 的自动语法突出显示在这里确实有所帮助。

为了减少在编程语言中嵌入查询的烦恼:

  1. 在嵌入之前在解释器中尝试查询(如果 Sybase 有的话) 在
  2. 支持该查询语言的语法突出显示的文本编辑器中写出查询
  3. 请注意您的查询语言的转义字符查询语言(%hh 转义 URL 中的字符,\ 转义 SQL 中的字符)
  4. 使用您的语言支持的字符串格式和多行字符串功能

-某人在其职业生涯的前四个月中从事(除其他外)SQL以及 Python 和 PHP 中的 Solr 查询。

Java was cribbing about the syntax of

(RU', '2011-10-01', 10)

in second line of the trace. I guess you mean

 ('RU', '2011-10-01', 10)

Stack Overflow's auto syntax highlighting did help here.

To be less exasperated with embedding queries in a programming language:

  1. try out the query in an interpreter (if Sybase has one) before embedding
  2. write out the queries in a text editor that supports syntax highlighting for that query language
  3. be aware of escape characters for your query language (%hh escapes chars in URLs, \ escapes chars in SQL)
  4. use string formatting and multi-line string features supported by your language

-Someone who spent his first four months of his career doing (among other things) SQL and Solr queries in Python and PHP.

小霸王臭丫头 2024-12-21 18:58:22

目前数据导入处理程序不支持存储过程调用。请参阅https://issues.apache.org/jira/browse/SOLR-1262

Currently the Data Import Handler does not support stored procedure calls. See https://issues.apache.org/jira/browse/SOLR-1262

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文