【ELK】节省存储 之 压缩存储方式调整
目录
集群版本: 7.17.6
解释几个概念:
段(Segment)
合并(Merge)
索引设置:
压缩方式(index.codec):
测试设置前提条件
对比 在创建的时候指定压缩类型(index.codec)
对比 在写入完成后的索引更改压缩类型
线上索引更改压缩方式前后对比
测试总结
API调用
查看状态
查看索引配置
创建索引配置
更新索引配置
强制合并索引
为什么默认启用 LZ4 压缩,而不是best_compression
通过共享存储的方式节省存储的成本
集群版本: 7.17.6
解释几个概念:
段(Segment)
可以理解为 是ES 索引存储数据的最小单位,索引 --> 分片--> 段,Elasticsearch 中的分片是 Lucene 索引,而 Lucene 索引又被分解为多个段。段是索引中的内部存储元素,用于存储索引数据,
合并(Merge)
主要指段合并,段是不可变的。较小的段会定期合并到较大的段中,以控制索引大小并清除删除的内容。段合并的触发一般会:
- 在索引的数据调整(写入/删除)操作
- 在后台定期触发,为了减少开销,不需要用户干预,比如说ILM 、refresh_interval
- 用户触发调整:强制合并(常用)、减少索引分片 和 分割索引分片
强制合并的几点建议:
不要并行过多请值合并,Merge是一项资源密集型操作。
不要合并出超过5G的段,影响性能
不要在hot节点上执行,影响写入速度,在cold节点 或者只读索引
索引设置:
配置分为为静态(static)和 动态(dynamic)
- static:只能在索引创建时 或 在关闭的索引上设置。
- dynamic:可以使用API 实时进行更改 。
7.17 版本中:关闭的索引更改其静态或者动态配置时可能会导致索引错误,只能不删除并重新创建索引。
8.17 版本中:索引reopen 设置true
(默认为false
)可以修改静态配置。
index.number_of_shards 此设置只能在创建索引时设置。无法在已关闭的索引上更改。8.17 版本 也是一样
压缩方式(index.codec):
Thedefault
value compresses stored data with LZ4 compression, but this can be set tobest_compression
which uses DEFLATE for a higher compression ratio, at the expense of slower stored fields performance. If you are updating the compression type, the new one will be applied after segments are merged. Segment merging can be forced using force merge.
- 存储数据压缩方式 ,属于静态(static)配置
- 存储数据默认是 LZ4压缩,
best_compression
压缩率比LZ4 要好(8.17 版本中最多可降低约 28% 的存储使用量), - 代价是读写性能会降低,优先 选择cold 状态的 只读索引测试
- 在新建索引和段合并过程中更改压缩类型
测试设置前提条件
- es-lucene本身的压缩率受index字段的影响,暂不讨论,只讨论
best_compression
、default
两种方式的压缩后存储存在多大的差别。 - 计算存储:是计算的
store.size
大小, 包含副本索引,测试中所有的副本(number_of_replicas)都设置为1。 max_num_segments=1
不是整个索引的segments.count
等于1 ,而是每个分片的segments.count
等于1。所以测试中索引_forcemerge后segments.count
等于4 是正常的。- 在已有索引情况下更改压缩类型,如果索引比较大,就不适合使用
max_num_segments=1
强制合并成一个大的段,这样就有可能涉及到某些比较大的段不再触发段合并。所以可能存在一个索引存在两种压缩方式
对比 在创建的时候指定压缩类型(index.codec)
best_compression
、default
不存在指定lz4的选项 "unknown value for [index.codec] must be one of [default, best_compression] but was: lz4"
#创建my-index-00【1-4】四个索引,分别10000条写入相同的数据。
my-index-001,my-index-004 best_compression
my-index-002,my-index-003 default#写入前GET /_cat/indices/my-index-*?v&h=index,pri,rep,docs.count,store.size,pri.store.size,segments.count&bytes=b
index pri rep docs.count store.size pri.store.size segments.count
my-index-001 2 1 0 904b 452b 0
my-index-002 2 1 0 904b 452b 0
my-index-003 2 1 0 904b 452b 0
my-index-004 2 1 0 904b 452b 0写入后 best_compression方式存储使用为default方式的 91% 左右。
index pri rep docs.count store.size pri.store.size segments.count
my-index-001 2 1 100000 6328997 3118873 24
my-index-002 2 1 100000 6954883 3464912 28
my-index-003 2 1 100000 6934591 3433258 28
my-index-004 2 1 100000 6328400 3112546 26#进行强制合并 max_num_segments=1 后, best_compression方式存储使用为default方式的 88% 左右。
index pri rep docs.count store.size pri.store.size segments.count
my-index-001 2 1 100000 6058071 3015574 4
my-index-002 2 1 100000 6817828 3408515 4
my-index-003 2 1 100000 6810228 3402639 4
my-index-004 2 1 100000 6036888 3004366 4
结论:在创建索引的时候就指定best_compression
压缩方式 只占用default
方式的 91% 左右的存储空间,通过段合并存储空节省能提升到12% 左右
对比 在写入完成后的索引更改压缩类型
问题:
an't update non dynamic settings [[index.codec]] for open indices [[my-index-002/WYo5u-cITcuOWQH3P3RQ6A]]
需要对先进行关闭处理,配置完成后打开,8.17的reopen策略可以自动帮助用户关闭切重新打开,7.17没有此功能。
#创建my-index-00【5-6】四个索引,分别10000条写入相同的数据。ps:my-index-*6个索引的数据都是重复且相同
my-index-002,my-index-003 index.codec:default写入后存储情况
index pri rep docs.count store.size pri.store.size segments.count
my-index-001 2 1 100000 6058071 3015574 4
my-index-002 2 1 100000 6817828 3408515 4
my-index-003 2 1 100000 6810228 3402639 4
my-index-004 2 1 100000 6036888 3004366 4
my-index-005 2 1 100000 6823873 3430651 14
my-index-006 2 1 100000 6836865 3434722 16关闭索引
POST /my-index-005,my-index-006/_close?wait_for_active_shards=0
#更改压缩类型
PUT /my-index-005,my-index-006/_settings
{"index.codec" : "best_compression"
}
#重新打开
POST /my-index-005,my-index-006/_open#进行强制合并 max_num_segments=1 后, 与创建是的压缩方式就指定为best_compression 空间存储使用基本保持一致。
index pri rep docs.count store.size pri.store.size segments.count
my-index-001 2 1 100000 6058071 3015574 4
my-index-002 2 1 100000 6817828 3408515 4
my-index-003 2 1 100000 6810228 3402639 4
my-index-004 2 1 100000 6036888 3004366 4
my-index-005 2 1 100000 6012083 3007382 4
my-index-006 2 1 100000 6001636 3001571 4
结论:在写入完成后的索引更改压缩方式与创建是的压缩方式就指定为best_compression
空间存储使用基本保持一致,基本都节省 10% 左右的存储空间
线上索引更改压缩方式前后对比
更改前index.codec:default
index pri rep docs.count store.size pri.store.size segments.count
applog-2025.02.15 1 1 10514847 6809313634 3404656817 58
applog-2025.02.16 1 1 9974249 6491719356 3245859678 46
applog-2025.02.23 1 1 11139687 7139016590 3569508295 56
applog-2025.02.22 1 1 10958802 7089500416 3544750208 52#下面两个所以通过重启的方式更改压缩方式
applog-2025.02.16,applog-2025.02.23 index.codec:best_compression#进行强制合并 max_num_segments=1 后
index pri rep docs.count store.size pri.store.size segments.count
applog-2025.02.15 1 1 10514847 6776067954 3388033977 4
applog-2025.02.16 1 1 9974249 4963880914 2481940457 4
applog-2025.02.23 1 1 11139687 5358329648 2679164824 4
applog-2025.02.22 1 1 10958802 7056313752 3528156876 4
结论:更改best_compression
压缩方式与强制合并后,applog-2025.02.16,applog-2025.02.23
两个索引 存储空间节省可以达到24%~25%。
测试总结
- 关于读性能: 多次查询测试,性能基本不受best_compression压缩方式的影响。
- 关于写性能: 集群写入压力较小,没有明显差别。生产环境建议还是需要使用只读索引。
- 关于降存储使用量:可降低约 25%~10% 的存储使用量。
- 关于操作:将index.codec 配置到template模版中是比较方便的,修改已完成写入操作的索引需要额外的管理操作,7.17版本涉及到手动重启
API调用
查看状态
GET /_cat/indices/my-index?v #查看索引信息
GET /_cat/shards/my-index?v #查看分片信息
GET /_cat/segments/my-index?v #查看段信息
GET /_cat/indices/my-index-*?v&h=index,pri,rep,docs.count,store.size,pri.store.size,segments.count #查看索引/段/分片信息
查看索引配置
#https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-get-settings.htmlGET my-index-*/_settings?pretty&include_defaults&flat_settings=true..."index.codec" : "default",...
创建索引配置
PUT /my-index-000001
{"settings": {"index": {"number_of_shards": 2, "number_of_replicas": 1,"codec": "best_compression", "refresh_interval" : "2s"}}
}#删除索引
DELETE my-index-000001
更新索引配置
#https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-update-settings.html#更新动态配置不需要关闭索引#更新静态配置的前提条件 该索引必须是只读的
POST /my-index-000001/_close?wait_for_active_shards=0PUT /my-index-000001/_settings
{"index.codec" : "best_compression"
}POST /my-index-000001/_open
强制合并索引
#https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-forcemerge.htmlPOST /my-index-000001/_forcemerge?max_num_segments=1
为什么默认启用 LZ4
压缩,而不是best_compression
在许多情况下,人们会很乐意放弃压缩所需的额外 CPU 来换取磁盘空间 Part 2.0: The true story behind Elasticsearch storage requirements
通过共享存储的方式节省存储的成本
金山云:基于 JuiceFS 的 Elasticsearch 温冷热数据管理实践
相关文章:
【ELK】节省存储 之 压缩存储方式调整
目录 集群版本: 7.17.6 解释几个概念: 段(Segment) 合并(Merge) 索引设置: 压缩方式(index.codec): 测试设置前提条件 对比 在创建的时候指定压缩类型(index.codec) 对比 在…...
MATLAB 控制系统设计与仿真 - 26
状态空间控制系统概述 状态空间描述 现代控制理论是建立在状态空间基础上的控制系统分析和设计理论,它用状态变量来刻画系统的内部特征,用‘一节微分方程组’来描述系统的动态特性。系统的状态空间模型描述了系统输入/输出与内部状态之间的关系&#x…...
下载与快速上手 NVM:Node.js 版本管理工具
一、准备工作:卸载旧版 Node.js 重要提示:在安装 NVM 前,请先彻底删除已安装的 Node.js,避免路径冲突: 检查安装路径 bash where node常见路径: C:\Program Files\nodejs\C:\Users\用户名\AppData\Local\n…...
SQL Server Management Studio(SSMS)安装教程
目录 一、SSMS的下载 二、SSMS 的安装 三、连接服务器 四、卸载 SSMS 一、SSMS的下载 1.进入 SQL Server Management Studio 官方下载页面:SQL Server Management Studio点击进入下载页面 2.点击链接开始下载,浏览器右上角会显示下载进度;…...
运维知识:Linux下Vim编辑器使用详解
运维知识:Linux下Vim编辑器使用详解 引言 在Linux的世界里,Vim不仅仅是一个文本编辑器,更是程序员的「瑞士军刀」。从1991年Bram Moolenaar发布第一个版本至今,Vim以其高效的模态编辑、高度可定制性和跨平台兼容性,成…...
复习HCIA
一、网络基础概念 1. OSI七层模型与TCP/IP四层模型 OSI七层模型详解: 物理层(Physical Layer): 功能:传输原始比特流(0/1),定义电气、机械特性(如电压、线缆类型&#…...
在QT中进行控件提升操作
目录 一、概述 二、功能需求 三、提升操作 1)拖入标准控件 2)自定义类 3)提升控件 一、概述 QT中提供的标准控件能够满足我们大多数情况下的功能需求,但是在一些特殊应用场合,我们可能需要对控件的功能进行扩展&am…...
Linux下JDK1.8安装配置
目录 1.下载完上传到Linux系统中 2.解压JDK压缩包 3.配置JDK环境变量 4.设置环境变量生效 5.查看环境变量是否配置成功 官网下载地址:Java Downloads | Oracle 1.下载完上传到Linux系统中 2.解压JDK压缩包 tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local (解压…...
JVM 知识点梳理
JDK 、JRE、JVM JDK( Java Development Kit ) Java开发工具包 JRE 开发命令工具(运行java.exe、编译javac.exe、javaw.exe) JRE( Java Runtime Environment )Java运行环境 JVM Java核心类库(l…...
求职招聘网站源码,找工作招工系统,支持H5和各种小程序
招聘找活招工平台系统源码 招聘求职找工作软件 发布信息积分充值招聘系统,里面带纤细教程 功能介绍: 招工小程序主要针对工地招工工人找工作,工地可以发布招工信息,工人可以发布找活信息,招工信息可以置顶,置顶需要积分,积分可以通过签到、分享邀请好友、充值获取,后…...
拓展 Coco AI 功能 - 智能检索 Hexo 博客
在之前的文章中,我们成功让 Coco AI 检索 Hugo 博客,这对于博客作者来说是一大福音。然而,从 Hexo 迁移到 Hugo 的成本不容小觑,毕竟大多数开发者对 Node.js 更熟悉,而 Golang 相对陌生。那么,既然 Coco AI…...
深入解析 Java Stream API:从 List 到 Map 的优雅转换!!!
🚀 深入解析 Java Stream API:从 List 到 Map 的优雅转换 🔧 大家好!👋 今天我们来聊聊 Java 8 中一个非常常见的操作:使用 Stream API 将 List 转换为 Map。🎉 具体来说,我们将深入…...
【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现全局状态管理
前言 在现代应用程序开发中,状态管理是构建复杂且可维护应用的关键。随着应用程序规模的增长,组件之间共享和同步状态变得越来越具有挑战性。如果处理不当,状态管理可能会导致代码混乱、难以调试,并最终影响应用程序的性能和可扩…...
金桔网桥路由版3
上一集我们讲到了二层云交换机,我把在云上搭建的桥接模式的VPN服务器称为二层云交换机。 那么现在我家到办公室的网络结构就变成这样的, 这样的好处就是我的电视盒子通过网线看电视,走的是OpenWrt路由器通过二层云交换机由办公室的OpenWrt路由…...
前沿分享|处理LLM幻觉问题-CoN|笔记链:增强检索增强语言模型的鲁棒性
检索增强语言模型(RALMs)在大型语言模型的能力方面取得了重大进步,特别是在减少事实幻觉方面,这得益于外部知识来源的利用。 然而,检索到的信息的可靠性并不总是有保证。 检索到无关数据可能导致误导性回答ÿ…...
OpenWrt开发第4篇:设置开发板的IP-基于Raspberry Pi 4B开发板
文/指尖动听知识库-谷谷 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:Openwrt开发-基于Raspberry Pi 4B开发板 有时候开发过程中经常会使用其他路由器,很多时候固件烧上去之后板子IP基本都是192.168.1.1,这时就需要修改板子的IP,下面介绍一下板…...
浅谈跨平台框架的演变(H5混合开发->RN->Flutter)
引言 这里分为四个阶段: 第一阶段 : 原生开发 第二阶段 : H5混合开发 第三阶段: 跨平台RN 第四阶段: 跨平台Flutter 正文 第一阶段: 原生开发 开发成本比较大 : 需要Android 和ios 开发两…...
Android数据加密方案
Android数据加密方案 前言 在移动应用开发中,数据安全是一个永恒的话题。Android应用中往往需要存储和传输敏感数据,如用户密码、支付信息、个人隐私等。本文将深入介绍Android平台上的数据加密方案,帮助开发者构建安全可靠的数据保护机制。 基础知识 1. 加密算法分类 …...
深入理解traceroute命令及其原理
traceroute 是一个网络诊断工具(Windows上叫tracert),用于显示数据包从本地主机到远程主机经过的路由(跳数)。它可以帮助您了解数据包在网络中的传输路径,以及每跳的延迟情况。这对于网络故障排除、分析网络…...
PostgreSQL_安装
目录 前置: 安装过程: 1 下载软件 2 创建安装文件夹和放置数据的文件夹 3 双击安装 4 连接服务 前置: PostgreSQL 15 windows 10 专业版 安装过程: 1 下载软件 PostgreSQL: Downloads 大小326MB 2 创建安装文件夹和放…...
leetcode684.冗余连接
依旧是并查集问题,这道题目正好给定顶点数目和边的数目相等,只要找到其中的一条边删除将图转化为树就行,而这个多余的边起始就是并查集的添加过程中二者是同一个根(两个顶点早已经联通了),这时直接返回这条…...
Python学习第二十一天
爬虫 概念 网络爬虫(Web Crawler),也称为网络蜘蛛(Web Spider),是一种自动化程序,用于从互联网上抓取数据。爬虫通过模拟浏览器行为,访问目标网站并提取所需的信息,然后…...
matlab近似计算联合密度分布
在 Matlab 中,当A和B是两个序列数据时,可以通过以下步骤来近似求出A大于B的概率分布:数据准备:确保序列A和B具有相同的长度。如果长度不同,需要进行相应的处理(例如截取或插值)。计算A大于B的逻…...
OpenCV图像处理基础2
接着上一篇OpenCV图像处理基础1继续说。 图像阈值处理 1、简单阈值处理 ret, thresholded_image = cv2.threshold(image, thresh, maxval, cv2.THRESH_BINARY)thresh 是阈值,maxval 是最大值。 2、自适应阈值处理 thresholded_image = cv2.adaptiveThreshold(image, maxv…...
Prometheus Exporter系列-Mysql_Exporter一键部署
新项目旧项目都需要给研发配置mysql监控,这里mysql监控对应aws 阿里云 腾讯云 华为云的云mysql产品或开源自建mysql。 exporter安装虽然简单,经常手动操作不免让人心烦,一键完成省去繁琐的常规操作。 配置信息对的情况下测试多次都可以正常安…...
A l密码学(Deepseek)
我:qwertyuiopasdfghjklzxcvbnm deepseek:深度思考中. Okay, lets see. The user input is "qwertyuiopasdfghjklzxcvbnm". At first glance, it looks like a jumbled sequence of letters with some spaces or maybe other characters in …...
「Java-API帮助文档」
「Java-API帮助文档」,链接:https://pan.quark.cn/s/d7ced3b48f33 java.applet提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。java.awt包含用于创建用户界面和绘制图形图像的所有类。java.awt.color提供用于颜色空间的类。java…...
卷积神经网络 - 梯度和反向传播算法
在卷积网络中,参数为卷积核中权重以及偏置。和全连接前馈网络类似,卷积网络也可以通过误差反向传播算法来进行参数学习。本文我们从数学角度,来学习卷积神经网络梯度的推导和其反向传播算法的原理。 一、梯度:损失函数 L 关于第 …...
ripro 主题激活 问题写入授权Token失败,可能无文件写入权限
ripro 主题激活 问题 写入授权Token失败,可能无文件写入权限 找到主题下面的functions.php文件,给其他写入权限。就好了。...
MySQL 中,查看执行频次、慢查询日志、SHOW PROFILE和 EXPLAIN性能分析和优化
在 MySQL 中,查看执行频次、慢查询日志、SHOW PROFILE 和 EXPLAIN 是性能分析和优化的核心工具。以下是它们的详细用法和高级语法: 一、查看 SQL 执行频次 通过 SHOW STATUS 命令可以查看 SQL 的执行频次,帮助定位高频查询。 1. 查看全局 SQL 执行频次 SHOW GLOBAL STATU…...
Springdoc 全部注解一文解释清楚
文章目录 **1. 核心注解****Tag-Class类上** **2. 方法级别注解****Operation-方法描述****ApiResponse 和 ApiResponses-方法的返回结果** **3. 参数相关注解****Parameter-方法参数****Parameters方法参数(单个)** **4. 实体模型相关注解****Schema-描…...
1.angular介绍
初級使用视频添加链接描述 angular工具 angular.module(‘名’, [依赖模块]) 模块 angular.bind(*) : 修改this指向 angualr.copy() // a angular.copy(a, b) —a完全覆盖了b,c就是a angular.extend(a, b) a里面集成了b属性 angular.isArray angular.isDate angular.isDefin…...
StarRocks vs Doris:深度剖析与选型分析
StarRocks vs Doris:深度剖析与选型分析 在大数据技术蓬勃发展的当下,企业对于高效的数据分析工具的需求日益增长。StarRocks 和 Doris 作为两款优秀的 MPP(大规模并行处理)数据库,在数据仓库和数据分析领域备受关注。…...
Ambari、Bigtop源码编译最新支持情况汇总
以下是目前的版本情况 支持了绝大部分的组件编译及安装 版本组件名称组件版本env 版本v1.0.5Ozone1.4.11.0.5Impala4.4.11.0.5Nightingale7.7.21.0.5Categraf0.4.11.0.5VictoriaMetrics1.109.11.0.5Cloudbeaver24.3.31.0.5Celeborn0.5.31.0.5v1.0.4Doris2.1.71.0.4v1.0.3Phoen…...
【sql靶场】第23、25,25a关过滤绕过保姆级教程
目录 【sql靶场】第23、25-28关过滤绕过保姆级教程 第二十三关 第二十五关 1.爆出数据库 2.爆出表名 3.爆出字段 4.爆出账号密码 【sql靶场】第23、25,25a关过滤绕过保姆级教程 第二十三关 从本关开始又是get传参,并且还有了对某些字符或字段的过…...
coding ability 展开第五幕(二分查找算法)超详细!!!!
. . 文章目录 前言二分查找搜索插入的位置思路 x的平方根思路 山脉数组的峰顶索引思路 寻找旋转排序数组中的最小值思路 总结 前言 本专栏上篇博客已经把滑动指针收尾啦 现在还是想到核心——一段连续的区间,有时候加上哈希表用起来很爽 今天我们来学习新的算法知识…...
存算分离是否真的有必要?从架构之争到 Doris 实战解析
引言:一场关于 “存与算” 的N年辩论 在数据库与大数据领域,“存算一体” 与 “存算分离” 的架构之争从未停歇。有人质疑:“存算分离真的有必要吗?本地盘性能难道不够?” 答案并非非黑即白 —— 技术选型的关键&…...
卸载conda,poetry常用命令,vscode使用poetry虚拟环境
~/miniconda3/bin/conda init bash ~/miniconda3/bin/conda init zsh conda info 查看当前环境的配置信息 conda install package-name conda install package-nameversion 安装依赖包 conda uninstall package-nameversion 卸载依赖包 conda update package-name 更新依赖包…...
【总结】Pytest vs Behave,BDD 测试框架哪家强?
引言 在测试驱动开发(TDD)和行为驱动开发(BDD)流行的今天,Pytest和 Behave 成为了 Python 生态中最常见的自动化测试框架。那么,究竟该选择哪一个?它们各自有哪些优缺点?本篇文章将为你全面解析! 1. 什么是 Pytest&a…...
INT202 Complexity of Algroithms 算法的复杂度 Pt.2 Search Algorithm 搜索算法
文章目录 1.树的数据结构1.1 有序数据(Ordered Data)1.1.1 有序字典(Ordered Dictonary)1.1.1.1 排序表(Sorted Tables) 1.2 二分查找(Binary Search)1.2.1 二分查找的时间复杂度 1.3 二叉搜索树࿰…...
springmvc中使用interceptor拦截
HandlerInterceptor 是Spring MVC中用于在请求处理之前、之后以及完成之后执行逻辑的接口。它与Servlet的Filter类似,但更加灵活,因为它可以访问Spring的上下文和模型数据。HandlerInterceptor 常用于日志记录、权限验证、性能监控等场景。 ### **1. 创…...
C++编译汇编八股总结
汇编的四个阶段? 预编译(预处理): 预编译是源代码在编译之前进行的一些处理,主要包括宏定义展开、条件编译指令处理和头文件展开等。 编译: 编译器根据源代码的语法和语义规则,将源代码进行词法…...
基于ArcGIS和ETOPO-2022 DEM数据分层绘制全球海陆分布
第〇部分 前言 一幅带有地理空间参考、且包含海陆分布的DEM图像在研究区的绘制中非常常见,本文将实现以下图像的绘制 关键步骤: (1)NOAA-NCEI官方下载最新的ETOPO-2022 DEM数据 (2)在ArcGIS(…...
【LangChain入门 4 Prompts组件】提示词追加示例 FewShotPromptTemplate和示例选择器ExampleSelector
文章目录 一、提示词追加示例 FewShotPromptTemplate二、使用示例选择器 example_selector三、关键类介绍3.1 PromptTemplate3.2 FewShotPromptTemplate3.3 SemanticSimilarityExampleSelector 提示词中包含交互样本的作用是为了帮助模型更好地理解用户的意图,从而更…...
Android Compose 切换按钮深度剖析:从源码到实践(六)
Android Compose 切换按钮深度剖析:从源码到实践 一、引言 在现代 Android 应用开发中,用户交互体验至关重要。切换按钮(Toggle Button)作为一种常见的交互组件,允许用户在两种状态之间进行切换,例如开 /…...
挖矿病毒应急响应处置手册
挖矿病毒应急响应处置手册 文章目录 挖矿病毒应急响应处置手册0x00 概述0x01 了解基本情况1.1 如何发现1.1.1 异常外联1.1.2 主机异常1.2 事件的时间节点1.3 临时处置情况1.4 网络拓扑情况0x02 判断是否属于挖矿2.1 属于挖矿2.1.1 根据告警和流量信息初步判断挖矿类型2.1.2 win…...
VSCode - 查看 PDF 文件
VSCode 原生并不支持 查看 PDF 文件,需要额外安装插件。 这里我使用 vscode-pdf,效果还不错,有需要的可以搜索安装。 效果: 2025-03-18(二)...
vue3:八、登录界面实现-忘记密码
该文章实现登录界面的忘记密码功能,点击忘记密码文本,打开dialog对话框 一、页面效果 加入忘记密码,在记住密码的同一行中,实现flex-between 二、对话框实现 1、新建组件页面 2、引入dialog组件到组件页面 参考路径 Dialog 对…...
Python Django入门(创建其他网页)
在本章中,你将学习如何使用 Django(http://djangoproject.com/ )来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知识。 我们将为这…...
Windows安装MySQL5.7.26教程图解
Windows安装MySQL5.7.26教程图解 零、准备工作 下载MySQL软件包 ①、官网下载:程序员 常用 软件汇总 - 超人那个超~ - 博客园 ②、百度云下载:链接:百度网盘 请输入提取码 提取码:chao 一、彻底删除MySQL 从电脑里卸载旧的MYSQL数据库服务时,首先先在WINDOWS服务里…...