当前位置: 首页 > news >正文

ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合

文章目录

  • 一、分桶聚合
    • 1. 分桶聚合的核心逻辑与核心类型
    • 2. 分桶聚合的高级特性
  • 二、指标聚合
    • 1. 指标聚合的核心逻辑与基础类型
      • (1)基础统计指标(单值输出)
      • (2)复合统计指标(多值输出)
    • 2. 指标聚合与分桶聚合的嵌套使用
    • 3. 高级特性与灵活扩展
      • (1)地理空间指标
      • (2)脚本支持
      • (3)缺失值处理
  • 三、管道子聚合
    • 1. 桶排序(`bucket_sort`)
    • 2. 桶过滤(`bucket_selector`)
    • 3. 桶脚本(`bucket_script`)
    • 4. 累积聚合(如`cumulative_sum`)
    • 5. 滑动窗口聚合(如`moving_avg`)
    • 6. 桶统计聚合(如`avg_bucket`、`sum_bucket`)

在数据驱动决策的时代,聚合函数作为数据分析与数据挖掘的核心工具,正发挥着越来越重要的作用。它能够对大量数据进行高效处理,通过诸如求和、求平均、计数、最值计算等操作,帮助用户从复杂的数据集中提炼关键信息,快速把握数据的整体特征。

无论是企业分析业务指标、科研人员处理实验数据,还是普通用户进行日常数据整理,聚合函数都能凭借其强大的数据归纳能力,助力用户深入理解数据内涵、精准识别核心要素,并清晰洞察数据背后隐藏的趋势与规律,为后续的分析决策提供坚实的数据支撑。

掌握聚合函数的原理与应用,意味着在数据海洋中拥有了一把高效的 “指南针”,能够更从容地挖掘数据价值,释放数据潜力。

  • 应用场景:
聚合类型核心目标输入数据典型应用场景举例
分桶聚合划分分析单元(分组)原始文档数据按地区/时间/类别分组
指标聚合计算桶内统计值(量化)分桶后的文档数据计算各分组的销售额、用户数、均值
管道子聚合加工聚合结果(二次分析)分桶或指标的输出结果排序Top N、累积和、滑动平均、占比

一、分桶聚合

在Elasticsearch中,分桶聚合(Bucket Aggregations) 是数据分析的核心功能之一,其作用是将符合条件的文档按照特定规则“分组”(形成桶),以便对每个分组内的数据进行统计分析。这种机制类似于SQL中的GROUP BY,但支持更丰富的分组策略和复杂场景,尤其适合非结构化数据的大规模实时分析。

1. 分桶聚合的核心逻辑与核心类型

分桶聚合的本质是根据文档字段或表达式创建“桶”,每个桶包含一组满足条件的文档。核心操作包括:
单字段分桶:基于字段值分组,典型代表是terms聚合(适用于离散值,如标签、用户ID)。

