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

Doris和Clickhouse对比

目录

    • 一、Doris和Clickhouse对比
      • **1. 底层架构**
        • **Doris**
        • **ClickHouse**
      • **2. 运行原理**
        • **Doris**
        • **ClickHouse**
      • **3. 使用场景**
        • **Doris**
        • **ClickHouse**
      • **4. 优缺点对比**
      • **总结**
    • 二、MPP架构和Shared-Nothing 架构对比
      • **1. 什么是 MPP 架构?**
        • **定义**
        • **特点**
        • **典型代表**
      • **2. 什么是 Shared-Nothing 架构?**
        • **定义**
        • **特点**
        • **典型代表**
      • **3. MPP 和 Shared-Nothing 架构的区别**
      • **4. 使用场景对比**
        • **MPP 架构适用场景**
        • **Shared-Nothing 架构适用场景**
      • **5. 举例说明**
        • **MPP 架构(以 Doris 为例)**
        • **Shared-Nothing 架构(以 ClickHouse 为例)**
      • **6. 总结**

Doris 和 ClickHouse 都是非常流行的分布式数据库系统,主要用于处理大规模数据分析任务。它们在底层架构、运行原理和使用场景上有显著的区别。以下是详细对比:

一、Doris和Clickhouse对比

1. 底层架构

Doris
  • 架构设计:Doris 是基于 Google 的开源项目 Apache Impala 和 Apache Kudu 的设计理念,后来由百度开源并捐赠给 Apache 基金会(现在是 Apache Doris)。它采用了 MPP(Massively Parallel Processing)架构,支持分布式计算。
  • 组件
    • FE(Frontend):负责 SQL 解析、查询优化、元数据管理等。
    • BE(Backend):负责实际的数据存储和查询执行。
  • 存储引擎:Doris 内置了列式存储引擎,支持高效的压缩和数据读取,适合 OLAP(在线分析处理)场景。
  • 分布式架构:通过分片(Shard)和副本(Replica)机制实现数据的分布式存储和高可用性
ClickHouse
  • 架构设计:ClickHouse 是由 Yandex 开发的列式存储数据库,专为 OLAP 场景设计。它采用 Shared-Nothing 架构,所有节点独立运行,数据分布式存储。
  • 组件
    • 单节点架构:ClickHouse 的每个节点都可以独立运行,支持分布式查询。
    • 分布式表:通过分布式表实现跨节点的数据查询。
  • 存储引擎:ClickHouse 也是基于列式存储,支持 MergeTree 等多种存储引擎,提供强大的数据分区和索引功能。
  • 分布式架构:通过分区和分片机制实现数据分布式存储,支持水平扩展

2. 运行原理

Doris
  • 查询优化:Doris 使用基于成本的查询优化器(CBO),能够对复杂的 SQL 查询进行优化。
  • 数据分布:数据通过分片和副本机制分布在多个 BE 节点上,支持负载均衡和高可用。
  • 执行模型:Doris 的查询执行采用流式处理方式,支持高并发查询。
  • 索引机制:支持主键索引和二级索引,能够加速查询。
ClickHouse
  • 查询优化:ClickHouse 的查询优化器更偏向规则优化,适合处理简单的查询,复杂查询优化能力相对较弱。
  • 数据分布:通过分布式表将数据分布在多个节点上,支持水平扩展。
  • 执行模型:ClickHouse 使用向量化执行模型,能够高效处理批量数据。
  • 索引机制:ClickHouse 支持稀疏索引(Sparse Index),主要通过数据分区和主键索引加速查询。

3. 使用场景

Doris
  • 适用场景
    • 实时数据分析:Doris 支持高吞吐的实时数据写入和查询,适合处理实时数据分析场景。
    • 复杂 SQL 查询:Doris 对复杂 SQL 查询的支持较好,适合数据仓库场景。
    • 数据集成:支持多种数据源的集成(如 Kafka、Hive 等),适合构建统一的数据分析平台。
  • 典型应用
    • BI 报表
    • 用户行为分析
    • 实时推荐系统
