[ 
https://issues.apache.org/jira/browse/CALCITE-3023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-3023:
------------------------------------
    Labels: pull-request-available  (was: )

> Upgrade to Elasticsearch 7.0.0
> ------------------------------
>
>                 Key: CALCITE-3023
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3023
>             Project: Calcite
>          Issue Type: Improvement
>          Components: elasticsearch-adapter
>            Reporter: Takako Shimamoto
>            Priority: Major
>              Labels: pull-request-available
>
> Types are deprecated in APIs in 7.0, with breaking changes to the index 
> creation, put mapping, get mapping, put template, get template and get field 
> mappings APIs.
> https://www.elastic.co/guide/en/elasticsearch/reference/7.0/removal-of-types.html
> In this ticket, I propose that the name of the tables corresponds to indices 
> in Elasticsearch.
> For example:
> *model.json*
> {code:json}
> {
>   "version": "1.0",
>   "defaultSchema": "elasticsearch",
>   "schemas": [
>     {
>       "type": "custom",
>       "name": "elasticsearch",
>       "factory": 
> "org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory",
>       "operand": {
>         "coordinates": "{'127.0.0.1': 9200}"
>       }
>     }
>   ]
> }
> {code}
> *indices in Elasticsearch*
> {code:bash}
> root@50153d5029b6:/calcite# curl localhost:9200
> {
>   "name" : "50153d5029b6",
>   "cluster_name" : "predictionio",
>   "cluster_uuid" : "7drQAZjASgO5SFuuS7zXBA",
>   "version" : {
>     "number" : "7.0.0",
>     "build_flavor" : "default",
>     "build_type" : "tar",
>     "build_hash" : "b7e28a7",
>     "build_date" : "2019-04-05T22:55:32.697037Z",
>     "build_snapshot" : false,
>     "lucene_version" : "8.0.0",
>     "minimum_wire_compatibility_version" : "6.7.0",
>     "minimum_index_compatibility_version" : "6.0.0-beta1"
>   },
>   "tagline" : "You Know, for Search"
> }
> root@50153d5029b6:/calcite# curl -XGET 'http://localhost:9200/_cat/indices?v'
> health status index   uuid                   pri rep docs.count docs.deleted 
> store.size pri.store.size
> yellow open   usa     tHUdsJZLRRS57knDyfD4Bg   1   1          2            0  
>    10.1kb         10.1kb
> yellow open   twitter AtiirLwyQXKCFNFrnYCMVQ   1   1          1            0  
>     4.5kb          4.5kb
> {code}
> We hope it displays like this:
> {code:bash}
> root@50153d5029b6:/calcite# ./sqlline 
> sqlline version 1.7.0
> sqlline> !connect jdbc:calcite:model=model.json admin admin
> SLF4J: Class path contains multiple SLF4J bindings.
> SLF4J: Found binding in 
> [jar:file:/root/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in 
> [jar:file:/root/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an 
> explanation.
> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
> Transaction isolation level TRANSACTION_REPEATABLE_READ is not supported. 
> Default (TRANSACTION_NONE) will be used instead.
> 0: jdbc:calcite:model=model.json> SELECT * from "usa";
> +------------------------------------------------------------------------------------+
> |                                        _MAP                                 
>        |
> +------------------------------------------------------------------------------------+
> | {pop=13367, loc=[-72.505565, 42.067203], city=EAST LONGMEADOW, id=01028, 
> state=MA} |
> | {pop=1350, loc=[-72.703403, 42.354292], city=LEEDS, id=01053, state=MA}     
>        |
> +------------------------------------------------------------------------------------+
> 2 rows selected (2.472 seconds)
> 0: jdbc:calcite:model=model.json> SELECT * from "twitter";
> +--------------------------------------------------------------------------------+
> |                                      _MAP                                   
>    |
> +--------------------------------------------------------------------------------+
> | {user=kimchy, post_date=2009-11-15T14:12:12, message=trying out 
> Elasticsearch} |
> +--------------------------------------------------------------------------------+
> 1 row selected (0.091 seconds)
> 0: jdbc:calcite:model=model.json> SELECT count(*) from "usa";
> +--------+
> | EXPR$0 |
> +--------+
> | 2      |
> +--------+
> 1 row selected (0.404 seconds)
> 0: jdbc:calcite:model=model.json> SELECT count(*) from "twitter";
> +--------+
> | EXPR$0 |
> +--------+
> | 1      |
> +--------+
> 1 row selected (0.136 seconds)
> 0: jdbc:calcite:model=model.json> SELECT _MAP['pop'] as "pop", _MAP['city'] 
> as "city" from "usa";
> +-------+-----------------+
> |  pop  |      city       |
> +-------+-----------------+
> | 13367 | EAST LONGMEADOW |
> | 1350  | LEEDS           |
> +-------+-----------------+
> 2 rows selected (0.121 seconds)
> 0: jdbc:calcite:model=model.json> SELECT _MAP['pop'] as "pop", _MAP['city'] 
> as "city" from "usa" where _MAP['pop'] > 10000;
> +-------+-----------------+
> |  pop  |      city       |
> +-------+-----------------+
> | 13367 | EAST LONGMEADOW |
> +-------+-----------------+
> 1 row selected (0.306 seconds)
> 0: jdbc:calcite:model=model.json> SELECT _MAP['user'] as "user", 
> _MAP['message'] as "message" from "twitter";
> +--------+--------------------------+
> |  user  |         message          |
> +--------+--------------------------+
> | kimchy | trying out Elasticsearch |
> +--------+--------------------------+
> 1 row selected (0.133 seconds)
> 0: jdbc:calcite:model=model.json> 
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to