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.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

Reply via email to