ClickHouse
  • 适用场景
    • 高性能查询:ClickHouse 在处理简单查询和聚合操作时性能极高,适合日志分析和监控场景。
    • 时序数据分析:ClickHouse 对时序数据的支持非常强,适合处理监控数据和指标数据。
    • 数据写入量较低的场景:ClickHouse 的写入性能相对较弱,更适合以查询为主的场景。
  • 典型应用
    • 日志分析
    • A/B 测试
    • 数据监控和告警

4. 优缺点对比

特性DorisClickHouse
查询性能优秀,尤其是复杂 SQL 查询极高,适合简单聚合查询
实时写入能力支持高吞吐实时写入写入性能较弱,适合批量写入
扩展性支持分布式扩展,易于管理支持分布式扩展,但管理复杂
生态支持支持多种数据源集成集成能力较弱,需额外开发
学习曲线较为简单,易于上手较陡,需深入理解原理

总结

  • 如果你的场景需要处理复杂 SQL 查询、实时数据分析,并且对数据集成能力有较高要求,Doris 是更好的选择。
  • 如果你的场景以高性能查询为主,数据写入量较低,或者是时序数据分析场景,ClickHouse 是更适合的工具。

根据具体业务需求选择合适的数据库系统,可以最大化性能和效率!如果有具体的业务场景,可以进一步讨论如何优化选择。

二、MPP架构和Shared-Nothing 架构对比

MPP(Massively Parallel Processing)架构和 Shared-Nothing 架构是两种常见的分布式数据库架构,它们在设计理念和实现方式上有显著的区别。以下是详细解释及对比:

1. 什么是 MPP 架构?

定义
  • MPP(Massively Parallel Processing,海量并行处理)架构是一种分布式计算架构,通常由多个独立的节点组成,每个节点都有自己的 CPU、内存和存储设备。
  • 在 MPP 系统中,任务被分解为多个子任务并行地分发到不同的节点上执行,然后将结果汇总
特点
  • 强协作:节点之间通过高速网络进行通信和协作,通常需要一个中心节点(或控制节点)来协调任务
  • 数据分片:数据被水平分片(Sharding)存储在不同的节点上,每个节点负责处理自己存储的数据。
  • 任务分发:查询被拆分为多个子任务,由多个节点并行执行。
  • 高性能:适合处理复杂查询和大规模数据分析任务。
典型代表
  • Apache Doris
  • Greenplum
  • Amazon Redshift
  • Teradata

2. 什么是 Shared-Nothing 架构?

定义
  • Shared-Nothing 架构是一种分布式系统设计理念每个节点完全独立,拥有自己的 CPU、内存和存储,节点之间没有共享的资源。
  • 在 Shared-Nothing 系统中,数据被分布式存储在各个节点上,节点之间通过网络通信,但尽量减少交互。
特点
  • 完全独立:每个节点独立运行,节点之间没有共享的内存或存储资源。
  • 分布式存储:数据被分片存储在不同的节点上,查询时通过分布式表进行全局访问
  • 去中心化:没有单一的控制节点,通常通过分布式协议(如 Gossip 协议)实现节点间的协调
  • 高扩展性:适合水平扩展,新增节点时无需对现有节点进行较大改动。
典型代表
  • ClickHouse
  • Apache Cassandra
  • Google Bigtable
  • Amazon DynamoDB

3. MPP 和 Shared-Nothing 架构的区别

特性MPP 架构Shared-Nothing 架构
资源共享节点之间通过网络协作,可能有部分资源共享每个节点完全独立,无共享资源
任务协调通常有一个中心节点负责任务分发和协调无中心节点,节点之间通过分布式协议协作
查询优化支持复杂查询优化,适合复杂 SQL 和 OLAP 场景查询优化能力较弱,更适合简单查询和聚合
扩展性扩展性较好,但需要协调节点间的资源和任务扩展性极高,新增节点对现有系统影响较小
性能对复杂查询性能优异,适合大规模数据分析对简单查询性能极高,适合实时和高频查询
应用场景数据仓库、BI 分析、实时数据分析日志分析、时序数据处理、监控系统
数据分布和存储数据通过分片存储,节点间可能会有数据交换数据分片存储,尽量减少节点间的数据交互
故障恢复通常需要中心节点协调恢复节点独立,单节点故障对整体影响较小

