You define your default schema as "elasticsearch" but then elastic schema
is called "test" :
, "schemas": [ { "type": "custom", "name": "test" ..., index:"test" }]
Also if you don't explicitly specify ES type all types for index "test"
will be imported. So it is possible that there is no test.test type.
On Tue, Apr 2, 2019 at 11:18 PM Maria <[email protected]> wrote:
>
>
> And, if the name is not correct, creating ElasticsearchSchema will be
> failed. The program will not performs "ResultSet result =
> ss.excuteQuery(sql);"
>
> At 2019-04-03 09:47:02, "Andrei Sereda" <[email protected]> wrote:
> >Can you check that it's not because of lex ?
> >What if you quote table name "test" ? Maybe uppercase ?
> >
> >On Tue, Apr 2, 2019, 22:42 Maria <[email protected]> wrote:
> >
> >> 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.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >>
>