为什么你的聚合查询越来越慢?3步定位并解决ES聚合性能问题

简单讲讲ES在大数据规模下的性能问题与解决方案(一) 众所周知,在处理大规模数据量的时候,我们的传统关系型数据库,例如MySQL,Oracle等...它们对于这些大规模数据的处理与计算是非常吃力的,甚至于在内存资源不足的情况下导致在mysql中查询数据失败的情况,甚至由于数据的规模较大,会消耗更多的磁盘空间,得不偿失。它们都是非关系型数据库,都是以K-V的形式存储数据,在查询的时候,可以通过key来精确命中需要的value。通过综合应用这些详细的解决方案,可以有效地提升Elasticsearch在大数据量下的查询性能,并保持毫秒级别的查询速度。 阅读详情

第一章:为什么你的聚合查询越来越慢?3步定位并解决ES聚合性能问题

在Elasticsearch中,随着数据量增长,聚合查询(aggregations)性能下降是常见痛点。尤其在仪表盘、报表等场景下,复杂的多层聚合可能导致响应时间从毫秒级飙升至数秒甚至超时。根本原因通常包括数据量过大、映射设计不合理或聚合逻辑未优化。通过以下三个步骤,可系统性定位并解决性能瓶颈。

检查聚合查询的性能瓶颈

使用 Elasticsearch 的 profile API 分析聚合执行细节,识别耗时最高的部分。开启 profile 后,ES 会返回每个子查询和聚合阶段的耗时信息:
{
  "profile": true,
  "aggs": {
    "sales_per_category": {
      "terms": { "field": "category.keyword" },
      "aggs": {
        "avg_price": { "avg": { "field": "price" } }
      }
    }
  }
}
执行后查看 profile 结果中的 breakdown 和 debug 信息,判断是否因字段数据结构(如高基数 keyword 字段)导致内存消耗过大。

优化字段映射与数据结构

高基数(high cardinality)字段是聚合慢的常见根源。确保用于聚合的字段使用 keyword 类型,并禁用不必要的全文检索功能:
{
  "mappings": {
    "properties": {
      "category": {
        "type": "keyword"
      },
      "timestamp": {
        "type": "date"
      }
    }
  }
}
避免在 text 字段上进行聚合,因其默认会触发分词和 fielddata 加载,极大影响性能。

减少数据范围与使用近似聚合

  • 通过 range 查询限制时间范围,减少参与聚合的文档数量
  • 使用 composite 聚合替代多层 terms 聚合,支持分页遍历大规模组合值
  • 对精度要求不高的统计,采用 cardinality 配合 HyperLogLog++ 算法估算去重值
优化手段适用场景性能提升效果
Profile 分析定位慢查询根源★★★★☆
Keyword 映射聚合字段★★★★★
Composite 聚合大数据集分组统计★★★★☆

第二章:深入理解Elasticsearch聚合机制

2.1 聚合查询的底层执行原理与数据流

聚合查询在数据库引擎中通常通过多阶段流水线完成,其核心流程包括数据扫描、分组构建、中间状态聚合及最终结果合并。
执行阶段分解
  • 扫描阶段:从存储层读取原始数据,按条件过滤;
  • 分组阶段:基于 GROUP BY 字段构建哈希表,划分数据桶;
  • 局部聚合:每个线程独立计算局部中间值(如 count、sum);
  • 全局合并:将多个局部结果归并为最终输出。
典型代码逻辑示意
// 模拟局部聚合函数
func partialAggregate(rows []Row) map[string]AggState {
    result := make(map[string]AggState)
    for _, row := range rows {
        key := row.GroupByValue
        if _, exists := result[key]; !exists {
            result[key] = AggState{Count: 0, Sum: 0}
        }
        result[key].Count++
        result[key].Sum += row.Value
    }
    return result // 返回中间状态
}
该函数对输入行进行分组并维护计数和累加值,适用于并行处理场景。多个 partialAggregate 输出可由上层调用者进一步 merge。
数据流示意图
扫描 → 分区 → 局部聚合 → 结果合并 → 输出

