是否可以将数据从Cassandra导入Apache Solr?
我目前正使用Solr的dataimporthandler将数据从MySQL导入Apache Solr。是否可以使用Cassandra代替MySQL?
更新1:
我尝试使用此处给出的JDBC驱动程序(https://code.google.com/a/apache-extras.org/p/cassandra-jdbc/)从一个简单的Java程序连接到Cassandra。我的想法是,如果java代码有效,Solr也应该从Cassandra导入。但它没有工作,我得到以下错误:
log4j:WARN找不到logger(org.apache.cassandra.cql.jdbc.CassandraDriver)的appender。 log4j:WARN请正确初始化log4j系统。 log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig。 线程" main"中的例外情况java.lang.NoClassDefFoundError:org / apache / cassandra / cql / jdbc / AbstractJdbcType 在org.apache.cassandra.cql.jdbc.CassandraConnection。(CassandraConnection.java:146) 在org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92) 在java.sql.DriverManager.getConnection(DriverManager.java:664) 在java.sql.DriverManager.getConnection(DriverManager.java:270) 在CqlConnection.main(CqlConnection.java:14) 引起:java.lang.ClassNotFoundException:org.apache.cassandra.cql.jdbc.AbstractJdbcType 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:372) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ......还有5个
答案 0 :(得分:2)
免责声明 - 从未尝试过,因此无法保证性能等:)
Solr的DataImportHandler contrib使用JDBC连接到关系数据源。这是关于configuring JDBC
的官方Solr Wiki现在,对于Cassandra,您可以使用Cassandra-jdbc驱动程序并设置DIH配置以获得此驱动程序支持的SQL。
请注意: - 我没有在生产设置中使用Cassandra-jdbc,因此可能存在您可能需要考虑试用的缺点。 - 如上所述,我不知道性能方面 - 会建议你把它搞定。
请回复任何调查结果!