Firstly,thanks for your reply. But I'm sure that my local elasticsearch-model.json has been loaded correctly,because when getting connect,read the elastic info from that file. I will debug the test-demo again...Search for the cause of the problem.
Best wishes. Maria. At 2019-04-02 19:54:24, "Yuzhao Chen" <[email protected]> wrote: >For Object 'test' not found it means Calcite does not load your son model >correctly, so it can not find then validate the table there. Maybe you model >file is not load correctly. > >I saw a demo in Calcite code in [1], the path sep is </> while your sep is ><\\>, can you have a try ? > >[1] >https://github.com/apache/calcite/blob/a75a689eff2f1333adc8fb800bdfa077e94da562/core/src/test/java/org/apache/calcite/test/LatticeTest.java#L914 > >Best, >Danny Chan >在 2019年4月2日 +0800 PM8:33,Maria <[email protected]>,写道: >> Hi, calcite developers. I met a question about es-adapter and still cannot >> resove it: . >> >> >> 1) calcite version :1.18.0 >> 2) ES version : 5.4.1(I know that in calcite-1.18.0 is 6.4.2) >> 3) test sql : select count(*) from test >> 4) elasticsearch-model.json as follow: >> { >> "version": "1.0","defaultSchema": "elasticsearch", "schemas": [ { "type": >> "custom", "name": "test", "factory": >> "org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory", >> "operand": { >> "coordinates": "{'xx.xx.xx.xx': 9205}", >> "userConfig": "{'bulk.flush.max.actions': 10, 'bulk.flush.max.size.mb': 1}", >> "index": "test" } } ] } >> 5) test-code: >> try { >> Class.forName("org.apache.calcite.jdbc.Driver"); >> } catch (ClassNotFoundException e) { >> Throw new RuntimeException(e); >> } >> Properties pp = new Properties(); >> pp.put("lex", "JAVA"); >> Connection conn = null; >> try { >> conn = >> DriverManager.getConnection("jdbc:calcite:model=D:\\calcite\\pre-git\\calcite-test\\conf\\elasticsearch-model.json", >> pp); >> Statement ss = conn.createStatement(); >> String sql = "select count(*) from test"; >> ResultSet result = ss.escuteQuery(sql); >> output(resultSet, System.out); >> } catch() { >> Throw new RuntimeException("======get data failed" , e); >> } >> >> >> 6) excaptions : >> org.apache.calcite.sql.validate.SqlValidatorException:Object 'test' not found >> Exception in thread "main" java.lang.RuntimeException: ======get data failed >> ......... >> caused by:org.apache.calcite.runtime.CalciteContestException: From line 1, >> column 22 to line 1, column 25: Object 'test' not found<4 internal calls> >> at >> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463) >> at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:787) >> at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:772) >> at >> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4788) >> at >> org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:172) >> ......... >> 7) other confusions: >> [1] I know that in elasticsearch apdator, test case is done by >> EmbeddedElasticsearch, why not add one standard JDBC test case? >> [2] model.json in http://calcite.apache.org/docs/elasticsearch_adapter.html >> need to be update,should add "userConfig", or else will be failed. >> >> >> >> >> any reply will be appreciated >> >> >> Maria. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
