可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse
可观测性(Observability)是指通过系统的外部输出数据,推断其内部状态的能力。可观测性平台通过采集、存储、可视化分析三大可观测性数据:日志(Logging)、链路追踪(Tracing)和指标(Metrics),帮助团队全面洞察分布式系统的运行状态,支撑资源优化、预警机制、故障分析等,提升系统可靠性与用户体验。
SelectDB 针对可观测性场景进行倒排索引、全文检索、写入性能、存储空间等多方面优化,助力企业构建高性能、低成本、开放的可观测性平台,相对于 Elasticsearch 和云上日志服务,性能提升的同时成本降低数倍。
- 高性能: 写入性能是 Elasticsearch 的 5 倍,日志查询性能是其 2 倍,聚合统计分析性能是其 6~21 倍。
- 低成本: 以日增 100TB、保存 30 天、热数据 3 天的需求,SelectDB Cloud 成本大约 20 万/月,Elasticsearch 大约 140 万/月,云厂商日志服务大约 135 万/月。
- 易用性: 兼容 MySQL 语法;架构简洁,支持无停服自动升级、弹性扩缩容及自动负载均衡;并提供可视化集群管理 Cluster Manager。
- 开放性: 在全球主流云上(阿里云、腾讯云、华为云、AWS、Azure、GCP)提供服务,支持 OpenTelemetry、Grafana、 Kibana 等开源和商业生态,保持生态开放性和中立性。
接下来,我们将从多个角度深入分析和介绍,包括可观测性场景需求、可观测数据的特征以及各种方案之间的对比。帮助读者全面地理解可 SelectDB 可观测性方案的优势和适用性。
为什么可观测性越来越重要
可观测性平台在提升系统稳定性、优化运维效率和支持业务创新方面发挥着关键作用,近年来,可观测性的地位日益提升,主要源于以下两方面因素:
- 业务和 IT 系统越来越复杂: 随着云计算和微服务的发展,业务系统日益复杂。例如,一个 GenAI 应用的请求可能涉及到 App、服务网关、鉴权服务、计费服务、RAG 引擎、Agent 引擎、向量数据库、业务数据库、分布式缓存、消息队列、大模型 API 等数十个服务。传统依赖登录服务器查询运行状态和分析故障的方式,在复杂系统中已经不再有效。而可观测性平台统一采集和存储 Log、Trace、Metrics 数据,提供统一可视化分析,能够有效快速发现问题。
- 业务可靠性要求显著提高: 系统故障及其恢复效率直接影响用户体验。可观测性通过全域数据打通和全景可视化分析,支持团队快速定位问题根源,缩短业务中断时间,保障服务可用性。同时,依托全局数据分析和预测,能够提前发现系统资源瓶颈,预防故障发生。
如何选择可观测性解决方案
可观测性数据的特征
可观测性解决方案的核心在于如何高效应对海量数据的存储与分析挑战,而可观测性数据本身具有以下显著特征:
- 数据存储量大且对成本敏感: 可观测性数据特别是 Log 和 Trace 规模极为庞大且持续生成。对于中大型企业而言,每天产生的可观测性数据高达 100 TB 甚至 PB 量级。为了满足业务需求或监管要求,这些数据往往需要存储半年甚至更长时间,存储总量长期维持在 PB 甚至 EB 级别,带来高昂的存储成本。而随着时间的推移,这些数据的价值也在逐渐下降,因此对于可观测性平台来说,存储成本也变的更加敏感。
- 数据写入吞吐高且需要实时: 面对每天 TB 甚至 PB 量级新增数据,要求平台具备 1 ~ 10GB/s、百万 ~ 千万条/s 的高吞吐写入能力;同时,考虑到可观测性数据常用于故障排查、安全追踪等时效要求很高的场景,还要求平台保证秒级写入延迟,确保数据的实时性和可用性。
- 需要实时分析且支持全文检索: Log 和 Trace 数据中有大量的文本,如何在其中快速检索关键词和短语是该场景的核心需求。由于数据规模庞大,传统的全量扫描和字符串匹配方式在性能和扩展性上往往无法达到实时响应的要求,特别是在上述高吞吐低延迟实时写入的前提下,实时文本检索更加困难。
- 数据模式不固定且经常扩展: Log 最初始形态为非结构化原始日志,以 Free Text 的形式存在,逐步演变为以 JSON 为主的半结构化 Log 和 Trace,可自主增减 JSON 内部的字段,其数据的 Schema 非常灵活。传统严格的数据库和数据仓库已难以应对,数据湖系统虽然具备存储灵活性,但在处理性能和实时性方面却无法满足分析需求。
- 需要对接多种数据源和分析工具: 可观测性生态中包含众多数据采集器和可视化分析工具,存储与分析引擎需兼容多种生态工具,满足与多样化数据和工具的高效集成。
可观测性方案的选择
当前市场呈多元化竞争态势,Elasticsearch 、Clickhouse、SelectDB 及各大云厂商均提供了可观测性方案。如何选择合适的方案,企业需从性能、成本、易用性、开发性等方面综合评估:
-
性能:包括写入性能和查询性能。 可观测性常用于故障排查等紧急情况,一方面要求查询响应要快,特别是 Log、Trace 数据中的文本,需要实时全文检索支撑用户迭代式探索分析;另一方面要能查询到最新产生的数据,至少需查询到最近几秒的新鲜数据。
- Elasticsearch 以倒排索引和全文检索著称,提供秒级实时检索的能力,但在高吞吐下写入性能较低,高峰期容易出现写入拒绝和延迟过高的问题。其次,它的聚合统计分析能力性能也不太理想。
- SelectDB 采用列式存储和向量化引擎,针对可观测性分析场景对倒排索引进行了优化,其性能优于 Elasticsearch ,写入性能是 Elasticsearch 的 5 倍,查询性能是其 2 倍,聚合统计分析性能是 Elasticsearch 的 6~21 倍。
- Clickhouse 通过列式存储和向量化引擎,在写入和聚合查询上有显著优势,但全文检索性能相较于 Elasticsearch 或 SelectDB 存在数倍至数十倍的差距,并且当前仍处于实验阶段。
- 云厂商日志服务通过丰富的资源满足写入和查询性能,同时也带来下面的成本问题。
-
成本:包括存储成本和计算成本。 相比于业务数据,可观测性数据的存储量庞大、价值密度更低,而且随着时间的推移,这些数据的价值持续下降,迫使企业更关注存储成本。同时,海量数据写入和查询带来的计算成本也很高,GB/s 的数据写入、TB 甚至 PB 级的数据检索往往需要大量的计算资源。
- Elasticsearch 成本问题众所周知,它采用原始数据行存 + 倒排索引 + docvalue 列存的存储模式,压缩比只有 1.5:1。同时,JVM 性能开销和构建倒排导致写入时 CPU 占用很高,计算资源成本也较高。对于日增 100TB、保存 30 天、热数据 3 天的需求,Elasticsearch 成本大约 140 万/月。
- SelectDB 在可观测性场景进行性能和成本双重优化,同等负载下成本较 Elasticsearch 缩减 50% ~ 80%。存储上包括倒排索引、列式存储、ZSTD 压缩的优化,压缩比可达 5:1 ~ 10:1,结合冷热存储分层可进一步压缩成本。写入上包括单副本写入、时序 compaction 减少写放大、向量化索引构建等优化。对于日增 100TB、保存 30 天、热数据 3 天的需求,SelectDB Cloud 成本大约 20 万/月。
- Clickhouse 采用列式存储和向量化引擎,存储和写入成本也较低。
- 云厂商日志服务的成本也很高,对于日增 100TB、保存 30 天、热数据 3 天的需求,成本大约 135 万/月。
-
易用性:包括易用性和易维护性。 由于数据量庞大,可观测性平台通常采用分布式架构,其部署、扩容、缩容和升级等运维操作的便捷性直接影响平台的扩展能力。同时,系统接口设计也至关重要,既决定了平台调用底层存储的开发效率,也关系到终端用户的使用体验。
- 在 Elasticsearch 的 ELK 生态中,Kibana 提供了直观易用的 Web 界面,且易于维护管理。然而,其提供的 DSL 查询语言复杂,学习门槛很高,对于可观测性平台对接和应用开发带来较大挑战。
- SelectDB 提供与 Kibana 类似的交互式分析界面,并将对接 Kibana 和 Grafana 原生界面,查询语言采用标准 SQL 并兼容 MySQL 语法,可观测性平台开发的开发门槛和使用难度均较低。其次,SelectDB 架构简洁,支持无停服自动升级、弹性扩缩容及自动负载均衡,同时提供可视化 Cluster Manager 高效管理集群。
- Clickhouse 虽提供 SQL 接口,但语法采用独立体系,存在一定学习成本。且 Clickhouse 在维护管理上也面临很多挑战,比如本地表 + 分布式表的概念、扩缩容无法自动均衡等等,通常需要开发一套运维系统来支撑。
- 云厂商日志服务提供 SaaS 服务,用户无需自行维护系统,使用也比较方便。
-
开放性:包括开源开放和多云中立。 可观测性平台的建设还需要考虑是否会被绑定,需重点评估开源程度、多云服务支持能力及生态开放性,这些因素直接影响平台的灵活性和长期可用性。
- Elasticsearch 提供开源和商业版本,在多个云上提供服务。它的 ELK 生态比较独立,难以与其他生态打通,比如 Kibana 只支持 Elasticsearch 而且很难扩展到其他系统。
- SelectDB 是基于 Apache Doris 开源项目的商业版本,也是 Doris 社区的最大的贡献者,在全球主流云上(阿里云、腾讯云、华为云、AWS、Azure、GCP)提供服务。SelectDB 支持 OpenTelemetry、Grafana、 Kibana 等开源生态和商业生态,保持生态开放性和中立性。
- Clickhouse 提供开源和商业版本,在多个云上提供服务。Clickhouse 支持 OpenTelemetry、Grafana 等开源生态,同时收购了一家可观测性商业公司,在生态支持上将很难保持中立性。
- 云厂商日志服务会和自己的云绑定,不提供开源的选项,不同云厂商之间的产品,很难保持一致的体验或者便捷的迁移。
基于上述分析,可知 SelectDB 可以实现高性能写入和查询的同时保持很低的成本,且其架构简单、易于维护和扩展,提供简单易用的标准 SQL 接口,支持开源版本、商业版本和云上服务,确保私有化和多云部署体验一致,是构建可观测性平台的理想选择。
基于 SelectDB 的可观测性解决方案
SelectDB 针对可观测性场景的特点,在 MPP 分布式架构,结合向量化执行引擎、CBO 优化器基础增加了倒排索引以及极速全文检索能力,实现了写入性能和存储空间极致优化,能够很好的应对可观测性数据提出的挑战,使用户可基于 SelectDB 构建高性能、低成本、开放的可观测性平台。
系统架构
基于 SelectDB 的可观测性平台主要由 3 大核心部分组成:
- 数据采集和预处理:支持多种可观测性数据采集工具,包括开放的 OpenTelemetry 生态和 ELK 生态中的 Logstash、Filebeat,可通过 HTTP API 将 Log、Trace、 Metrics 数据写入 SelectDB。
- 数据存储和分析引擎:SelectDB 提供高性能、低成本的统一可观测性数据存储,并可通过 SQL 接口提供丰富的检索和分析能力。
- 查询分析和可视化:对接最常用的可观测性可视化分析工具,包括广泛使用的 Grafana 和 ELK 生态中的 Kibana,为用户提供简单易用的界面,以进行检索、分析,并设置告警规则,实现实时监控和快速响应。
基于 SelectDB 的可观测性解决方案有以下特点及优势:
- 高性能
- 高吞吐、低延迟写入:支持每天 PB 级 (10GB/s ) 的 Log、Trace、Metrics 数据持续稳定写入,同时保持延迟在秒级甚至毫秒级。
- 高性能倒排索引和全文检索:支持倒排索引、全文检索、日志场景关键词检索,并能在秒级响应,实测性能是 Clickhouse 的 3~10 倍。
- 高性能聚合分析:基于 MPP 分布式架构和向量化 Pipeline 执行引擎,充分利用集群分布式和 CPU 多线程资源,在 ClickBench 测试中实现全球领先性能,可很好支撑可观测性场景的趋势分析、监控告警等常见查询。
- 低成本
- 高压缩率和低成本存储:支持 PB 级海量存储,压缩率可达 5:1 ~ 10:1 甚至更高(包括索引),比 Elasticsearch 存储成本节省 50% ~ 80%,支持冷数据存储到 S3/HDFS,存储成本再降 50%。
- 低成本写入:同样的写入流量, SelectDB 的 CPU 资源消耗比 Elasticsearch 至少降低 70% 。
- Flexible Schema
- 顶层字段变更:可以通过 Light Schema Change 发起 ADD / DROP COLUMN / INDEX 增加 / 删除列 / 索引,并能够在秒级完成 Schema 变更。用户在规划可观测平台时,只需关注当前需要哪些字段需要创建索引。
- 字段内部变更:专门为可扩展的 JSON 数据设计了半结构化数据类型
VARIANT
,可以自动识别 JSON 中的字段名和类型,并自动拆分频繁出现的字段进行列式存储,提高压缩率和分析性能。相对于 Elasticsearch 的 Dynamic Mapping,VARIANT
允许字段的类型发生变化。
- 易用性
- 标准易用的 SQL 接口:SelectDB 支持标准 SQL、兼容 MySQL 协议和语法,基于 SelectDB 构建的可观测性平台能够使用 SQL 进行查询,对工程师和数据分析师非常友好。
- 拥抱可观测生态:兼容 OpenTelemetry 和 ELK 生态,无缝对接 Grafana 和 Kibana 等主流可视化工具,便于用户采集数据以及可视化分析。
- 运维方便:无需停服即可在线扩缩容、自动均衡;私有化部署提供可视化 Cluster Manager 和 K8s Operator 工具;云上提供开箱即用的免运维服务。
- 开放性
- 开源开放:SelectDB 是基于 Apache Doris 开源项目的商业版本,也是开源社区最大的贡献者,支持 OpenTelemetry Grafana 等开源生态和商业生态。
- 多云中立:SelectDB 已与主流云厂商(阿里云、腾讯云、华为云、AWS、Azure、GCP)合作,为用户提供多云一致的体验。
Demo & Screenshot
以下,我们通过 OpenTelemetry 社区的全方位演示 Demo ,来展示基于 SelectDB 构建的可观测性平台能力。
如下方视频所示:被观测的业务系统是一个十多个模块组成的电商网站,压力模拟程序 Load Generator 持续请求入口服务,在整个电商系统中产生大量的可观测性数据(Log、Trace、Metrics),这些数据使用 OpenTelemetry 的各种语言 SDK 进行采集,发送给 OpenTelemetry Collector,Collector 中的 Processors 进行预处理,然后经过 OpenTelemetry Doris Exporter 写入到 SelectDB,在通过 Grafana 进行可视化分析。
Grafana 通过 MySQL Datasource 连接到 SelectDB,提供统一的 Log、Trace、Metrics 可视化分析,还可以实现 Log 和 Trace 的联动。
-
Log
-
Trace
-
Metrics
Grafana 的 Log 可视化和分析能力相对于 Kibana 来说是比较简单的,因此在 SelectDB Studio 中实现了类似 Kibana Discover 的检索分析能力,未来也会集成到 Grafana Doris datasource 中,提供更好的统一 Log Trace Metrics 可视化分析能力。
此外,在未来一个季度,SelectDB 将通过兼容 Elasticsearch 查询协议,实现原生 Kibana 直接连接到 SelectDB。对于 ELK 用户而言,如果将 Elasticsearch 替换为 SelectDB,可在不改变日志采集和可视化分析使用习惯的前提下,实现降本增效的目标、降低了原用户的使用门槛。
用户声音
案例 1:观测云
观测云使用 Doris 的商业化版本 SelectDB 替代了云上的 Elasticsearch。通过 SelectDB 的倒排索引能力、Variant 数据类型、冷热数据存储分层等特性,为观测云日志存储和分析场景服务注入强大的动力,实现存储成本降低 70% 的同时,查询性能提升 2-4 倍,最终实现整体性价比 10 倍提升。
案例 2 :中信银行信用卡
为确保业务系统的稳定运行、提升运维效率和用户体验,中信银行信用卡中心建立了大规模的日志云分析平台。支持实时监控和故障排查、满足金融监管对日志审计的严格要求。目前,平台每日新增日志数据突破百 TB,全量归档日志量达 PB 级。
早期基于 Elasticsearch 构建的日志云平台面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此,卡中心引入 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
案例 3:MiniMax
MiniMax 引入阿里云数据库 SelectDB 版构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数 PB,日均新增日志写入量达数百 TB。系统在 P95 分位查询场景下的响应时间小于 3 秒,峰值时刻实现了超过 10GB/s 的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax 在优化性能的同时显著降低了建设成本,计算资源用量降低 40%,热数据存储用量降低 50%,为未来业务的高速发展和技术演进奠定了坚实基础。
结束语
基于 SelectDB 的高性能倒排索引、高吞吐量写入和高压缩存储,用户可以构建出性能高于Elasticsearch 10 倍的可观测性平台,并支持国内外多个云上便捷使用 SelectDB Cloud 的开箱即用服务。
SelectDB 将在可观测性内核能力和生态支持上持续进化,未来几个月将推出以下新功能:
- 通过 es2doris proxy 实现与原生 Kibana 的可视化分析对接,结合现有的 Logstash Doris Output Plugin,帮助 ELK 生态的用户平滑迁移到 SelectDB。
- 通过 Grafana Doris Datasource 提供 Grafana Native Support,并将类似 Kibana Discover 的交互式检索分析能力集成到 Grafana,让 Grafana 用户也能获得更好的检索分析体验。
- 增强倒排索引和全文检索能力,支持更多分词器,如 ik、icu、edge ngram,同时允许自定义组合分词器。
- 增强半结构化数据分析 VARIANT,支持不频繁字段的合并存储,并根据字段名指定类型和索引等。
相关文章:
可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse
可观测性(Observability)是指通过系统的外部输出数据,推断其内部状态的能力。可观测性平台通过采集、存储、可视化分析三大可观测性数据:日志(Logging)、链路追踪(Tracing)和指标&am…...
100个常用的DeepSeek指令
日常生活类(20个) 1. 新闻解读:请为我解读今天的热点新闻。 2. 天气查询:请查询……的天气并推荐着装。 3. 旅行攻略:请制定前往……的旅行攻略。 4. 菜谱生成:请生成……菜的具体做法。 5. 解决方案&…...
【C语言】--指针超详解(二)
目录 一.const修饰指针 1.1--const修饰变量 1.2--const修饰指针变量 二.野指针 2.1--野指针成因 2.1.1--指针未初始化 2.1.2--指针越界访问 2.1.3-- 指针指向的空间释放 2.2--如何规避野指针 2.2.1--指针初始化 2.2.2--小心指针越界 2.2.3--指针变量不再使用时&am…...
git 多个提交记录合并为一个
1.场景 有时候用devops等平台测试问题,需要多次修改小的记录提交,但是最终我们在合并主干的时候不想留那么多乱七八糟的记录,就需要在此分支合并这些提交记录,再合并到主干。 2.交互式变基 2.1 确定要合并的提交范围 # 查看最近…...
AI视频生成的艺术:镜头语言
前言 AI视频生成技术正逐渐改变我们创作和消费视频内容的方式,各式各样的AI视频制作软件正在不断的涌现,比如可灵、即梦、runway等。虽然AI视频生成的交互方式(自然语言)极大的减少了我们创作视频的门槛,但要让AI正确理解并创造出符合我们期望的视频,我们可能还是需要了解…...
机器学习与深度学习
目录 一、机器学习 (一)机器学习的分类 1. 监督学习 2. 无监督学习 3. 强化学习 (二)机器学习的应用场景 二、深度学习 (一)深度学习的核心原理 (二)常见的深度学习模型 …...
数字孪生市场格局生变:中国2025年规模214亿,工业制造领域占比超40%
一、技术深度解析:数字孪生的核心技术栈与演进 1. 从镜像到自治:数字孪生技术架构跃迁 三维重建突破:LiDAR点云精度达2cm,无人机测深刷新频率5Hz,支撑杭州城市大脑内涝预警模型提前6小时预测。AI算法融合:…...
数字孪生[IOC]常用10个技术栈(总括)
1. 什么是数字孪生? 数字孪生(Digital Twin) 是通过数字化技术对物理实体(如设备、系统或环境)进行高精度建模和实时映射的虚拟副本。其核心是通过 数据驱动 实现物理世界与虚拟世界的双向交互,支持实时监控…...
WPF主窗体子窗体关联方法
步骤: 1、创建WPF项目 2、设计主窗体,选定显示子窗体的区域(MainWindow.xaml) 3、在想要显示子窗体的区域填写如下代码(MainWindow.xaml) 4、创建子窗体 5、建立调用子窗体事件,下图一是load事件,也可以是…...
笔记本电脑实现网线内网 + Wi-Fi外网同时使用的配置方案
1、同时连接两个网络 插入网线连接内网,确保内网IP地址正常获取(如10.143.88.x);连接Wi-Fi接入外网,确认可正常访问互联网(如网关为192.168.8.1)。 2、 记录关键网络参数 内网网关&#…...
探讨关于智能体(Agent)结合 Dify、大语言模型(LLM)以及 Qwen-3 模型的项目或概念
1. Dify 的作用 Dify 是一个开源的 AI 框架,它可以帮助开发者快速搭建和部署 AI 应用。它可以作为一个基础架构,为智能体提供以下支持: 应用开发与部署:Dify 可以帮助开发者快速搭建智能体的前端和后端架构,包括用户界…...
2025 后端自学UNIAPP【项目实战:旅游项目】3、API接口请求封装,封装后的简单测试以及实际使用
一、创建请求封装目录 选中自己的项目,右键鼠标---->新建---->目录---->名字自定义【我的是api】 二、创建两个js封装文件 选中封装的目录,右键鼠标---->新建---->js文件---->名字自定义【我的两个js文件分别是my_http和my_api】 三…...
【electron+vue】常见功能之——调用打开/关闭系统软键盘,解决打包后键盘无法关闭问题
效果图展示 实现思路:通过input标签聚焦失焦的方式,实现系统软键盘的显示隐藏。 使用场景:一体机电脑,无外接键盘。 html <el-input v-model"idNumber" placeholder"请输入" focus"showKeyboard&qu…...
告别手动输入密码:基于SSHPass的自动化文件传输实践告别手动输入密码:基于SSHPass的自动化文件传输实践
一、运维人员的共同痛点 在日常运维工作中,我们经常需要在多台服务器之间传输文件。传统的手动操作方式需要反复执行以下步骤: 输入scp命令等待密码提示输入复杂密码确认传输结果手动修改文件权限 这种重复劳动不仅效率低下,在批量操作时更…...
Python序列Day3
序列 序列是一种数据存储方式,用方括号标注,逗号分隔的一组值。在内存中,序列就是一块用来存放多个值的连续的内存空间。 常见序列结构有:字符串、列表、元组、字典、集合 列表 用于存储任意数目,任意类型的数据集…...
22、近端策略优化算法(PPO)论文笔记
近端策略优化算法(PPO)论文笔记 一、研究背景与目标二、**方法****3.1 策略梯度基础****3.2 信任区域方法(TRPO)****3.3 剪切代理目标函数(LCLIP)****3.4 自适应KL惩罚系数****3.5 算法实现** 三、 L CLIP…...
web 自动化之 selenium+webdriver 环境搭建及原理讲解
文章目录 一、web 自动化测试学习说明二、什么 web 自动化测试三、selenium 简介四、web自动化测试环境搭建五、web 自动化测试第一个脚本六、selenium 原理及源码讲解 一、web 自动化测试学习说明 进阶 web 自动化测试学习:掌握 python 编程基础 二、什么 web 自…...
Vue3快速入门/Vue3基础速通
Vue3 渐进式的javascript框架,我们可以逐步引入vue的功能 官方文档 Vue.js中文手册 你可以借助 script 标签直接通过 CDN 来使用 Vue: <script src"https://unpkg.com/vue3/dist/vue.global.js"></script>通过 CDN 使用 Vue 时…...
Babylon.js学习之路《一、初识 Babylon.js:什么是 3D 开发与 WebGL 的完美结合?》
文章目录 1. 引言:3D 开发在 Web 中的崛起1.1 为什么需要 Web 3D 开发?1.1 WebGL 的定位与挑战 2. Babylon.js 的核心定位2.1 什么是 Babylon.js?2.2 Babylon.js 的独特优势2.3 对比其他 Web 3D 框架(Three.js、PlayCanvas&#x…...
v-model原理详解
一 :value"msg 在 Vue.js 中,v-bind 指令(简写为 :)用于将数据属性绑定到 HTML 元素的属性上。当你使用 :value"msg" 时,它的作用是将 Vue 实例中的 msg 数据属性绑定到目标元素的 value 属性上。 1.value 属性…...
并发与并行的关系
并发(Concurrency)与并行(Parallelism)的本质区别 1. 核心定义 并发:多个任务在重叠的时间段内交替执行,但不一定是同时的。 关注的是任务的组织方式(如多任务调度、逻辑上的同时性)…...
uniapp 微信小程序使用图表
使用的是秋云 ucharts 直接在hbuilder插件市场进行下载导入项目中,多端支持 下载地址秋云 ucharts echarts 高性能跨全端图表组件 - DCloud 插件市场 导入成功后这里就能看到导入的插件啦 导入项目后就可以直接在页面中通过组件使用了 不需要其余配置 使用简单 参…...
基于vm加密的php逆向分析
前言 对于 php 主流的加密方式有两种: 1、基于扩展的 2、本地加密,不涉及扩展 一些在 php 端通过 zend_compile_file 等函数就可以直接 dump 出原代码的,称之为加密实在是抬举了 之前有写过一篇直接 dump 出源码的分析 https://blog.qc7…...
FPGA----基于ALINX提供的debian实现TCF
引言:接上问,我们使用自制的image.ub和boot.bin以及ALINX提供的debian8根文件系统,构建了petalinux,但是经测试,该文件系统无法启用TCF服务,即无法与Xilinx SDK建立连接,那么我们应该如何解决&a…...
基于Transformer的多资产收益预测模型实战(附PyTorch实现与避坑指南)
基于Transformer的多资产收益预测模型实战(附PyTorch模型训练及可视化完整代码) 一、项目背景与目标 在量化投资领域,利用时间序列数据预测资产收益是核心任务之一。传统方法如LSTM难以捕捉资产间的复杂依赖关系,而Transformer架…...
SQL:MySQL函数:字符串函数
目录 为什么需要字符串函数? 1️⃣ LENGTH(str) — 这个字符串有几个“字节”? 2️⃣ CHAR_LENGTH(str) — 这个字符串有几个“字符”? 3️⃣ TRIM(str) — 把两边的空格剪掉 4️⃣ REPLACE(str, a, b) — 把 a 替换成 b 使用这些函数时…...
C++-缺省参数
缺省参数 缺省参数也叫默认参数 指的是在函数参数的位置,提前定义一个缺省值(即提前定义一个值),当函数接收到参数时,如果定义缺省值的位置未接收到参数,那么这个位置会自动使用缺省值 通过定义缺省参数…...
MySQL 数据库
目录 1. 数据库简介 1.1 使用数据库的必要性 1.2 数据库的基本概念 1.3 经典数据模型 2. MySQL 服务基础 2.1 MySQL 的二进制安装 2.1.1 基础环境准备 2.1.2 二进制安装 2.1.3 设定配置文件 1. 数据库简介 1.1 使用数据库的必要性 使用数据库可以高效且条理分明地存…...
探寻养生新路径,守护健康生活
在忙碌的现代生活中,人们对健康养生的需求愈发迫切。养生不一定要遵循复杂的规则,从一些新颖且实用的方面入手,同样能收获健康的馈赠。 关注肠道菌群的平衡是养生的关键。肠道内居住着数以万亿计的微生物,它们与人体健康息息相…...
平板收银系统、国产系统,鸿蒙系统,小键盘的封装与应用—仙盟创梦IDE
数字小键盘封装 数组小键盘封装是指将与数组小键盘相关的功能、操作、数据等进行整合,形成一个独立的、可复用的模块。封装数组小键盘具有以下几方面重要意义: 提高代码可维护性 降低复杂度:数组小键盘在实际应用中,可能涉及到…...
微软推动智能体协同运作:支持 A2A、MCP 协议
今日凌晨,微软宣布 Azure AI Foundry 和 Microsoft Copilot Studio 两大开发平台支持最新 Agent 开发协议 A2A,并与谷歌合作开发扩大该协议,这一举措对智能体赛道意义重大。 现状与变革意义 当前智能体领域类似战国时代,各家技术…...
《企业级前端部署方案:Jenkins+MinIO+SSH+Gitee+Jenkinsfile自动化实践》
文章目录 前言前端项目CICD时序图一、环境准备1、服务器相关2、Jenkins凭据3、注意事项 二、设计思想1. 模块化设计2.多环境支持3. 制品管理4. 安全部署机制5. 回滚机制 三、CI阶段1、构建节点选择2、代码拉取3、代码编译4、打包并上传至minio 四、CD阶段五、回滚阶段六、构建通…...
数据库的进阶操作
目录 1、数据库的约束 2、查询操作的进阶 2.1 查询插入 2.2 聚合查询 2.3 运算查询 2.3 分组查询 2.4 联合查询 2.5 内外连接 2.6 子查询 2.7 合并查询 1、数据库的约束 数据库的约束是指:数据库会自动的对数据的合法性进行校验和检查的一系列操作的机制&a…...
小刚说C语言刷题—1341银行存款问题
1.题目描述 亮亮把 n 元按照 m 年期整存存入银行,按照目前银行的年利率,请问到期后亮亮可以连本带息总共拿到多少钱? 存期(整存整取) 年利率 1年 3.25% 2年 3.75% 3年∼4 年 4.25% 5年及 5年以上 4.75% 输入…...
15 个 Azure DevOps 场景化面试问题及解答
问题 1. 解释 Azure DevOps YAML 管道的典型结构。 您可以从管道的整体结构开始,从触发器开始。您也可以选择解释它可能包含的不同类型的阶段:构建、测试、扫描、部署等。 Azure DevOps YAML 管道结构示例 触发器指示管道运行。它可以是持续集成 (CI) 或…...
spring cloud 跨服务调用
微服务将不同功能模块拆分成多个不同的服务,在业务逻辑集成时候,难免会有一个服务需要依赖调用另一个服务的情况。如订单服务需要通过用户服务查询用户相关信息,这时候微服务之间就需要进行跨服务调用。 要想进行跨服务调用,服务…...
手机隐私数据彻底删除工具:回收或弃用手机前防数据恢复
软件介绍 有这样一款由吾爱网友chenwangjun 原创开发的数据处理软件,名为 AndroidDiskClear。它的核心功能十分强大,能够将你手机里已经删除的各类文件,像图片、普通文件、文字信息等彻底清除干净,有效杜绝数据恢复类软件的二次恢…...
【Electron】electron-vue 借助 element-ui UI 库助力桌面应用开发
前面文章我们讲过 electron 让可以用 HTML、JS、CSS 开发桌面应用程序。而 electron-vue 是一个结合了 electron 与 vue 的套件。这样我们就能方便地使用 vue 快速开发桌面应用。但是,vue 只是在 js 这层面做了大量的便捷的操作。对 UI 并未过多涉及。此时如果您在开…...
《信息论与编码课程笔记》——信源编码(1)
目录 一、信源编码基本概念 1. 定义与目的 2. 编码示例 3. 编码分类 4. 唯一可译码的判断标准 5. 编码评价指标 二、香农第一定理(无失真可变长信源编码定理) 1. 核心内容 2. 关键概念与指标 3. 数据压缩的本质 4. 例子与启示 5. 定理的意义…...
2022年8月,韩先超对中移信息进行微服务架构原理(Docker+k8s+DevOps+Go等)培训
2022年8月,韩先超对中移信息进行微服务架构原理(Dockerk8sDevOpsGo等)培训 2022年8月,在企业数字化转型和云原生架构加速演进的背景下, 中移信息技术有限公司特别邀请云原生与DevOps领域专家 韩先超老师,…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.4 数据故事化呈现(报告结构设计/业务价值提炼)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 8.4 数据故事化呈现:从报告结构到业务价值的深度融合一、数据故事化的核心价值体系(一)报告结构设计的黄金框架1. 业务场景锚定ÿ…...
Docker 核心目录结构
1. Docker 核心目录结构 数据存储目录 默认根目录:/var/lib/docker Docker 所有运行时数据(镜像、容器、卷、网络配置等)的默认存储位置。 bash 复制 下载 # 查看 Docker 数据根目录 docker info | grep "Docker Root Dir" # 输出…...
【工具推荐】Code2Prompt
DeepWiki工具可以帮我们快速理解 GitHub 项目,简直是理解陌生开源项目的利器! 但是,它有个小小的“遗憾”——只能解析在线的 GitHub 项目。 如果是本地项目怎么办,还要特意上传,no,code2prompt 就是一款…...
OpenCV定位地板上的书
任务目标是将下面的图片中的书本找出来: 使用到的技术包括:转灰度图、提取颜色分量、二值化、形态学、轮廓提取等。 我们尝试先把图片转为灰度图,然后二值化,看看效果: 可以看到,二值化后,书的…...
Spring Cloud:概述,服务注册和服务发现,多机部署和负载均衡
什么是微服务 就是将一个大型的应用程序拆分成多而小的独立的服务模块,每个服务模块围绕某个业务功能建立,具有独立的数据库,服务栈,并通过轻量级的通信协议进行交互。 单体架构 就是将所有的业务和功能都打包在一个jar包中&…...
Linux的基础开发工具
目录 前言: 1、包管理器yum 1.1 软件包的依赖 1.2 镜像源 1.3 查找/安装/卸载软件 2、编辑器vim 2.1 命令模式(默认) 2.1.1 撤销与反撤销 2.1.2 光标定位 2.1.3 复制&&剪切(删除)&&粘贴 2.1.4 替换 2.1.5 插入模式 2.1.6 V-Block模式 …...
解锁跨平台开发的新时代——Compose Multiplatform
解锁跨平台开发的新时代——Compose Multiplatform 在当今移动和桌面应用程序开发领域,跨平台解决方案是开发者们梦寐以求的工具。而由JetBrains打造的Compose Multiplatform正是这样一款现代UI框架,它基于Kotlin技术,为开发者构建高性能且美观的用户界面提供了极大的便利和…...
键盘固件刷写详解:Bootloader
键盘固件刷写详解:从入门到精通 引言 作为一名机械键盘爱好者,相信大家都曾经面临过刷写固件的问题。无论是想要自定义按键功能,还是升级键盘的固件,掌握刷写技巧都是非常必要的。本文将全面介绍不同类型的引导加载程序…...
网络原理初识
本来想从网络的发展史开始写,之后再写网络的定义啥的,但快写完了才发现,这不课本教材吗,没劲,遂弃之,重撰,删芜就简.写点我认为,对程序员来说真正有用的东西 目录 IP地址 概念 格式 特殊地址 端口号 概念 格式 协议 概念 知名协议的默认端口 五元组 协议分层 OS…...
PVP鼠标推荐(deepseek)
下面有不懂的自行百度查找👍 ❤️ 以下是几款在 双击性能(DBC) 和 拖拽点击(DC) 方面表现优秀的游戏鼠标推荐,结合了硬件性能、微动寿命以及玩家口碑: 1. 罗技 G102/G203 Lightsync 特点&#…...