2.2 常见聚合类型及其资源消耗对比

在分布式系统中,常见的聚合类型包括计数聚合、求和聚合、平均值聚合与分位数聚合。不同类型的聚合操作对CPU、内存和网络带宽的消耗存在显著差异。
资源消耗特征对比
  • 计数聚合:仅需累加事件数量,资源开销最低,适合高频采集场景;
  • 求和聚合:维护数值总和,内存占用小,但需防溢出;
  • 平均值聚合:需同时记录总数与总和,计算复杂度和传输成本较高;
  • 分位数聚合(如P95):通常依赖直方图或TDigest算法,内存消耗大,CPU计算密集。
性能对比表格
聚合类型CPU消耗内存占用适用频率
计数低极低高
求和低低高
平均值中中中
分位数高高低

2.3 分片策略对聚合性能的影响分析

分片键选择与数据分布
分片键决定了数据在集群中的分布方式,直接影响聚合操作的局部性。理想情况下,频繁用于聚合查询的字段应作为分片键的一部分,以减少跨节点通信。
常见分片策略对比
  • 范围分片:适合时间序列类聚合,但易导致热点;
  • 哈希分片:数据分布均匀,但可能增加跨分片查询开销;
  • 复合分片:结合范围与哈希,平衡负载与查询效率。
聚合执行性能示例
-- 按用户ID哈希分片后执行平均订单金额聚合
SELECT user_id, AVG(amount) 
FROM orders 
GROUP BY user_id 
SHARD BY HASH(user_id);
该语句在哈希分片下可将聚合下推至各分片独立计算部分结果,显著降低协调节点压力。分片数过多则带来并发开销,过少则易引发资源争用,需根据集群规模调整分片数量(如每节点4~8个分片为佳)。

2.4 高基数字段如何拖慢聚合响应速度

高基数字段指包含大量唯一值的字段,如用户ID、设备指纹等。在执行聚合操作时,数据库需为每个唯一值分配内存并维护中间状态,导致计算资源急剧上升。
聚合性能瓶颈示例
SELECT user_id, COUNT(*) FROM logs GROUP BY user_id;
当 user_id 基数高达千万级时,GROUP BY 需构建巨大的哈希表,显著增加CPU与内存开销,拖慢查询响应。
资源消耗对比
基数范围平均响应时间(ms)内存占用(MB)
1K158
1M1200850
优化策略
  • 避免对高基数字段直接聚合
  • 使用近似算法(如HyperLogLog)替代精确计数
  • 预聚合或物化视图降低实时计算压力

2.5 冷热数据分离下的聚合效率变化

在大规模数据系统中,冷热数据分离通过将高频访问的“热数据”与低频访问的“冷数据”分布存储,显著影响聚合查询效率。
性能对比分析
数据类型存储介质平均响应时间(ms)
热数据SSD + 缓存15
冷数据HDD 归档320
典型查询优化示例
-- 针对热数据的实时聚合
SELECT user_id, COUNT(*) 
FROM user_actions_hot 
WHERE ts > NOW() - INTERVAL '1 hour'
GROUP BY user_id;
该查询仅作用于热表,避免全量扫描。冷数据则通过异步批处理完成聚合,降低实时负载。通过分区路由策略,系统自动识别查询范围,实现透明化效率优化。

第三章:精准定位聚合性能瓶颈

3.1 利用Profile API洞察聚合执行细节