{"aggs": {"user_groups": {"terms": { "field": "user_id", "size": 10 } // 按user_id分组,返回Top 10}}
}

范围分桶:将数值/日期按区间分组,包括range(自定义区间)和histogram(等距连续区间,适用于数值)。

{"aggs": {"age_ranges": {"range": {"field": "age","ranges": [{"from": 0, "to": 18}, {"from": 18, "to": 60}]}}}
}

时间序列分桶:针对日期数据的专属分桶,date_histogram支持按时间间隔(如天、小时)自动生成桶,常用于日志分析、趋势监控。

{"aggs": {"daily_logs": {"date_histogram": {"field": "timestamp","interval": "day", // 按天分组"format": "yyyy-MM-dd"}}}
}

地理分桶:针对地理坐标数据,如geo_distance(按距离分组)和geo_hash_grid(地理网格分组),适用于位置相关分析(如门店辐射范围统计)。

2. 分桶聚合的高级特性

复合分桶:支持嵌套聚合,即在一个桶内再创建子桶,实现多层分组。

{"aggs": {"country_groups": {"terms": { "field": "country" },"aggs": { // 子聚合:每个国家内按城市分组"city_groups": { "terms": { "field": "city" } }}}}
}

脚本分桶:通过script参数支持自定义分组逻辑,例如基于表达式或动态字段分组。

{"aggs": {"custom_buckets": {"terms": {"script": {"source": "doc['price'].value > 100 ? 'high' : 'low'","lang": "painless"}}}}
}

缺失值处理:通过missing参数指定未匹配桶的处理方式(如单独归为一个桶)。

{"aggs": {"product_categories": {"terms": { "field": "category", "missing": "Uncategorized" }}}
}

二、指标聚合

在Elasticsearch的聚合体系中,指标聚合(Metric Aggregations) 是与分桶聚合(Bucket Aggregations)相辅相成的核心模块。分桶聚合负责将数据分组,而指标聚合则专注于对每个分组(或全局数据)进行数值计算,输出统计指标(如平均值、总和、最大值等),最终为数据分析提供量化依据。本文将从核心类型、使用场景、高级特性等方面深入解析指标聚合的能力。

1. 指标聚合的核心逻辑与基础类型

指标聚合的本质是对文档字段或表达式进行计算,返回一个或多个数值型结果。它支持两种输入形式:

  1. 单桶场景:对全局数据或某个分桶内的文档计算指标(需与分桶聚合嵌套使用)。
  2. 无桶场景:直接对查询结果集计算指标(独立使用,无需分组)。

(1)基础统计指标(单值输出)

  • count:统计文档数量(等价于SQL的COUNT(*))。

    {"aggs": {"total_products": { "count": {} } // 统计总文档数}
    }
    
  • sum / avg / min / max:对数值型字段求和、求平均、求极值(等价于SQL的SUM/AVG/MIN/MAX)。

    {"aggs": {"avg_price": { "avg": { "field": "price" } },"total_sales": { "sum": { "field": "quantity" } }}
    }
    
  • sum_of_squares:计算字段值的平方和(用于方差/标准差的前置计算)。

(2)复合统计指标(多值输出)

  • stats:一次性返回countminmaxavgsum五个指标(高效批量计算)。

    {"aggs": {"price_stats": { "stats": { "field": "price" } }}
    }
    

    输出示例:

    {"price_stats": {"count": 100,"min": 10.0,"max": 500.0,"avg": 150.5,"sum": 15050.0}
    }
    
  • extended_stats:在stats基础上额外返回方差、标准差、标准误等高级统计值,适合需要深度统计分析的场景(如质量控制、数据分布评估)。

2. 指标聚合与分桶聚合的嵌套使用

指标聚合通常作为分桶聚合的子聚合,对每个桶内的数据独立计算指标,形成“分组+度量”的完整分析链路。例如:

{"aggs": {"monthly_sales": { // 按月份分桶(分桶聚合)"date_histogram": { "field": "sale_date", "interval": "month" },"aggs": { // 子聚合:对每个月份桶计算指标"avg_order_amount": { "avg": { "field": "amount" } }, // 月均订单金额"total_orders": { "count": {} } // 月订单量}}}
}

上述示例中,date_histogram先将数据按月份分组,子聚合avgcount分别计算每个月份桶的平均金额和订单数,最终输出时间序列下的多指标分析结果。

3. 高级特性与灵活扩展

(1)地理空间指标

  • geo_bounds:计算地理坐标字段(如geo_point)的边界范围(返回包含所有点的最小矩形的左上角和右下角坐标),常用于地图展示时的视口自动缩放。
  • geo_centroid:计算地理坐标的中心点(质心),适用于分析位置数据的聚集趋势(如用户分布中心)。

(2)脚本支持

通过script参数,指标聚合可基于Painless脚本实现自定义计算逻辑,例如:

  • 对字段进行转换后计算(如对日志中的响应时间戳转换为耗时)。
  • 结合多个字段计算复合指标(如计算单价×数量的总和)。
{"aggs": {"total_revenue": {"sum": {"script": {"source": "doc['price'].value * doc['quantity'].value","lang": "painless"}}}}
}

(3)缺失值处理

通过missing参数指定字段缺失时的替代值(仅对数值型指标有效),例如:

{"aggs": {"avg_rating": {"avg": { "field": "rating", "missing": 0.0 } // 缺失评分视为0分}}
}

三、管道子聚合

在Elasticsearch中,管道子聚合(Pipeline Sub-Aggregation) 是一类特殊的聚合,其输入不是原始文档数据,而是依赖于其他聚合(父聚合)的输出结果,用于对父聚合生成的桶或指标进行二次处理。这类聚合通常作为子聚合嵌套在桶聚合(如termsdate_histogram等)或其他支持的聚合中,实现对聚合结果的进一步分析,比如排序、过滤、统计或转换。

  • 核心特点:

    • 依赖父聚合结果:管道子聚合的输入是父聚合生成的桶(Bucket)或指标(Metric),而非文档数据。
    • 嵌套使用:必须作为子聚合存在于父聚合(通常是桶聚合)中,不能直接在查询层级独立使用。
    • 处理聚合结果:用于对父聚合的输出进行排序、过滤、计算累积值、滑动值等操作。
  • 使用场景:

    • 排序与过滤:对分组结果按特定指标排序(bucket_sort)或过滤(bucket_selector),例如热门商品Top 10。
    • 时间序列分析:在时间桶(如date_histogram)上计算累积值(cumulative_sum)或滑动窗口值(moving_avg),用于趋势分析。
    • 比例与统计:通过bucket_script计算占比,或通过avg_bucket计算分组指标的统计值。
    • 复杂业务逻辑:结合脚本(如Painless)实现自定义的桶处理逻辑。
  • 注意事项:

    • 父聚合要求:管道子聚合必须嵌套在支持的父聚合(通常是桶聚合)中,且父聚合需生成有序的桶(如时间序列)或可统计的桶集合。
    • buckets_path参数:多数管道聚合通过buckets_path指定父聚合的指标路径(格式为父聚合名称.子聚合名称)。
    • 性能影响:复杂的管道聚合可能增加计算开销,尤其是嵌套多层聚合时需注意优化。

1. 桶排序(bucket_sort

  • 功能:对父聚合生成的桶按指定指标排序,保留前N个桶。
  • 示例:按省份分组(terms聚合)后,按每个省份的销售额降序排序,取前3个省份。
{"aggs": {"province_groups": {"terms": { "field": "province" },"aggs": {"sorted_by_sales": {"bucket_sort": {"sort": [{ "sales_total": { "order": "desc" } }  // 按子聚合指标排序],"size": 3  // 保留前3个桶}}}}}
}

2. 桶过滤(bucket_selector

  • 功能:通过脚本或条件过滤父聚合的桶,仅保留符合条件的桶。
  • 示例:过滤出销售额超过1000的省份组。
{"aggs": {"province_groups": {"terms": { "field": "province" },"aggs": {"filter_high_sales": {"bucket_selector": {"script": "params.sales_total > 1000"  // 保留满足条件的桶}}}}}
}

3. 桶脚本(bucket_script

  • 功能:对每个桶应用脚本,生成新的指标或修改现有指标。
  • 示例:为每个省份组计算销售额占总和的比例。
{"aggs": {"province_groups": {"terms": { "field": "province" },"aggs": {"sales_ratio": {"bucket_script": {"script": {"source": "def total = params._agg.province_groups.sum; doc['sales_total'] / total","params": { "sum": { "sum": { "field": "sales" } } }  // 引入父聚合的总和}}}}}}
}

4. 累积聚合(如cumulative_sum

  • 功能:按顺序计算父聚合结果的累积值(如时间序列的累积和)。
  • 示例:按天分组后计算每天的累积销售额。
{"aggs": {"daily_sales": {"date_histogram": { "field": "order_date", "interval": "day" },"aggs": {"cumulative_sales": {"cumulative_sum": { "buckets_path": "sales_total" }  // 对父聚合的`sales_total`指标求累积和}}}}
}

5. 滑动窗口聚合(如moving_avg

  • 功能:在有序的桶(如时间序列)上计算滑动窗口的平均值。
  • 示例:计算最近7天的滑动平均销售额。
{"aggs": {"daily_sales": {"date_histogram": { "field": "order_date", "interval": "day" },"aggs": {"moving_avg_7d": {"moving_avg": {"buckets_path": "sales_total","window_size": 7  // 窗口大小为7天}}}}}
}

6. 桶统计聚合(如avg_bucketsum_bucket

  • 功能:对父聚合的所有桶的指标进行统计(如求平均值、总和)。
  • 示例:计算所有省份的平均销售额。
{"aggs": {"province_groups": {"terms": { "field": "province" },"aggs": {"sales_avg": {"avg_bucket": { "buckets_path": "sales_total" }  // 对所有桶的`sales_total`求平均}}}}
}

相关文章:

ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合

文章目录 一、分桶聚合1. 分桶聚合的核心逻辑与核心类型2. 分桶聚合的高级特性 二、指标聚合1. 指标聚合的核心逻辑与基础类型(1)基础统计指标(单值输出)(2)复合统计指标(多值输出) …...

互联网大厂Java求职面试:AI内容生成平台下的高并发架构设计与性能优化

互联网大厂Java求职面试:AI内容生成平台下的高并发架构设计与性能优化 场景背景: 郑薪苦是一名经验丰富的Java开发者,他正在参加一家匿名互联网大厂的技术总监面试。这家公司专注于基于AI的内容生成平台,支持大规模用户请求和复杂…...

论MCU如何在Fatfs中使用Flash接口的方法

前提: MCU移植了FS,如FATFSOSFMount工具 OSFMount或者其他磁盘工具用于挂载.img镜像,可格式化文件系统打开并放入实际使用的文件 步骤 1. cmd命令建立空.img镜像,以下为12MB fsutil file createnew fat.img 120000002. OSFMo…...

Python+Selenium爬虫:豆瓣登录反反爬策略解析

1. 引言 在当今互联网时代&#xff0c;数据抓取&#xff08;爬虫&#xff09;技术广泛应用于数据分析、市场调研、自动化测试等领域。然而&#xff0c;许多网站采用动态加载技术&#xff08;如Ajax、React、Vue.js等框架&#xff09;来渲染页面&#xff0c;传统的**<font s…...

nt!MiDispatchFault函数分析之第一次循环前后的变化

第一部分&#xff1a;nt!MiDispatchFault函数分析之第一次循环之前 1: kd> !pte 0x002bf810 VA 002bf810 PDE at C0300000 PTE at C0000AFC contains 7B314867 contains 00000000 pfn 7b314 ---DA--UWEV not valid 1: kd> dd C0000AFC…...

JMeter性能测试工具使用

JMeter是一款强大的性能测试工具&#xff0c;由Java编写&#xff0c;小巧轻便&#xff0c;最关键的是开源免费&#xff0c;现在已经成了主流的性能测试工具。 下面介绍一下基本的安装使用、高级功能及可视化实时图表展示&#xff0c;带你们感受一下JMeter的世界~ 1、安装 1.…...

Windows 环境下安装 Node 和 npm

安装 Node.js 和 npm https://nodejs.org/zh-cn/download 执行 fnm install 22 之后&#xff0c;执行 node 或 npm 提示找不到命令 fnm env 看环境变量 找到 node 和 npm 命令在 C:\Users\HUAWEI\AppData\Roaming\fnm\node-versions\v22.15.0\installation 目录下&#xff0…...

开发指南112-样式的优先级别

在前端样式设置里&#xff0c;界面元素一般会多个地方进行定义和影响。一般而言&#xff0c;CSS样式的优先级如下&#xff1a; ‌1、内联样式‌&#xff1a;style属性中定义的样式&#xff0c;具有最高的优先级。 ‌2、ID选择器‌&#xff1a;通过ID选择器指定的样式&#xff…...

单向通信机制EventSource

EventSource 是浏览器提供的一种实现服务器推送 简称 SSE 基于 HTTP 协议的单向通信机制 可以通过服务器将实时数据推送到客户端 而不需要客户端不断发起请求EventSource 和 WebSocket 都可以实现服务器向客户端的实时数据推送&#xff0c;但它们有不同的适用场景&#xff1a;E…...

PyTorch中mean(dim=1)的深度解析

mean(dim=1) 是什么意思 在自然语言处理中,文本经过分词器处理后会转换为token序列,每个token对应一个向量表示。mean(dim=1) 的作用是在序列维度上对这些向量取平均,将整个序列压缩为单个向量。下面我用具体例子解释: 1. 张量的维度结构 假设我们有一个输入文本:"…...

Xcode报错:“Set `maskView` to `nil` before adding it as a subview of ZFMaskView

Assertion failure in -[ZFMaskView _addSubview:positioned:relativeTo:] 嗯&#xff0c;坑爹的IOS18&#xff0c;当你基于UIView实现的自己的子类中定义一个属性并初始化时就会出现崩溃&#xff01; /// 遮罩property (nonatomic, strong) UIView *maskView; 因为UIVIEW本…...

uniapp -- 验证码倒计时按钮组件

jia-countdown-verify 验证码倒计时按钮组件 一个用于发送短信验证码的倒计时按钮组件&#xff0c;支持自定义样式、倒计时时间和文本内容。适用于各种需要验证码功能的表单场景。 代码已经 发布到插件市场 可以自行下载 下载地址 特性 支持自定义按钮样式&#xff08;颜色、…...

e.g. ‘django.db.models.BigAutoField‘.

在Django框架中&#xff0c;django.db.models.BigAutoField 是一个用于数据库模型的字段类型&#xff0c;它用于自动增长的ID字段。这个字段类型特别适用于需要处理大量数据的应用&#xff0c;比如在大型网站或应用中&#xff0c;普通的 AutoField 可能不足以存储增长的ID值&am…...

【​​HTTPS基础概念与原理​】对称加密与非对称加密在HTTPS中的协作

在HTTPS通信中&#xff0c;对称加密和非对称加密协同工作&#xff0c;共同保障数据的机密性和密钥交换的安全性。以下是两者的协作机制及RSA、ECDHE等算法的核心作用&#xff1a; 一、对称加密与非对称加密的分工 1. 对称加密&#xff08;如AES、ChaCha20&#xff09; • 作用&…...

ESP系列单片机选择指南:结合实际场景的最优选择方案

前言 在物联网(IoT)快速发展的今天&#xff0c;ESP系列单片机凭借其优异的无线连接能力和丰富的功能特性&#xff0c;已成为智能家居、智慧农业、工业自动化等领域的首选方案。本文将深入分析各款ESP芯片的特点&#xff0c;结合典型应用场景&#xff0c;帮助开发者做出最优选择…...

使用Thrust库实现异步操作与回调函数

使用Thrust库实现异步操作与回调函数 在Thrust库中&#xff0c;你可以通过CUDA流(stream)来实现异步操作&#xff0c;并在适当的位置插入回调函数。以下是如何实现的详细说明&#xff1a; 基本异步操作 Thrust本身并不直接暴露CUDA流接口&#xff0c;但你可以通过以下方式使…...

【Python 异常处理】

Python 的异常处理机制是构建健壮程序的核心工具&#xff0c;通过 try-except 结构实现优雅的错误管理。以下是系统化指南&#xff1a; 一、基础异常处理结构 try:# 可能出错的代码result 10 / 0 except ZeroDivisionError:# 异常处理逻辑print("错误&#xff1a;除数不…...

40:相机与镜头选型

第一章 相机 1.1 理论基础 1.1.1 相机分类 1 &#xff09;按照芯片类型&#xff1a; CCD 相机、 CMOS 相机 2 &#xff09;按照传感器的结构特性&#xff1a;线阵相机、面阵相机 3 &#xff09;按照扫描方式&#xff1a;隔行扫描相机、逐行扫描相机 4 &#xff09;按…...

【ESP32-S3】Guru Meditation Error 崩溃分析实战:使用 addr2line 工具 + bat 脚本自动解析 Backtrace

【ESP32-S3】Guru Meditation Error 崩溃分析实战&#xff1a;使用 addr2line 工具 bat 脚本自动解析 Backtrace 在使用 ESP32-S3 进行开发时&#xff0c;我们常常遇到串口报错&#xff0c;例如&#xff1a; Guru Meditation Error: Core 1 paniced (LoadProhibited). Exce…...

win11 VSCode 强制弹窗微软登录

今天在一台新电脑上配置VSCode同步的时候&#xff0c;用了微软账号&#xff0c;因为这台电脑比较特殊&#xff0c;不方便科学上网&#xff0c;所以一开始用的微软账户登录&#xff0c;导致和GitHub账号登录的配置、扩展等等不同步。 后面准备改用GitHub账号登录发现不行&#…...

Thrust库中的Gather和Scatter操作

Thrust库中的Gather和Scatter操作 Thrust是CUDA提供的一个类似于C STL的并行算法库&#xff0c;其中包含两个重要的数据操作&#xff1a;gather(聚集)和scatter(散开)。 Gather操作 Gather操作从一个源数组中按照指定的索引收集元素到目标数组中。 函数原型&#xff1a; t…...

springboot + mysql8降低版本到 mysql5.7

springboot mysql8降低版本到 mysql5.7 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency>spring:datasource:driverClassName: com.mysql.jdbc.D…...

在 Windows 中配置使用 WSL 来运行 Linux 环境,主要有以下步骤:

一、安装 WSL 方法一&#xff1a;使用 wsl --install 命令 &#xff1a;以管理员身份运行 PowerShell 或 Windows 命令提示符&#xff0c;输入 wsl --install 命令&#xff0c;该命令将自动启用运行 WSL 所需的功能&#xff0c;并安装默认的 Linux 发行版 Ubuntu。 方法二&…...

TypeScript泛型:从入门到精通的全方位指南

TypeScript泛型&#xff1a;从入门到精通的全方位指南 前言 最近在社区看到很多小伙伴对TypeScript的泛型概念感到困惑。作为一名从Java转战前端的老兵&#xff0c;我想用最接地气的方式&#xff0c;带大家彻底搞懂这个看似高深实则简单的重要特性。 一、什么是泛型&#xf…...

DA14531如何在固件中生成与时间相关的mac和版本号

一. 蓝牙device information service显示固件编译时间 这里我是用序列号的characteristic来显示。 只需要把序列号的characteristic value用宏的方式&#xff1a; #define APP_DIS_SERIAL_NB_STR (__DATE__" "__TIME__) #define APP_DIS_SERIAL_NB_STR…...

内存安全设计方案

内存安全设计方案 1. 内存问题分析 1.1 常见内存问题 内存泄漏: 单例对象持有过多引用缓存未及时清理线程池资源未释放内存溢出: 大对象频繁创建队列积压并发处理不当GC频繁: 对象创建过多内存碎片化大对象分配1.2 问题场景 #mermaid-svg-uPgkoDPv6GNGT28v {font-family:&…...

免费Ollama大模型集成系统——Golang

Ollama Free V2 Web 功能实现&#xff1a;界面交互与后端逻辑 一、Web 界面概述 Ollama Free V2 的 Web 界面提供了丰富的交互功能&#xff0c;包括模型选择、图片上传、历史记录查看等。界面使用 Bootstrap 进行布局&#xff0c;结合 JavaScript 实现动态交互。 二、前端界…...

工具学习_模糊测试

定义&#xff1a;模糊测试&#xff08;fuzz testing, fuzzing&#xff09;是一种软件测试技术。其核心思想是将自动或半自动生成的随机数据输入到一个程序中&#xff0c;并监视程序异常&#xff0c;如崩溃、断言失败&#xff0c;以发现可能的程序错误&#xff0c;比如内存泄漏。…...

AI智能分析网关V4周界入侵检测算法精准监测与智能分析,筑牢周界安全防线

一、方案背景​ 随着安全防范需求的不断提升&#xff0c;传统周界安防系统存在误报率高、响应迟缓、智能化程度低等问题&#xff0c;难以满足现代化安全管理的要求。AI智能分析网关V4集成先进的人工智能算法与高性能计算能力&#xff0c;能够实现对周界区域的精准监测与智能分…...

ubuntu20.04系统搭建k8s1.28集群-docker作为容器运行时

ubuntu系统搭建 ubuntu-22.04.5-desktop-amd64.iso映像文件--->实际却是20.4focal版本。 【安装过程没有特别指出的默认回车下一步】 【用户和密码设置】 【网络连接】 【在vmware上安装的话&#xff0c;网络配置如下】【在vm里配置选择nat或者桥接即可】 【国内源配置】&…...

安全合规检查开源项目ComplianceAsCode/content详解及操作系统新产品开发适配指南

I. ComplianceAsCode/content简介 A. 项目使命及其在自动化合规中的重要性 ComplianceAsCode/content项目致力于为各类操作系统发行版和产品提供安全与合规内容。该项目的核心目标是促进自动化安全扫描和配置验证,从而取代传统的手动审计方法,这与日益增长的“合规即代码”…...

Jmeter -- JDBC驱动连接数据库超详细指南

数据库性能决定应用成败&#xff01;高峰期&#xff0c;慢查询拖垮系统&#xff1f;并发用户激增导致连接超时&#xff1f;这些问题让开发者头疼不已。Apache JMeter作为性能测试神器&#xff0c;不仅能测试Web应用&#xff0c;还能直连数据库&#xff0c;模拟多用户负载&#…...

R利用spaa包计算植物/微生物的生态位宽度和重叠指数

一、生态位宽度 生态位宽度指数包括shannon生态位指数和levins生态位指数。下面是采用levins方法计算生态位宽度。method也可以选择“shannon”。 二、生态位重叠指数 生态位重叠指数&#xff0c;包括levins生态位重叠指数、schoener生态位重叠指数、petrai…...

《AI大模型应知应会100篇》第62篇:TypeChat——类型安全的大模型编程框架

第62篇&#xff1a;TypeChat——类型安全的大模型编程框架 摘要 在构建 AI 应用时&#xff0c;一个常见的痛点是大语言模型&#xff08;LLM&#xff09;输出的不确定性与格式不一致问题。开发者往往需要手动解析、校验和处理模型返回的内容&#xff0c;这不仅增加了开发成本&a…...

STM32 片上资源之串口

STM32 片上资源之串口 1 串口介绍1.1 初步介绍1.2 主要特性1.2.1 USART特性1.2.2 UART特性 1.3 主要寄存器1.4 波特率计算1.5 常用工作模式1.5.1 轮询模式&#xff1a;1.5.2 中断模式&#xff1a;1.5.3 DMA模式&#xff1a; 1.6 常见应用1.7 注意事项 2 软件层面协议2.1 基本概…...

全球首个投影机息屏显示专利授权:九天画芯重新定义设备交互与节能显示新范式

一、从 “功能闲置” 到 “持续交互”—— 投影机专利授权开启显示技术新纪元 在智能设备高速发展的今天&#xff0c;投影机作为重要的显示终端&#xff0c;长期面临 “非观影时段功能闲置” 的行业痛点。2025 年&#xff0c;一项名为 “投影机息屏显示” 的核心基础专利获得授…...

音频分类的学习

1.深度学习PyTorch入门-语音分类 https://blog.csdn.net/sinat_41787040/article/details/129795496 https://github.com/musikalkemist/pytorchforaudio https://github1s.com/musikalkemist/pytorchforaudio/blob/main/04%20Creating%20a%20custom%20dataset/urbansoundda…...

Java—— 可变参数、集合工具类、集合嵌套

可变参数 说明 1. 可变参数本质上就是一个数组 2. 作用&#xff1a;在形参中接收多个数据 3. 格式&#xff1a;数据类型...参数名称 举例:int...a 4. 注意事项&#xff1a; 形参列表中可变参数只能有一个 可变参数必须放在形参列表的最后面 案例演示 …...

AGI大模型(15):向量检索之调用ollama向量数据库

这里介绍将向量模型下载到本地,这里使用ollama,现在本地安装ollama,这里就不过多结束了。直接从下载开始。 1 下载模型 首先搜索模型,这里使用bge-large模型,你可以根据自己的需要修改。 点击进入,复制命令到命令行工具中执行。 安装后查看: 2 代码实现 先下载ollama…...

“强强联手,智启未来”凯创未来与绿算技术共筑高端智能家居及智能照明领域新生态

近日&#xff0c;北京凯创未来科技有限公司总经理赵健凯先生莅临广东省绿算技术有限公司北京运营中心&#xff0c;双方正式签订战略合作协议&#xff0c;标志着绿算技术在高端智能家居及智能照明领域的技术实力与产业布局获得智能家居行业认可&#xff0c;同时也为凯创未来在高…...

【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权

【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权 文章目录 【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权[toc]一&#xff1a;Kerberos 委派攻击原理之 S4U2利用1.1原理1.2两种扩展协议**S4U2Self (Service for User to Self)****S4U2Proxy (Service for User to Proxy)*…...

Linux grep -r 查找依赖包是否存在依赖类 Class

方法一&#xff1a;通过 Linux &#xff0c;grep -r ClassPath 命令 grep -f org.apache.kafka.connect.source.SourceRecord在 jar 包所在 lib 或者 lib/plugins 目录下执行&#xff0c;grep -r&#xff0c; flink-sql-connector-sqlserver-cdc-3.3.0.jar 中此 kafka Source…...

Qt笔记---》.pro中配置

文章目录 1、概要1.1、修改qt项目的中间文件输出路径和部署路径1.2、Qt 项目模块配置1.3、外部库文件引用配置 1、概要 1.1、修改qt项目的中间文件输出路径和部署路径 &#xff08;1&#xff09;、为解决 “ 输出文件 ” 和 “ 中间输出文件 ”全部在同一个文件夹下的问题&am…...

D. Eating【Codeforces Round 1005 (Div. 2)】

D. Eating 题意 有 n n n 个史莱姆排成一行&#xff0c;第 i i i 个史莱姆的权重为 w i w_i wi​。若史莱姆 i i i 的权重满足 w i ≥ w j w_i \geq w_j wi​≥wj​&#xff0c;则它可以吃掉史莱姆 j j j&#xff1b;之后&#xff0c;史莱姆 j j j 会消失&#xff0c;…...

猫眼浏览器:简约安全,极速浏览

猫眼浏览器是一款以简约安全为目标的Chrome内核增强版浏览器&#xff0c;基于最新的Chromium开源内核进行二次优化开发。它不仅继承了Chrome浏览器的高速浏览体验&#xff0c;还通过增强的隐私保护设置&#xff0c;让用户远离被追踪和广告的烦恼。无论是日常浏览、信息查询还是…...

安全扫描之 Linux 杀毒软件 Clamav 安装

文章目录 背景Clamav 简介安装使用1、安装epel-release2、Clamav安装3、成功安装4、更新病毒库5、执行扫描6、结果分析7、常见问题 背景 最近在做HVV准备工作&#xff0c;应要求需要在 Linux 服务器上安装杀毒软件&#xff0c;以此文记录下Clamav 安装过程。 Clamav 简介 Cl…...

排序算法详解

排序算法全面解析 排序算法是计算机科学中最基础也最重要的算法之一。它将一组数据&#xff08;例如数字列表、字符串集合&#xff09;按照特定的顺序&#xff08;升序或降序&#xff09;重新排列。高效的排序算法对于优化其他算法&#xff08;如搜索和合并算法&#xff09;的…...

[特殊字符] GSG 插件 + 渲染 101:C4D 渲染效率革命!

一、GSG 插件&#xff1a;C4D 创作的「超级加速器」 灰猩猩&#xff08;GSG&#xff09;插件是 C4D 设计师的刚需工具&#xff1a; Light Kit Pro&#xff1a;1 分钟生成专业灯光预设&#xff0c;告别手动布光烦恼GorillaCam&#xff1a;自动添加电影级相机运动&#xff0c;镜…...

centos中postfix的作用

/usr/libexec/postfix/master 是 Postfix 邮件服务器的主进程&#xff0c;qmgr 和 pickup 是 Postfix 的子进程。这些进程本身是正常的&#xff0c;但如果你怀疑服务器被用于钓鱼活动&#xff0c;需要进一步检查 Postfix 的配置和日志&#xff0c;确保它没有被滥用。 1. 检查 P…...

tocmat 启动怎么设置 jvm和gc

在生产环境中部署 Java Web 应用时&#xff0c;我们经常需要给 Tomcat 设置 JVM 参数和 GC 策略&#xff0c;以提高性能、稳定性和可观察性。以下是完整教程&#xff1a; 一、Tomcat 设置 JVM 启动参数的方式 1. 修改 startup 脚本&#xff08;推荐&#xff09; 以 Linux 系统…...