4. 使用场景对比

MPP 架构适用场景
  • 复杂 SQL 查询:需要执行复杂的 JOIN、子查询、窗口函数等操作。
  • 大规模数据分析:需要高吞吐量和强大的查询优化能力。
  • 数据仓库:适合构建企业级数据仓库,支持多维度分析。
Shared-Nothing 架构适用场景
  • 高并发查询:需要支持大量的简单查询和聚合操作。
  • 实时数据处理:适合处理时序数据、日志数据和监控数据。
  • 水平扩展:需要频繁扩展节点以支持数据增长。

5. 举例说明

MPP 架构(以 Doris 为例)
  • 假设有一个复杂的 SQL 查询:需要对用户行为数据进行多表 JOIN 和聚合分析。
  • Doris 会将查询分解为多个子任务,分发到不同的 BE 节点上执行,每个节点处理自己负责的数据分片。
  • BE 节点之间需要协作,交换中间结果,最终由 FE 节点汇总结果。
Shared-Nothing 架构(以 ClickHouse 为例)
  • 假设有一个简单的查询:统计某个时间段内的访问日志数量。
  • ClickHouse 的每个节点独立存储自己的日志数据分片,查询时直接在本地节点上执行聚合操作。
  • 节点之间几乎没有数据交互,最终将各节点的部分结果汇总。

6. 总结

  • MPP 架构 更适合需要复杂查询优化和节点间协作的场景,例如企业数据仓库和 BI 报表。
  • Shared-Nothing 架构 更适合高并发、简单查询和实时分析的场景,例如日志分析和监控系统。

选择哪种架构取决于业务需求。如果你的系统需要处理复杂的 SQL 查询,推荐 MPP 架构;如果你的系统需要处理高并发的简单查询,推荐 Shared-Nothing 架构。

相关文章:

Doris和Clickhouse对比

目录 一、Doris和Clickhouse对比**1. 底层架构****Doris****ClickHouse** **2. 运行原理****Doris****ClickHouse** **3. 使用场景****Doris****ClickHouse** **4. 优缺点对比****总结** 二、MPP架构和Shared-Nothing 架构对比**1. 什么是 MPP 架构?****定义****特点…...

思考:(linux) tmux 超级终端快速入门的宏观思维

tmux 工具集合 GitHub - rothgar/awesome-tmux: A list of awesome resources for tmux 要点: 习惯性思维的变换与宿主机之间的双向复制、粘贴手动备份全部窗口,以及还原自定义窗格提示信息TPM 插件的安装思想别名 在有些场景里,可能无法…...

JavaScript基础-全局作用域

在JavaScript中,理解不同种类的作用域是掌握这门语言的关键之一。作用域决定了变量和函数的可访问性(即可见性和生命周期)。其中,全局作用域是最基本也是最宽泛的作用域类型。本文将深入探讨全局作用域的概念、特点及其使用时需要…...

【MCAL】TC397+EB-tresos之I2c配置实战(同步、异步)

I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信。本篇文章首先从理论讲起,介绍了英飞凌TC3x系列芯片对应MCAL中对I2C驱动的定义与介绍,建议读者在阅读本篇文章之前对I2C有个简单的认识…...

电网拓扑分析:原理与应用

在现代电力系统中,电网拓扑分析是一项至关重要的技术,它为电力系统的安全、稳定和高效运行提供了坚实的基础。电网拓扑描述了电力系统中各元件(如发电机、变压器、输电线路、负荷等)之间的连接关系,通过拓扑分析&#…...

leetcode-hot-100(哈希)

写在前面 这部分官方标记为哈希,下面的代码使用的都是 C 进行实现,说到 C 中的哈希,需要了解一下 C 中的 hashtable(std::unordered_map或std::unordered_set)。 std::unordered_map std::unordered_map 是一个存储…...

音频类网站或者资讯总结

