You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Andrei Sereda (JIRA)" <ji...@apache.org> on 2019/05/20 20:56:00 UTC

[jira] [Commented] (CALCITE-3023) Upgrade to Elasticsearch 7.0.0

    [ https://issues.apache.org/jira/browse/CALCITE-3023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16844288#comment-16844288 ] 

Andrei Sereda commented on CALCITE-3023:
----------------------------------------

For calcite ({{1.20}}?) release notes we should mention that ES 2.x and 5.x are no longer supported by calcite elastic adapter. 

> 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
>          Time Spent: 3h 40m
>  Remaining Estimate: 0h
>
> 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)