背景:公司要做一个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 txtselect * 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" />=true&pretty

请求如下;返回下面的三行则说明问题已经得到解决了,

有问题欢迎大家留言交流,文档随着了解es慢慢再维护完整。