我爱音频网: 我爱音频网 - 我们只谈音频,丰富的TWS真无线蓝牙耳机拆解报告 (52audio.com) 其他更多资讯 音频行业全品类深度剖析,2024市场趋势解读汇总-EDN 电子技术设计 (ednchina.com)...

优选算法——前缀和

目录 1. 数组的中心下标 2. 除自身以外数组的乘积 3. 和为k的子数组 4. 和可被K整除的子数组 5. 连续数组 6. 矩阵区域和 1. 数组的中心下标 题目链接:724. 寻找数组的中心下标 - 力扣(LeetCode) 题目展示: 题目分析&am…...

VScode密钥(公钥,私钥)实现免密登录【很细,很全,附带一些没免密登录成功的一些解决方法】

一、 生成SSH密钥对 ssh-keygen 或者 ssh-keygen -t rsa -b 4096区别:-t rsa可以明确表示生成的是 RSA 类型的密钥-b参数将密钥长度设置为 4096 位默认:2048 位密钥不指定-t参数,ssh -keygen默认也可能生成 RSA 密钥【确保本机安装ssh&#…...

MySQL进阶篇2_SQL优化、锁

文章目录 1 SQL优化1.1插入数据优化1.2主键优化页分裂页合并主键设计原则 1.3order by设计优化1.4group by设计优化小理解 1.5limit设计优化顺序IO和随机IO小疑惑 1.6count设计优化1.7update优化关于隐式事务事务的DML操作 锁全局锁表级锁表锁元数据锁意向锁 行级锁锁的释放条件…...

Yocto项目实战经验总结:从入门到高级的全面概览

本文面向开发者和实际项目经验者,分享经过大量实战积累的 Yocto 项目工程经验和基础技巧。本文简明但精彩,应用和观察相结合,充分适合做为全面进阶 Yocto 项目开发的实用指南。 一、入门理解:Yocto 是什么?规划如何开始…...

关于web3

主流看法,集合当前网络上的大部分资料的看法? 基于区块链运行的交易系统?面向的交易市场是基于世界的,由于将整个世界的交易联系起来,所以底层区块链就类似于一个非常大的分布式系统,由于需要在各个地区都…...

以影像为笔,劳润智在世界舞台上书写艺术之路

在光影交织中,摄影师劳润智的镜头仿佛能穿透喧嚣,捕捉人类情感最细腻的脉动。从疫情下洛杉矶裁缝日常的温馨瞬间,到象征自由与解脱的飞鸟影像,再到探索时间与空间交错的抽象作品,每一幅作品都展现了他对艺术的深度追求与对生活的温柔洞察。 劳润智的作品为他赢得了多个国际奖项…...

2025python学习笔记

一.Python语言基础入门 第一章 01.初识Python Python的起源: 1989年,为了打发圣诞节假期,Gudio van Rossum吉多范罗苏姆(龟叔)决心开发一个新的解释程序(Python维形)1991年,第一个…...

数学相关使用笔记

1、样本标准差计算步骤整理 1. 基础数据 数据样本:[44.530, 44.023, 43.837, 44.213, 44.498] 样本量:n5 2. 计算步骤 (1) 求均值 总和 44.53044.02343.83744.21344.498 221.101 均值 221.101/5 44.2202 (2) 求平方差 ① (44.530-44.2202) 0.3…...

0.环境初始化

容器化部署 Nginx 前端文件在 html\hmdp 下,挂载到 /usr/share/nginx/html 下 所以要求 nginx.conf : root /usr/share/nginx/html; index index.html; 反向代理:proxy_pass http://host.docker.internal:8081; listen 80; 因为容器内端…...

数仓-范式建模、维度建模、雪花模型、星型模型对比及其适用范围

1. 范式建模 定义 范式建模是一种基于关系型数据库设计的建模方法,遵循数据库的范式规则(如第一范式、第二范式、第三范式等),通过消除数据冗余、规范化字段和表结构来优化存储。数据被分解为多个表,通过外键关系进行…...

批量导出docker镜像

