使用SQL查询ES数据

使用SQL查询ES数据

  • 32 进阶:使用SQL查询ES数据
    • 环境准备
      • 利用脚本导入测试数据
    • SQL学习
      • 基本查询
      • 排序查询
      • 过滤查询
      • 范围查询
      • 分组查询(group)
      • 分组过滤查询(group+having)
      • 聚合函数统计
      • limit查询
      • 分页查询

32 进阶:使用SQL查询ES数据

环境准备

需要首先安装ES8.x 和 Kibana8.x,自行安装

利用脚本导入测试数据

这里使用的是python脚本,直接运行即可
Elasticsearch([“https://elastic:=k8dCIlKnwM=mSXHVGO8@192.168.64.7:9200”], verify_certs=False)
这一步部分填写你自己的信息即可

from elasticsearch import Elasticsearch
from faker import Faker
import ssl
import random
es = Elasticsearch(["https://elastic:=k8dCIlKnwM=mSXHVGO8@192.168.64.7:9200"], verify_certs=False)
# 连接到 Elasticsearch 实例# 创建一个 Faker 实例,用于生成有意义的假数据
fake = Faker()# 创建索引(类似于数据库中的表)
index_name = 'test_sql_query4'
es.indices.create(index=index_name, ignore=400)# 插入 2000 条有意义的数据
for i in range(2000):doc = {'name': random.choice(['秦', '楚', '齐', '燕', '韩', '魏', '赵']),'age': fake.random_int(min=18, max=99, step=1),'city': fake.city(),'occupation': fake.job(),'salary': fake.random_int(min=30000, max=100000, step=1000),'timestamp': fake.date_time_this_decade().strftime("%Y-%m-%d")}es.index(index=index_name, body=doc)print("数据插入完成。")

如何按照上面的步骤,安装成功后就可以学习今天的内容了

SQL学习

# 解析SQL
POST /_sql/translate
{"query": """SELECT * FROM "test_sql_query4" order by age  LIMIT 10"""
}

基本查询

POST /_sql?format=txt
{"query": """SELECT * FROM "test_sql_query4""""
}

排序查询

POST /_sql?format=txt
{"query": """SELECT * FROM "test_sql_query4" order by age desc"""
}

过滤查询

POST /_sql?format=txt
{"query": """SELECT * FROM "test_sql_query4" where name='秦' order by age desc"""
}POST /_sql?format=txt
{"query": """SELECT * FROM "test_sql_query4" where name in ('秦','赵') order by age desc"""
}

范围查询

POST /_sql?format=txt
{"query": """SELECT * FROM "test_sql_query4" where age<50 and age>30  order by age desc"""
}

分组查询(group)

POST /_sql?format=txt
{"query": """SELECT name,count(1) FROM "test_sql_query4" group by name"""
}

分组过滤查询(group+having)

POST /_sql?format=txt
{"query": """SELECT name,count(1) FROM "test_sql_query4" group by name having count(1)>300"""
}

聚合函数统计

POST /_sql?format=txt
{"query": """SELECT count(name),max(age),min(age),sum(salary) FROM "test_sql_query4""""
}

limit查询

POST /_sql?format=txt
{"query": """SELECT * FROM "test_sql_query4" order by age limit 10"""
}

分页查询

POST /_sql?format=json
{"query": """SELECT * FROM "test_sql_query4" order by age""","fetch_size":2
}
POST /_sql?format=json
{"cursor": "从前面一次查询中获得"
}

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

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

相关文章

禁止页面滚动的方法-微信小程序

在微信小程序中&#xff0c;有几种方法可以禁止页面滚动&#xff1a; 一、通过页面配置禁止滚动 在页面的JSON配置文件中设置&#xff0c;此方法完全禁止页面的滚动行为&#xff1a; {"disableScroll": true }二、通过 CSS 样式禁止滚动 在页面的WXSS文件中添加&…

用户画像(https://github.com/memodb-io/memobase)应用

1.下载项目的源代码,我们要先启动后端,用docker启动 cd src/server cp .env.example .env cp ./api/config.yaml.example ./api/config.yaml 这里我的配置内容如下config.yaml(因为我是调用的符合openai格式的大模型,所以我没改,如果要是别的大模型的话,需要自己再做兼容…

微信小程序生成某个具体页面的二维码

微信小程序&#xff0c;如果要生成某个具体页面&#xff0c;而非首页的二维码&#xff0c;体验和正式的生成方法如下&#xff1a; 1、体验版二维码&#xff1a; 管理---版本管理---修改页面路径&#xff0c;输入具体页面的路径以及参数&#xff0c;生成的是二维码 2、正式小程…

【今日三题】小乐乐改数字 (模拟) / 十字爆破 (预处理+模拟) / 比那名居的桃子 (滑窗 / 前缀和)

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;每日两三题 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 小乐乐改数字 (模拟)十字爆破 (预处理模拟&#xff09;比那名居的桃子 (滑窗 / 前缀和) 小乐乐改数字 (模拟) 小乐乐改数字…

四旋翼无人机手动模式

无人机的手动模式&#xff08;Manual Mode&#xff09;是指飞手完全通过遥控器手动控制无人机的飞行姿态、高度、方向和速度&#xff0c;‌无需依赖自动稳定系统或辅助功能‌&#xff08;如GPS定位、气压计定高、视觉避障等&#xff09;。这种模式赋予操作者最大的操控自由度&a…

C++高精度算法(加、减、乘)

首先声明&#xff0c;没有除法是因为我不会&#xff08;手动狗头_doge&#xff09; 简介 顾名思义&#xff0c;高精度算法是用来算一些超级大的数&#xff0c;比如长到 longlong 都存不下的那种&#xff0c;还有就是小数点后好多位&#xff0c;double都存不下的那种&#xff…

思科交换机配置

以下是交换机配置的详细步骤指南&#xff0c;适用于Cisco交换机&#xff0c;其他品牌需调整命令&#xff1a; 1. 初始连接与基本配置 连接方式&#xff1a;使用Console线连接交换机&#xff0c;通过终端软件&#xff08;如PuTTY&#xff09;登录。波特率&#xff1a;9600&…

数据质量问题中,数据及时性怎么保证?如何有深度体系化回答!

数据治理&#xff0c;数据质量这快是中大厂&#xff0c;高阶大数据开发面试必备技能&#xff0c;企业基于大数据底座去做数仓&#xff0c;那么首先需要保障的就是数据质量。 数据质量的重要性在现代企业中变得越发突出。以下是数据质量的几个关键方面&#xff0c;说明其对企业…

【学习笔记】CPU 的“超线程”是什么?

1. 什么是超线程&#xff1f; 超线程&#xff08;Hyper-Threading&#xff09;是Intel的技术&#xff0c;让一个物理CPU核心模拟出两个逻辑核心。 效果&#xff1a;4核CPU在系统中显示为8线程。 本质&#xff1a;通过复用空闲的硬件单元&#xff08;如ALU、FPU&#xff09;&a…

闭包的理解

一、闭包的概念 当通过调用外部函数返回的内部函数后&#xff0c;即使外部函数已经执行结束了&#xff0c;但是被内部函数引用的外部函数的变量依然会保存在内存中&#xff0c;我们把引用了其他函数作用域变量的函数和这些被引用变量的集合&#xff0c;称为闭包&#xff08;Clo…

从小米汽车事故反思 LabVIEW 开发

近期&#xff0c;小米汽车的一起严重事故引发了社会各界的广泛关注。这起事故不仅让我们对智能汽车的安全性产生了深深的思考&#xff0c;也为 LabVIEW 开发领域带来了诸多值得汲取的知识与领悟。 在智能汽车领域&#xff0c;尤其是涉及到智能驾驶辅助系统时&#xff0c;安全是…

项目进度延误的十大原因及应对方案

项目进度延误主要源于以下十大原因&#xff1a;目标不明确、需求频繁变更、资源配置不足或不合理、沟通不畅、风险管理不足、缺乏有效的项目监控、技术难题未及时解决、团队协作效率低下、决策链过长、外部因素影响。其中&#xff0c;需求频繁变更是导致延误的关键因素之一&…

AI 赋能 DBA:如何用 DeepSeek 等大模型简化数据库管理工作

AI 赋能 DBA:如何用 DeepSeek 等大模型简化数据库管理工作 摘要: 数据库管理员(DBA)的工作涉及 SQL 优化、故障排查、性能监控等复杂任务。而 DeepSeek、ChatGPT 等大模型可以大幅减少重复劳动,提高 DBA 的工作效率。本文将结合真实案例,介绍如何利用 AI 优化 DBA 工作流…

vxe-table4.6 + vue3.2 + ant-design-vue 3.x 实现对列的显示、隐藏、排序

概要 vxe-table中的vxe-toolbar没有拖拽功能&#xff0c;故自己实现 源码 <template><a-popover v-model:visible"open" placement"bottomRight" trigger"click"><template #content><div class"content">…

c++基础知识二

1.面向对象 1.1 定义 面向对象编程是一种程序设计方法,它将数据和操作数据的方法封装在一起,形成类。类是一种用户自定义的数据类型,它包含了数据和对数据的操作方法。面向对象编程的特点包括封装、继承、多态 1.2 访问控制符 public 公有属性,方法。都可以访问 prot…

Netty之ChannelOutboundBuffer详解与实战

深入理解Netty的高低水位线机制及其应用实践 在高性能网络编程中&#xff0c;Netty作为一个广泛使用的异步事件驱动的Java框架&#xff0c;其高效的流量控制机制对于系统的稳定性和性能至关重要。本文将深入探讨Netty中的高低水位线&#xff08;High/Low Water Mark&#xff0…

(自用)WebSocket创建流程

在Spring Boot项目中新建WebSocket服务&#xff0c;可以按照以下详细步骤进行操作&#xff1a; 1.创建Spring Boot项目 可以通过Spring Initializr&#xff08;<>&#xff09;快速创建一个新的Spring Boot项目&#xff0c;添加Spring Web和Spring Boot DevTools依赖&…

JQuery初步学习

文章目录 一、前言二、概述2.1 介绍2.2 安装 三、语法3.1 文档就绪3.2 选择器 四、事件4.1 概述4.2 事件绑定/解绑4.3 一次性事件4.4 事件委托4.5 自定义事件 五、效果5.1 隐藏/显示5.2 淡入淡出5.3 滑动5.4 动画 六、链七、HTML7.1 内容/属性7.2 元素操作7.3 类属性7.4 样式属…

module错误集合

Library projects cannot set applicationId. applicationId is set to com.example.mylogin in default 在导入一个项目时&#xff0c;提示“Error:Library projects cannot set applicationId. applicationId is set to ‘com.xxx.yyy’ in default config.”&#xff0c;显…

Spring Cloud 通用相关组件详解

前言 Spring Cloud 是一个基于 Spring Boot 的微服务开发框架&#xff0c;它为开发者提供了一套完整的工具和组件&#xff0c;用于快速构建分布式系统中的常见模式&#xff08;如服务注册与发现、负载均衡、配置管理等&#xff09;。本文将详细介绍 Spring Cloud 的通用组件&a…