Elasticsearch的Profile API为查询和聚合操作提供了底层执行的详细剖析,帮助开发者识别性能瓶颈。
启用聚合分析
通过在搜索请求中启用`"profile": true`,可获取聚合各阶段的耗时信息:
{
  "profile": true,
  "aggs": {
    "sales_per_category": {
      "terms": { "field": "category" },
      "aggs": {
        "avg_price": { "avg": { "field": "price" } }
      }
    }
  }
}
上述请求将返回每个分片上聚合的执行路径。其中,`terms`聚合的文档收集、排序及子聚合`avg_price`的数值计算会被逐项记录。
结果结构解析
Profile响应包含shards数组,每项列出:
  • query_breakdown:查询各子步骤耗时(如match、create_weight)
  • aggregation_breakdown:聚合器创建、收集桶(collect)、计算指标(reduce)的时间分布
通过对比不同聚合策略的耗时差异,可优化字段类型、索引结构或聚合顺序,显著提升复杂分析的响应效率。

3.2 通过慢日志与监控指标识别异常查询

数据库性能问题往往源于低效的SQL查询。启用慢查询日志是发现潜在瓶颈的第一步,它能记录执行时间超过阈值的语句。
开启MySQL慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
SET GLOBAL log_output = 'TABLE';
上述命令将慢查询日志启用,并定义执行时间超过1秒的查询为“慢查询”,日志输出至mysql.slow_log表。long_query_time可按实际场景调整,单位为秒。
关键监控指标
  • Queries per second (QPS):突增可能预示爬虫或攻击
  • Threads_connected:连接数过高可能导致资源耗尽
  • InnoDB buffer pool hit rate:低于95%可能表示内存不足
结合慢日志与实时监控,可快速定位并分析异常查询,为优化提供数据支撑。

3.3 使用_ stats接口评估索引段与内存使用

Elasticsearch 提供了 `_stats` 接口,用于监控索引的段信息和内存资源消耗情况。通过该接口可获取分片级别的统计信息,帮助优化性能与资源分配。
关键指标查看
发送请求获取集群统计信息:
GET /_stats/fielddata,segments?human&pretty
参数说明: - fielddata:返回字段数据在堆内存中的使用量; - segments:展示每个分片的段数量、内存占用及文档数; - human=true:以可读格式(如 MB、GB)显示数值。
内存使用分析
响应中重点关注以下字段:
  • segments.memory_in_bytes:总段内存使用量,包含存储索引结构的开销;
  • fielddata.memory_size_in_bytes:当前加载到堆中的字段数据大小;
  • segments.count:段总数,过多小段会增加查询开销。

第四章:优化策略与实战调优案例

4.1 减少聚合范围:合理设置查询过滤条件

在进行数据聚合操作时,初始阶段应通过精确的过滤条件缩小数据集范围,避免全表扫描带来的性能损耗。合理的查询条件能显著降低后续计算负载。
使用索引友好的过滤条件
优先使用可命中索引的字段(如时间戳、用户ID)进行筛选:
SELECT user_id, COUNT(*) 
FROM logs 
WHERE created_at >= '2024-04-01' 
  AND status = 'active'
GROUP BY user_id;
该查询利用 created_at 字段的时间范围过滤,配合 status 筛选,大幅减少参与聚合的数据量。前提是已在 created_at 上建立索引。
分步优化效果对比
策略扫描行数执行时间
无过滤1,000,0001200ms
带时间过滤80,000180ms
双条件过滤15,00045ms

4.2 优化字段映射:启用doc_values与避免高基数

在Elasticsearch中,`doc_values` 是列式存储结构,用于提升聚合、排序和脚本计算性能。默认情况下,多数字段类型会自动启用 `doc_values`,但需注意文本字段(`text`)不支持该特性。
启用 doc_values 的正确方式
{
  "mappings": {
    "properties": {
      "status": {
        "type": "keyword",
        "doc_values": true
      }
    }
  }
}
上述配置显式开启 `doc_values`,适用于需要频繁聚合的字段。`keyword` 类型字段默认已启用,此处仅为说明目的。
避免高基数字段聚合
高基数字段(如用户ID、会话ID)会导致内存占用激增和查询变慢。建议通过以下方式优化:
  • 使用近似聚合,如 cardinality 指标结合 HyperLogLog 算法;
  • 预聚合或引入缓存层减少实时计算压力。

