背景:公司要做一个es的数据存储,然后通过接口进行查询,我在docker下完成了ELK的安装,但是对es还不是很了解,就想着用logstash加载完数据到es中后,在数据库中对es进行查询,发现datagrip是支持连接es的,然后就想着把整个流程记录下来吧
第一步:在datagrip中找到连接es的地方,如下图所示,先点击+号,然后选择data source,然后找到es的选项
第二步:下载链接es的驱动,我是直接点击datagrip中的下载选项的,然后填写上你es的连接的相关信息,将下面打✅的都填写好
第三步:测试连接es是否成功,点击test connection链接按钮,如下图所示,则证明链接成功了
第四步:刷新连接es的连接,显示你已经创建好的相关索引,则说明es库中的索引已经加载进来了
第五步:测试写SQL查询es库
我列举了可以查询的SQL语法,后续再完善,刚接触es,好多东西都不了解
支持的语法
show tables;
select * from txt
select * from txt where message='{"name":"sixmonth","sex":"男"}'
select * from test_es
查询结果显示如下;
不支持的语法
show databases;
//下面的不知道为啥报错,是不是表名字带了特殊符号?
select * from logstash-system-localhost-2023.05.06
遇到的问题:查询es时报错如下;
[2023-05-06 11:35:29] current license is non-compliant for [jdbc]
解决方法:
用postman请求es如下;
注意:这里面的请求要用POST请求
//注意切换你自己的IP地址
http://172.16.27.1:9200/_license/start_trial?acknowledge=true&pretty
请求如下;返回下面的三行则说明问题已经得到解决了,😄
有问题欢迎大家留言交流,文档随着了解es慢慢再维护完整。