Je suis en mesure d'obtenir une connexion MongoDB et en mesure d'obtenir un nœudApache Calcite | Interrogation des données de MongoDB en utilisant l'algèbre relationnelle
(LogicalTableScan(table=[[enlivenDev, collection1]]))
Mais quand j'exécute le nœud, je reçois NullPointerException.
Code complet:
private void executeMongoDB(){
final FrameworkConfig config = mongoConfig().build();
final RelBuilder builder = RelBuilder.create(config);
final RelNode node = builder.scan("collection1").build();
System.out.println(RelOptUtil.toString(node));
PreparedStatement ps = RelRunners.run(node);
ResultSet resultSet = ps.executeQuery();
}
public static Frameworks.ConfigBuilder mongoConfig() {
final SchemaPlus rootSchema = Frameworks.createRootSchema(true);
org.apache.calcite.tools.Frameworks.ConfigBuilder configBuilder =Frameworks.newConfigBuilder()
.parserConfig(SqlParser.Config.DEFAULT)
.defaultSchema(
MongoDBConnection.addMongoSchema(rootSchema, CalciteAssert.SchemaSpec.MONGO_DB))
.traitDefs((List<RelTraitDef>) null)
.programs(Programs.heuristicJoinOrder(Programs.RULE_SET, true, 2));
return configBuilder;
}
public static SchemaPlus addMongoSchema(SchemaPlus rootSchema, SchemaSpec schema) {
switch (schema) {
case MONGO_DB:
return rootSchema.add("enlivenDev",
MongoSchemaFactory.create(rootSchema, "192.168.1.01", "enlivenDev", 27017, "mgp", "mg1"));
default:
throw new AssertionError("unknown schema " + schema);
}
}
Obtenir exception suivante à partir d'un code ci-dessus, il y a schéma d'obtenir des valeurs nulles, alors que l'exécution relnode de collection DB Mongo GRAVES: Exception lors de l'exécution requête: null java.sql. SQLException: exception pendant l'exécution de la requête: null à org.apache.calcite.avatica.Helper.createException (Helper.java:56) à org.apache.calcite.avatica.Helper.createException (Helper.java:41) à org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal (AvaticaConnection.java:540) à org.apache.calcite.avatica.AvaticaPreparedStatement.executeQuery (AvaticaPreparedStatement.java:133) à org.ramyam.eis.core.ApachecalcitePOC.processMongoDB (ApachecalcitePOC.java:106) à org.ramyam.eis.core. ApachecalcitePOC.main (ApachecalcitePOC.java:42) causée par: java.lang.NullPointerException à org.apache.calcite.schema.Schemas.queryable (Schemas.java:232) à Baz.bind (Source inconnue) à org.apache.calcite.jdbc.CalcitePrepare $ CalciteSignature.enumerable (CalcitePrepare.java:335) à org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable (CalciteConnectionImpl.java:294) à org.apache.calcite.jdbc. CalciteMetaImpl._createIterable (CalciteMetaImpl.java:559) sur org.apac he.calcite.jdbc.CalciteMetaImpl.createIterable (CalciteMetaImpl.java:550) à org.apache.calcite.avatica.AvaticaResultSet.execute (AvaticaResultSet.java:204) à org.apache.calcite.jdbc.CalciteResultSet.execute (CalciteResultSet.java:67) à org.apache.calcite.jdbc.CalciteResultSet.execute (CalciteResultSet.java:44) à org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal (AvaticaConnection.java:536)
Pouvez-vous montrer l'exception complète? –
ajouté pleine exception –
N'importe qui m'aider à ce sujet..Merci est avance –