4.3 合理控制聚合粒度与返回桶数量

在Elasticsearch聚合查询中,聚合粒度过细或返回桶(bucket)数量过多会导致内存溢出与响应延迟。应根据业务需求权衡精度与性能。
避免过度细分
使用 size 参数限制返回桶的数量,防止返回不必要的数据:
{
  "aggs": {
    "products_by_category": {
      "terms": {
        "field": "category.keyword",
        "size": 10
      }
    }
  }
}
上述代码将结果限制为最多10个分类桶,有效控制资源消耗。参数 size 应设置合理上限,避免默认返回全部唯一值。
优化时间序列聚合
对于日期直方图,适当增大时间间隔可降低桶数量:
  • 使用 interval: "hour" 替代 "minute" 减少数据点
  • 结合 min_doc_count 过滤空桶

4.4 利用缓存机制提升重复聚合查询效率

在高并发数据分析场景中,重复的聚合查询会显著消耗数据库资源。引入缓存机制可有效降低响应延迟与系统负载。
缓存策略选择
常用方案包括:
  • 本地缓存(如 Guava Cache):适用于单节点部署,访问速度快
  • 分布式缓存(如 Redis):支持多实例共享,具备持久化与过期机制
代码实现示例
func GetAggregatedData(key string, query func() map[string]int) map[string]int {
    if data, found := cache.Get(key); found {
        return data.(map[string]int)
    }
    result := query()
    cache.Set(key, result, 5*time.Minute) // 缓存5分钟
    return result
}
该函数通过键值缓存聚合结果,避免重复执行昂贵查询。参数 key 标识查询维度,query 为实际聚合逻辑,缓存有效期设为5分钟以平衡数据实时性与性能。
命中率优化
合理设计缓存键(如包含时间粒度、过滤条件)可提升命中率,减少后端压力。

第五章:总结与展望

技术演进的持续驱动
现代软件架构正快速向云原生和边缘计算演进。以 Kubernetes 为核心的编排系统已成为微服务部署的事实标准。例如,某金融企业在迁移其核心交易系统时,采用以下配置实现高可用服务:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: trading-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: trading
  template:
    metadata:
      labels:
        app: trading
    spec:
      containers:
      - name: server
        image: trading-server:v1.8
        ports:
        - containerPort: 8080
        readinessProbe:
          httpGet:
            path: /health
            port: 8080
该配置通过副本集与就绪探针保障服务稳定性,日均处理交易请求超 200 万次。
未来架构的关键方向
  • Serverless 架构将进一步降低运维复杂度,适合事件驱动型任务
  • AI 驱动的自动化运维(AIOps)将在日志分析与故障预测中发挥核心作用
  • WebAssembly(Wasm)在边缘函数中的应用将提升执行效率与安全性
技术趋势典型应用场景预期落地周期
Service Mesh 增强多集群服务治理1-2 年
Zero Trust 安全模型远程访问控制6 个月 - 1 年
Database Streaming实时数据同步2-3 年
架构从单体到微服务再到 Serverless 的演进路径
聚合查询越来越慢?——详解Elasticsearch的Global Ordinals与High Cardinality 本文结合笔者在实践过程中遇到的由High Cardinality引起Global Ordinals构建过慢,从而导致聚合查询变慢的问题,阐述了Elasticsearch中两个核心概念:Global Ordinals和High Cardinality。 阅读详情

相关推荐

【ElasticSearch-聚合查询】ES聚合统计及springboot对比实现

一文详解Elasticsearch中涉及的桶聚合、指标聚合、管道聚合及其所属各类函数使用及springboot对比实现

qq_42890164的博客 3882

es-聚合性能优化