#!/bin/bash # 创建备份目录 BACKUP_DIR"docker_images_single_backup" mkdir -p "$BACKUP_DIR" # 遍历所有镜像 docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | while read -r line; do # 提取镜像名称和ID REPO_TAG$(echo …...

棒球裁判员学习指南·棒球1号位

针对棒球裁判员的规则学习与能力提升指南,包含系统性学习路径和实践建议,帮助裁判员高效掌握规则并提升执法水平: 一、基础规则体系构建 1. 官方规则精读 核心文件:完整研读《世界棒垒球联盟(WBSC)官方规…...

vue注册用户使用v-model实现数据双向绑定

定义数据模型 Login.vue //定义数据模型 const registerData ref({username: ,password: ,confirmPassword: })使用 v-model 实现数据模型的key与注册表单中的元素之间的双向绑定 <!-- 注册表单 --><el-form ref"form" size"large" autocompl…...

BM14 链表的奇偶重排

20250510 题目我的解法❗️问题描述&#xff1a;为什么会报 OutOfMemoryError&#xff1f;&#x1f50d;详细分析✅如何修复&#xff1f;✅推荐修改方案&#xff08;正确版本&#xff09;✅为什么这样改有效&#xff1f;&#x1f9ea;测试示例✅总结 修改 题目 我的解法 impor…...

Client 和 Server 的关系理解

client.py 和 server.py 是基于 MCP&#xff08;Multi-Component Protocol&#xff09;协议的客户端-服务端架构&#xff0c;二者的关系如下&#xff1a; 1. 角色分工 server.py&#xff1a;服务端&#xff0c;负责注册和实现各种“工具函数”&#xff08;如新闻检索、情感分…...

Checkmk实战指南:从零构建企业级监控系统

在当今复杂的IT环境中,监控系统如同运维团队的"眼睛"和"耳朵",而Checkmk正是一款能够帮助企业实现全方位监控的开源利器。本文将带您从零开始,通过8个关键步骤构建一个功能完备的监控系统,涵盖从安装部署到高级优化的完整流程。 一、为什么选择Checkm…...

多模态大模型中的视觉分词器(Tokenizer)前沿研究介绍

文章目录 引言MAETok背景方法介绍高斯混合模型&#xff08;GMM&#xff09;分析模型架构 实验分析总结 FlexTok背景方法介绍模型架构 实验分析总结 Emu3背景方法介绍模型架构训练细节 实验分析总结 InternVL2.5背景方法介绍模型架构 实验分析总结 LLAVA-MINI背景方法介绍出发点…...

车载电子电器架构 --- 汽车网关概述

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

JVM对象创建内存分配

对象创建的主要流程&#xff1a; 检查加载类–》分配内存–》初始化–》设置对象头–》实例化&#xff0c;执行init方法。 在内存分配中&#xff0c;虚拟机将为新生对象内存分配 Minor GC : 新生代垃圾收集&#xff0c;特点是频繁&#xff0c;回收速度快&#xff1b; Full GC …...

project从入门到精通(五)

目录 创建资源的基本信息 在project中创建资源工作表 ​编辑信息详解 最大单位 标准费率与加班费率 每次使用成本 成本累算 基准日历 三类资源工作表的总结——不同的资源必须要设置的属性 除了资源名称是必须设置的之外&#xff0c;剩余的资源的可设置选项如下图所…...

研发效率破局之道阅读总结(5)管理文化

研发效率破局之道阅读总结(5)管理文化 Author: Once Day Date: 2025年5月10日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 程序的艺术_Once-Day…...

Java常用类概述

Java常用类概述 一、字符串三剑客1. String&#xff08;不可变字符串&#xff09;2. StringBuilder&#xff08;可变&#xff0c;线程不安全&#xff09;3. StringBuffer&#xff08;可变&#xff0c;线程安全&#xff09; 二、日期时间类&#xff08;重点掌握新版API&#xff…...

202535| Kafka架构与重要概念+幂等性+事务

好的&#xff01;以下是关于 Kafka 架构 以及其 重要概念 的详细介绍&#xff0c;结合 Mermaid 图形 和 表格&#xff0c;帮助你更好地理解各个概念的关系和作用。 Kafka 架构与重要概念 Kafka 是一个分布式消息系统&#xff0c;广泛应用于日志收集、流处理、事件驱动架构等场…...

