You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Takako Shimamoto (JIRA)" <ji...@apache.org> on 2019/04/25 02:12:00 UTC
[jira] [Created] (CALCITE-3023) Upgrade to Elasticsearch 7.0.0
Takako Shimamoto created CALCITE-3023:
-----------------------------------------
Summary: 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
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)