iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Presto支持Elasticsearch数据源配置详解
  • 587
分享到

Presto支持Elasticsearch数据源配置详解

PrestoElasticsearch数据源配置PrestoElasticsearch 2022-12-08 20:12:53 587人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录正文数据源配置数据表配置数据测试正文 强烈建议使用elasticsearch 6.0.0或更高版本 在实际工作中我们使用到elasticsearch的场景也很多,为了方便我们统

正文

强烈建议使用elasticsearch 6.0.0或更高版本

在实际工作中我们使用到elasticsearch的场景也很多,为了方便我们统一sql的查询方式,我们需要将elasticsearch接入到presto中,当然这也是合理的,接下来我们讲解如何进行elasticsearch数据源的接入!

数据源配置

  • 首先进入presto安装目录
cd <PrestoHome>
  • 创建presto对接elasticsearch的配置文件
vim etc/catalog/elasticsearch.properties

在该文件中配置以下内容:

connector.name=elasticsearch
elasticsearch.default-schema-name=test
elasticsearch.table-description-directory=etc/elasticsearch/
elasticsearch.scroll-size=1000
elasticsearch.scroll-timeout=30s
elasticsearch.request-timeout=2s
elasticsearch.max-request-retries=10
elasticsearch.max-request-retry-time=90s
elasticsearch.max-hits=1000000

参数的详细含义详见官方文档

数据表配置

我们配置的数据表目录是etc/elasticsearch/,所以我们需要在该目录下创建相关数据表配置

比如我们在es中有一个明教test的索引,索引大概如下

{
    "test": {
        "mappings": {
            "elasticsearch": {},
            "doc": {
                "properties": {
                    "msg": {
                        "type": "text",
                        "fields": {
                            "keyWord": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "query": {
                        "properties": {
                            "match": {
                                "properties": {
                                    "msg": {
                                        "type": "text",
                                        "fields": {
                                            "keyword": {
                                                "type": "keyword",
                                                "ignore_above": 256
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

在该索引中我们只有一个字段那就是msg,根据这个索引我们配置适配presto的数据表

数据表配置如下:

{
    "tableName":"test",
    "schemaName":"test",
    "host":"localhost",
    "port": 9300,
    "clusterName":"es",
    "index":"test",
    "indexExactMatch":false,
    "type":"doc",
    "columns":[
        {
            "name":"msg",
            "type":"varchar",
            "JSONPath":"msg",
            "jsonType":"varchar"
        }
    ]
}

需要注意的是我们在columns中的类型指定的是presto中的数据类型 jsonPath针对于json数据而言,不是json数据的话直接使用key即可,详细的参数配置详见官方文档

注意事项:

clusterName一定要于ES服务配置的一致,否则会出现无法连接错误

jsonPath配置格式为$.key

配置完成后重启presto服务即可

数据测试

  • 连接presto客户端
presto-cli/target/presto-cli-0.235-SNAPSHOT-executable.jar  --server <PrestoServer>
  • 执行查询sql
SELECT msg FROM elasticsearch.test.test limit 1;

elasticsearch.test.test: <catalog>.<database>.<table>

返回结果如下:

 msg 
-----
 你好 
(1 row)
Query 20200429_095419_00007_p45px, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:05 [39.8K rows, 660KB] [8.12K rows/s, 135KB/s]

返回我们在ES中的数据结果,我们集成ES成功!

注意: 需要同步配置etc目录到所有的节点中,并重启服务

以上就是Presto支持Elasticsearch数据源配置详解的详细内容,更多关于Presto Elasticsearch数据源配置的资料请关注编程网其它相关文章!

--结束END--

本文标题: Presto支持Elasticsearch数据源配置详解

本文链接: https://www.lsjlt.com/news/174298.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作