MySQL 索引和事务

目录 一、MySQL 索引介绍 1、索引概述 2、索引作用 3、索引的分类 &#xff08;1&#xff09;普通索引 &#xff08;2&#xff09;唯一索引 &#xff08;3&#xff09;主键索引 &#xff08;4&#xff09;组合索引&#xff08;最左前缀&#xff09; &#xff08;5&…...

IPFS与去中心化存储:重塑数字世界的基石

引言 在数据爆炸式增长的数字时代&#xff0c;中心化存储的弊端日益凸显——数据垄断、隐私泄露、单点故障等问题频发。IPFS&#xff08;InterPlanetary File System&#xff09; 作为一种去中心化存储协议&#xff0c;正与区块链技术共同推动一场存储革命。本文将深入解析IPF…...

Web3 学习全流程攻略

目录 🧭 Web3 学习全流程攻略 🌱 第一阶段:打好基础(Web3 入门) 🧠 目标: 📚 学习内容: ✅ 推荐资源: 🧑‍💻 第二阶段:技术栈搭建(成为 Web3 开发者) 🧠 目标: 📚 学习内容: ✅ 推荐资源: 🌐 第三阶段:构建完整 DApp(去中心化应用)…...

AUTODL Chatglm2 langchain 部署大模型聊天助手

资源申请 注册登录 进入下面的链接 AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDLAutoDL为您提供专业的GPU租用服务&#xff0c;秒级计费、稳定好用&#xff0c;高规格机房&#xff0c;7x24小时服务。更有算法复现社区&#xff0c;一键复现算法。https://autodl.com/ho…...

牛客练习赛138

牛客练习赛138 A.小s的签到题 思路&#xff1a;过题人数最多的就是签到题 #include <bits/stdc.h> using namespace std; typedef long long ll; typedef pair<int, char> PII;bool cmp(PII a, PII b) {return a.first > b.first; }void solve() {int n;cin …...

【脑机接口临床】脑机接口手术的风险?脑机接口手术的应用场景?脑机接口手术如何实现偏瘫康复?

脑机接口的应用 通常对脑机接口感兴趣的两类人群&#xff0c;一类是适应症患者 &#xff0c;另一类是科技爱好者。 1 意念控制外部设备 常见的外部设备有&#xff1a;外骨骼、机械手、辅助康复设备、电刺激设备、电脑光标、轮椅。 2 辅助偏瘫康复或辅助脊髓损伤患者意念控制…...

普通IT的股票交易成长史--股价起伏的真相-缺口(2)

声明&#xff1a;本文章的内容只是自己学习的总结&#xff0c;不构成投资建议。价格行为理论学习可参考简介中的几位&#xff0c;感谢他们的无私奉献。 送给自己的话&#xff1a; 仓位就是生命&#xff0c;绝对不能满仓&#xff01;&#xff01;&#xff01;&#xff01;&…...

基于NI-PXI的HIL系统开发

基于NI-PXI平台的汽车电控单元HIL系统开发全解析 引言&#xff1a;HIL系统如何成为汽车电控开发的“效率倍增器”&#xff1f; 某车企通过基于NI-PXI的HIL系统&#xff0c;将悬架控制器的测试周期从3个月压缩至2周&#xff0c;故障检出率提升65%。这背后是硬件在环技术对汽车电…...

IOC和Bean

IOC IOC将对象的创建&#xff0c;依赖关系的管理和生命周期的控制从应用程序代码中解耦出来了 IOC容器的依赖注入(DI) 在程序运行过程中动态的向某个对象中注入他所需要的其他对象 依赖注入是基于反射实现的 Spring IOC 容器使用的是Map&#xff08;concorrentMap&#xff…...

助力你的Neovim!轻松管理开发工具的魔法包管理器来了!

在现代编程环境中&#xff0c;Neovim 已经成为许多开发者的编辑器选择。而针对 Neovim 的各种插件与功能扩展&#xff0c;则是提升开发体验的重要手段。今天我们要介绍的就是一个强大而便捷的开源项目——mason.nvim&#xff0c;一个旨在简化和优化 Neovim 使用体验的便携式包管…...

