文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Presto支持Elasticsearch数据源配置详解

2022-12-08 20:53

关注

正文

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

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

数据源配置

cd <PrestoHome>
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-cli/target/presto-cli-0.235-SNAPSHOT-executable.jar  --server <PrestoServer>
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数据源配置的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