优化方案: 启用 eager global ordinals 提升高基数聚合性能 应用场景: ● 基于 keyword,ip 等字段的分桶聚合,包含:terms聚合、composite 聚合等。 ● 基于text 字段的分桶聚合(前提条件是:fielddata 开启)。 ● 基于父子文档 Join 类型的 has_child 查询和 父聚合。 global ordinals 使用一个数值代表字段中的字符串值,然后为每一个数值分配一个 bucket(分桶) 插入数据时对索引进行预排序 ● ndex sort

langsiming的博客 3791

【Elasticsearch】优秀实践-你的ES怎么查的慢了?

前言 经常会有人吐槽,Elasticsearch为什么查着查着突然就慢了? 笔者总结了常见的一些导致查询慢的场景,供大家排查。 go go go Elasticsearch查询慢问题排查思路 Elasticsearch的查询慢的问题往往是由多种因素造成的,同时我们也需要遵循Elasticsearch的查询准则:ES适合top N的查询,不适合大数据量返回的查询。 场景1 内存参数配置不合...

wudingmei1023 6029

es的聚合mysql聚合速度_es的聚合查询分析

聚合结果分析:聚合查询,结果包括两部分,一个是hits,一个是aggregations.另一部分:是查询情况显示,包括:took(查询消耗时间),time_out(是否超时),_shards(查询了几个分片,是否失败等)“hits”:聚合查询的结果,默认按照分值排序。显示的每条内容,可以通过_source,store等参数控制在使用json查询es时,最外层size控制了显示的条目数"aggreg...

weixin_42513296的博客 856

《再也不怕elasticsearch》es聚合使用与原理剖析

还不会es的复杂查询?点进来!

迷途的博客 5650

ElasticSearch java API - 聚合查询

接下来举例说明各种聚合操作的实现方法,因为在es的api中,多字段上的聚合操作需要用到子聚合(subAggregation),初学者可能找不到方法(网上资料比较少,笔者在这个问题上折腾了两天,最后度了源码才彻底搞清楚T_T),后边会特意说明多字段聚合的实现方法。另外,聚合后的排序也会单独说明。

2401_85352982的博客 1434

ES 查询比较慢的原因排查并查看ES节点状态

如果数据量过大,每次查询时需要进行大量的遍历和计算,会导致查询时间变长。可以通过对索引进行优化,如添加合适的字段映射,减少不必要的字段存储来缩短查询时间。如果索引设计不合理,也会导致查询时间变长。可以通过检查分片和副本配置、合理设置Mapping和Analazer等方式来优化索引设计。如果硬件资源不足,如CPU、内存、磁盘I/O等方面,也会影响查询性能。可以通过增加硬件资源、调整集群配置等方式来提高查询性能。如果使用的ES版本过低,可能存在一些性能问题和bug,建议升级到最新版本或稳定版本。

ajax_beijing_java的博客 4249

Elasticsearch查询性能下降的原因及优化方法

当Elasticsearch查询变得缓慢时,我们应该考虑数据量增加、查询复杂度增加、索引过多以及硬件性能不足等因素。通过垂直扩展和水平扩展硬件资源、优化查询、合并索引、删除不必要的索引以及增加硬件资源等方法,我们可以改善Elasticsearch的查询性能,提高系统的响应速度。Elasticsearch是一个开源的分布式搜索和分析引擎,广泛应用于实时数据分析、日志处理和全文搜索等领域。本文将探讨造成查询性能下降的常见原因,并提供一些优化方法。

ByteCodN的博客 1162

【ElasticSearch笔记】ES基本查询

Elasticsearch的基本使用,基础概念了解和常用查询语句示例说明。

木子家有小可爱的博客 2994

【Elasticsearch】ES查询慢问题排查思路 profile 参数

1.概述 转载:添加链接描述 2.场景 场景1 内存参数配置不合理,文件系统缓存不足。 场景2 查询范围过大,一次查询过多的分片,如全表扫描查询。 场景3 进行深度翻页查询,如查询10000之后的结果。 场景4 查询返回的结果集过大,如10w。 场景5 查询语句不是最优,如过滤查询可以使用filter。 场景6 使用模糊匹配查询造成内存溢出的问题。 场景7 聚合查询返回的结果集过大,聚合的范围过大。 场景8 聚合查询多唯一值引起的高内存使用率。 场景9 用text字段进行排序,造成fiel

