python 如何使用 NLPchina 开源sql插件,提供代码

分享一段使用python,通过使用发送post请求的方式,来从es集群中获取数据。不用使用 elasticsearh,仅需要导入request和json包即可。

开源sql插件官方 文档


GitHub - NLPchina/elasticsearch-sql: Use SQL to query Elasticsearch

 

示例代码

调试过,可运行,得到的结果,为kibana界面上展示的结果,需要自己解析hit里边的数据。agg聚合分析结果在 aggregations里边。可以看打印的结果!

如果包错,没有requests包,则导入即可。

pip install requests

import requests
import jsondef execute_sql_and_get_json_response(sql_query):# 定义请求的URL和头部url = "http://localhost:9200/_nlpcn/sql"headers = {'Content-Type': 'application/json'}# 确保数据是以UTF-8编码的字节串data_encoded = sql_query.encode('utf-8')# 发送POST请求response = requests.post(url, headers=headers, data=data_encoded, params={"pretty": "true"})# 处理响应if response.status_code == 200:# 返回原始JSON响应文本return response.textelse:raise Exception(f"请求失败,状态码:{response.status_code}\n错误信息:{response.text}")# 使用方法示例
sql_query = 'select * from indexName WHERE  = "MTJJ" AND age <> "38"'
try:json_response = execute_sql_and_get_json_response(sql_query)# 如果需要将响应内容转化为Python字典,可以使用 json.loads 方法python_dict_response = json.loads(json_response)# 对python_dict_response进行后续处理print(python_dict_response)
except Exception as e:print(e)

遇到问题

sql中的不等号解析有问题,调用报错,需要用 <> 代表 !=

结果需要自己解析,输出的json结果和kibana上的结果一样

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/542700.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是C#的扩展方法,要怎么自定义使用

介绍&#xff1a; C#中的扩展方法是一种特殊的静态方法&#xff0c;允许你向现有的类添加新的方法&#xff0c;而无需修改类的原始定义。它们使得可以在不修改原始类的情况下&#xff0c;给类添加新的行为。这种功能在编写库或者框架时非常有用&#xff0c;因为它允许你向已有的…

nginx怎么配置多台机器实现负载均衡

先尝试配置一个简单的服务脚本 要配置两台机器实现负载均衡&#xff0c;你可以使用nginx作为反向代理服务器。下面是一个简单的示例配置&#xff1a; 假设你有两台服务器&#xff0c;它们的IP地址分别是192.168.1.100和192.168.1.101。 首先&#xff0c;安装nginx并创建一个新…

【DL经典回顾】激活函数大汇总(一)(Sigmoid Tanh ReLU Leaky ReLU PReLU附代码和详细公式)

激活函数大汇总&#xff08;一&#xff09;&#xff08;Sigmoid & Tanh & ReLU & Leaky ReLU & PReLU附代码和详细公式&#xff09; 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智…

【C++】string学习 — 手搓string类项目

手搓string项目 1 string类介绍2 功能描述3 代码实现3.0 基础框架3.1 构造函数 和 析构函数3.2 流操作符重载 和 尾插扩容3.4 运算符重载3.5 实用功能3.6 迭代器模拟 总结这里提供一下源代码&#xff1a;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;…

mybatis缓存(学习笔记17)

1、什么是缓存&#xff1a;存在内存中的临时数据 将用户经常查询的数据放在缓存&#xff08;内存&#xff09;中&#xff0c;用户去查询数据就不用从磁盘&#xff08;关系数据库数据文件&#xff09;查询&#xff0c;从缓存中查询&#xff0c;从而提高查询效率&#xff0c;解决…

分布式与集群,二者区别是什么?

&#x1f413;分布式 分布式系统是由多个独立的计算机节点组成的系统&#xff0c;这些节点通过网络协作完成任务。每个节点都有自己的独立计算能力和存储能力&#xff0c;可以独立运行。分布式系统的目标是提高系统的可靠性、可扩展性和性能。 分布式服务包含的技术和理论 负…

EPSON X1G004481000300 SG7050CAN晶体振荡器

在射频拉远单元&#xff08;RRU&#xff09;设计中,一般需要用到以太网PHY芯片发送和接收以太网的数据帧,与主控芯片进行网络数据交互,为保证以太网PHY芯片正常工作,一般需要选择25MHz标准频率的有源晶振用于以太网PHY芯片时钟设计,为保证射频拉远单元&#xff08;RRU&#xff…

面向对象(下)

目录 01、static1.1、static的使用1.2、static应用举例1.3、单例(Singleton)设计模式 02、main方法的语法03、类的成员之四&#xff1a;代码块04、关键字&#xff1a;final05、抽象类与抽象方法5.1、多态的应用&#xff1a;模板方法设计模式(TemplateMethod) 06、接口(interfac…

《Learning Hierarchical Modular Networks for Video Captioning》论文笔记

论文信息 原文链接&#xff1a; Learning Hierarchical Modular Networks for Video Captioning | IEEE Journals & Magazine | IEEE Xplore 原文代码 GitHub - MarcusNerva/HMN: [CVPR2022] Official code for Hierarchical Modular Network for Video Captioning. Ou…

数字多空策略(实盘+回测+数据)

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

AI智能分析网关V4将HTTP消息推送至安防监控视频汇聚EasyCVR平台的操作步骤

TSINGSEE青犀视频智能分析网关V4内置了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;上报识别结果&#xff0c;并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入&#xff0c;可兼容市面上常…

熔断降级的方案实现

熔断降级的方案实现 Spring Cloud Netflix Hystrix 提供线程隔离、服务降级、请求缓存、请求合并等功能可与Spring Cloud其他组件无缝集成官方已宣布停止维护&#xff0c;推荐使用Resilience4j代替 Spring Cloud Resilience4j 轻量级服务熔断库 提供类似于Hystrix的功能 具有更…