AI与机器人学:从SLAM到导航的未来

AI与机器人学&#xff1a;从SLAM到导航的未来 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 AI与机器人学&#xff1a;从SLAM到导航的未来摘要引言技术路线对比1. 传感器融合架构&#xff1a;纯激光 vs 多模态2. …...

C++学习之模板初阶学习

今天我们来学习C中模板的学习。但是模板是C中比较难的部分&#xff0c;因此本节我们直接出相对比较初阶的部分。 目录 泛型编程 函数模板 函数模板格式 函数模板的原理 函数模板的特性 函数模板的实例化 模板参数的匹配原则 类模板 类模板定义格式 类模板实例化 泛型…...

专业级软件卸载工具:免费使用,彻底卸载无残留!

在数字生活节奏日益加快的今天&#xff0c;我们的电脑就像每天都在"吃进"各种软件。但您是否注意到&#xff0c;那些看似消失的程序其实悄悄留下了大量冗余文件&#xff1f;就像厨房角落里积攒的调味瓶空罐&#xff0c;日积月累就会让系统变得"消化不良"。…...

JSON|cJSON 介绍以及具体项目编写

一、JSON介绍 JSON&#xff08;JavaScript Object Notation 即JavaScript对象表示法&#xff09;是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。 JSON是一种数据交换格式.JSON独立于编程语言(你不必学习JavaScript).JSON表达数据的方式对通…...

Cell | 大规模 单细胞图谱 揭示非小细胞肺癌抗PD-1治疗后的免疫微环境异质性

–https://doi.org/10.1016/j.cell.2025.03.018 A single-cell atlas reveals immune heterogeneity in anti-PD-1-treated non-small cell lung cancer 留意更多内容&#xff1a;组学之心 研究简介 背景与问题 非小细胞肺癌&#xff08;NSCLC&#xff09;术后复发率高。新…...

光流 | 基于深度学习的光流估计算法汇总,原理,公式,流程图,代码

基于深度学习的光流算法 一、光流估计的基本原理二、基于深度学习的光流估计算法1. **FlowNet系列**2. **FlowNet 2.0**3. **PWC-Net**4. **RAFT(Recurrent All-Pairs Field Transformers)**5. **LiteFlowNet系列**三、算法流程图示例FlowNet2.0架构PWC-Net金字塔处理流程四、…...

常见的算法介绍

算法概述线性回归(Linear Regression)线性回归是一种通过属性的线性结合来进行预测的线性模型, 其目的是找到一条直线, 一个平面或者更高维的超平面, 使预测值和真实值之间的误差最小化逻辑回归(Logistic Regression)逻辑回归是一种分类模型, 入二分类公式 P ( Y 1 ∣ X ) e …...

【基于 LangChain 的异步天气查询1】异步调用 Open-Meteo API 查询该城市当前气温

目录 一、功能概述 二、文件结构 三、城市天气实时查询&#xff08;运行代码&#xff09; weather_runnable.py main.py 运行结果 四、技术亮点 五、使用场景 一、功能概述 它实现了以下主要功能&#xff1a; 用户输入地点&#xff08;城市名&#xff09; 构造提示词…...

深入解析JavaScript变量作用域:var、let、const全攻略

在JavaScript中&#xff0c;变量作用域是一个核心概念&#xff0c;它决定了变量的可访问性和生命周期。理解变量作用域对于编写清晰、高效且无错误的代码至关重要。本文将深入探讨JavaScript中不同类型的变量声明方式&#xff08;var、let、const等&#xff09;&#xff0c;分析…...

C33-函数嵌套及编码实战

我们以一个编程题目的实践来学习此部分内容 题目:输入四个数,以函数的方式找出最大值 思维:使用两个数找出较大值→较大值与第三个数比较得出新的较大值→新的较大值与第四个数比较得出最大值 代码 #include <stdio.h>//内层函数的封装int GetMaxFromTwoNums(int a,int…...