九师兄 8802

ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端

ES查询客户端,elasticsearch可视化工具。elasticsearch查询客户端

Elasticsearch Java API 分组、聚合、嵌套相关查询

Elasticsearch Java API 分组、聚合、嵌套相关查询 翼支付监控系统正使用es做后端存储,这边我们是将日志计算处理过后的数据通过kafka储存到es。选择用es作为数据储存端是考虑到es有一套完整的数据处理方式,功能全面性能优越,以及索引滚动可以方便管理es存储的数据。这理我主要是分享下Elasticsearch Java API对ES数据分组、聚合、嵌套以及时间直方图方面相关查...

qq_34910179的博客 1万+

PP生产订单的BADI增强 WORKORDER_UPDATE

我们的项目需求是: 1、 保存时检查工单BOM是否存在物料号相同的行项目,如果有则提示“物料& 重复,请检查工单BOM” 系统增强出口:PPCO0001,检查组件行项目是否有重复物料项 开始以为的增强增强看一下是用PPCO0001还是PPCO0007 后来找到了badi WORKORDER_UPDATE IF_EX_WORKORDER_UPDATE~BEFORE_UPDATE

ERP运维咨询(目标和成功) 4636

ES聚合查询

ES聚合查询 文章目录ES聚合查询1. 聚合查询2. 指标聚合(Metrics aggregations)2.1 平均值2.2 最大值2.3 最小值2.4 求和2.5 统计2.6 多个指标聚合3. 桶聚合3.1 分组聚合3.2 日期直方图聚合3.3 直方图聚合3.4 缺失聚合 1. 聚合查询 ES 6.3.2中聚合查询分为:桶聚合(Bucket aggregations)、指标聚合(Metrics aggregations)、流水线聚合(Pipeline aggregations)、矩阵聚合(Matrix

mingyonghu的博客 6094

RV1126开发板性能实测:网络、温度与功耗全解析

本文对RV1126开发板进行了全面的性能实测,重点分析了网络性能、温度表现与功耗特性。测试发现UDP带宽可达500Mbps,但TCP性能受限于协议栈;散热设计对持续性能至关重要,大板子在AI推理和视频推流中表现更稳定。为嵌入式开发者提供了真实的选型参考和优化建议。

d3e4f的博客 267

中国 it 集成商 主要有哪些 主要做什么工作

既要懂技术(云计算/AI),又要吃透行业(金融/政务)。:用国产化方案(麒麟OS+达梦数据库)替换Oracle/Windows。:如为银行搭建数据中心(采购华为服务器+思科交换机)。:数据中心监控、故障处理(如华胜天成服务国家电网)。:核心交易系统(如中科软为保险公司开发精算平台)。:智慧城市(如太极股份承建“一网通办”政务平台)。:HIS医院信息系统(如东华软件的电子病历系统)。:硬件透明化(如服务器价格战)压缩集成毛利。:工厂设备联网(新华三的工业互联网平台)。

hxsln11的博客 3038

elasticsearch(二):java操作es实现分组聚合查询和基本查询

es查询还有一个很常用的一种叫聚合查询,相当于mysql中的分组group by 后拿各组数量进行统计 ,实现起来也是很简单。 基本查询包含聚合: 具体直接看代码,代码中部分有注释 /** * person查询 * 继承baseService的list返回的query对象 * @return */ public Result personL...

小栋哟 2万+

Python爬虫获取Shopee店铺的所有商品?

通过上述代码示例,我们可以轻松实现获取Shopee店铺所有商品信息的功能。Python爬虫不仅具有强大的功能和稳定性,还可以通过丰富的库支持实现高效的数据抓取和解析。希望这篇文章能为你提供一些启发和帮助。如果你对爬虫开发有更多兴趣,可以尝试探索更复杂的功能,如多线程爬取、数据可视化等。如果你在实践中遇到任何问题,欢迎随时交流和讨论。让我们一起用技术的力量,解锁更多可能!

2401_87195067的博客 1543

【ElasticSearch】查询慢问题

【ElasticSearch】使用过程中出现的查询慢问题

weixin_47541454的博客 4044

UE5 Compute Shader实战:从基础到高级应用全解析

本文全面解析了在UE5中应用Compute Shader的完整流程,从基础概念、环境搭建到核心机制与实战应用。详细介绍了如何通过参数传递、线程派遣与数据读写实现GPU并行计算,并深入探讨了GPU粒子模拟、性能优化及结合光线追踪等高级应用场景,为开发者掌握UE5高性能计算提供系统指导。

yhn45678901的博客 500

NE555构成多谐振荡器及三角波、正弦波的生成(附工程文件)

NE555构成多谐振荡器及三角波、正弦波的生成 续上一篇:NE555基本原理及相关公式的推导

qq_49979053的博客 5万+

elasticsearch聚合结果分页查询

1、Elasticsearch支持聚合后分页吗,为什么? 不支持,看看Elasticsearch员工如何解读。 1)性能角度——聚合分页会在大量的记录中产生性能问题。 2)正确性角度——聚合的文档计数不准确。 所以奇怪的事情可能会发生,如第二页的第一项具有比第一页的最后一个元素更高的计数。 2、Elasticsearch要实现聚合后分页,该怎么办? 方案:需要展示满足条件的全部数据条数,即需要全量聚合,且按照某规则排序。 记住,如果数据基数大(十万、百万甚至千万级),这必然会很慢。 步骤1:全量聚合,siz

西凉的悲伤博客 4568

学Simulink——十二脉波整流电路(移相变压器)谐波抵消仿真

Y:Δ = 1:√3(若 DC 同压)— 此处同相电压故 220V(Y)=220V(Δ phase)Y(相电压=220V)、Δ(线电压=380V ⇒ 相=220V,30° 移相)可经 Lbal​=0.5mH(平衡电抗)或直接短(大 L_dc 下均流尚可)✅ 直流输出纹波频率 = 12·f_line(vs 6·f_line)直流输出 → Ldc​=50mH→Cdc​=2200µF→R=30Ω。Line‑Line RMS = 380 V(⇒ 相=220V)Vdc​≈1.35⋅380≈513V(同 6‑脉波)

xiaoheshang_123的博客 59

ElasticSearch的DSL查询⑤(ES数据聚合、DSL语法数据聚合、RestClient数据聚合)

DSL数据聚合查询,JavaApiRestClient实现绝合查询、Bucket聚合、带条件聚合、Metic聚合插,分组查询,最大值,平均值、最小值,求和,aggs代表聚合,与query同级,此时query的作用是?限定聚合的的文档范围聚合必须的三要素:聚合名称聚合类型聚合字段聚合可配置属性有:size:指定聚合结果数量order:指定聚合结果排序方式field:指定聚合字段。

weixin_57558097的博客 1955

儿童启蒙教育APP

pinyinList.add(createPinyin("a", "啊,像阿姨的阿", R.raw.pinyin_a));pinyinList.add(createPinyin("i", "衣,像衣服的衣", R.raw.pinyin_i));pinyinList.add(createPinyin("u", "乌,像乌鸦的乌", R.raw.pinyin_u));pinyinList.add(createPinyin("ü", "鱼,像小鱼的鱼", R.raw.pinyin_v));-- 固定竖屏 -->

寒寒豆豆软件公司的博客 168

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 揭秘微服务中虚拟线程日志难题:如何实现精准上下文传递与链路追踪
下一篇: 掌握JFR事件导出格式的3大核心原则,快速定位线上性能瓶颈
PixelStream
博客等级 码龄1年 177粉丝 2182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值