pg_clickhouse v0.10.0 发布:TPC-H 下推覆盖率提升并重构二进制驱动

基于PLC的立体车库控制系统设计 本文介绍了基于西门子S7-1511-1PN PLC和KTP700 Basic PN HMI的立体堆垛式停车场自动化控制系统。系统通过PLC逻辑控制滑台运动,配合传感器实现车辆存取自动化,包含初始化、入库、出库和安全保护程序。程序采用模块化设计,分为安全互锁、动画显示、模式切换等六个功能模块,运用边沿触发、定时器和多级联锁确保安全。HMI界面提供模式切换、车位选择、状态显示和手动控制功能。该系统具有模块化、安全性和可扩展性特点,可应用于多车位立体停车场场景。 阅读详情

 

本文字数:8001;估计阅读时间:21分钟

作者:Josh Ventura

 

 

 

编者按: 本文译自 ClickHouse 原博客(链接点文末-查看原文)。 原文围绕「pg_clickhouse 通过深化下推逻辑与驱动重构持续优化分析性能」展开。本次更新在 TPC-H 下推覆盖率上取得实质进展,Q2 等查询的性能优化效果显著。底层驱动的 C 语言重构为后续的稳定性与并发处理奠定了更好基础。 

 

我们持续投入 pg_clickhouse,当前的首要重点依然是提升分析型工作负载的下推(pushdown)覆盖率,近期目标是实现 TPC-H 基准测试套件的全面下推。自六月更新以来,我们取得了诸多进展。其中 TPC-H 的进度自去年 12 月的介绍文章后就没有详细讨论过,因此我们就从这里说起。随着 v0.10.0 的发布,22 个 TPC-H 查询中完全实现下推的数量已从 12 个增加到 16 个,距离全覆盖只剩 6 个。

在此期间,我们还:

• 基于全新的纯 C 客户端库重构了二进制驱动;

• 将支持下推的函数和聚合函数数量增加了一倍多;

• 修复了二进制驱动的几个并发 Bug(详见下文)。

 

 

成绩单

 

此次又有三个 TPC-H 查询实现了完全下推。受限于之前的查询结构,pg_clickhouse 必须逐行从 ClickHouse 拉取数据,然后在本地执行子查询计算,导致这三个查询曾经极其低效(完整图表(https://github.com/ClickHouse/pg_clickhouse/#test-case-tpc-h)):

查询

PostgreSQL

pg_clickhouse 0.3

pg_clickhouse 0.10

下推情况

Q2

588 ms

3,446 ms

24 ms

✔

Q17

2107 ms

32,709 ms

37 ms

✔

Q22

270 ms

1,415 ms

45 ms

✼

( ✔ = 整个查询体现为单一的外部扫描 )
 ( ✼ = 已下推,但被拆分为多个远程查询;通常包含一个外部扫描和一个 InitPlan 扫描。)

Q17 是最大的亮点:这是一个相关子查询,用于计算每个 part 的 l_quantity 平均值。在比例因子为 1 的 600 万行明细数据集中,以前外部查询每返回一行都要执行一次子查询,耗时高达 32.7 秒。完全实现下推后,耗时仅需 37 毫秒。性能提升了三个数量级,这也清楚地表明,在同一查询中,pg_clickhouse 胜过了原生 PostgreSQL 自身的执行计划(2.1 秒)。

目前还有六个查询尚未实现下推:Q13、Q15、Q16、Q18、Q20、Q21。Q16 和 Q18 为我们指明了方向:pg_clickhouse 已经能够下推 它们所需的 SQL 结构(即像 Q2 和 Q17 那样,将 IN 和 NOT IN 反解析为反连接或半连接);目前的阻碍在于,PostgreSQL 会将它们的子查询展平为反连接或半连接,而 这些连接的输入本身也是连接,但反解析器目前还无法遍历连接两侧的连接树(join tree)。Q15 和 Q20 遇到了该问题的变体。这是子查询下推功能下一步要解决的核心任务。

 

 

完善子查询支持

 

12 月的核心功能是让规划器将整个相关 EXISTS 子查询(correlated subquery)作为单独的 LEFT SEMI JOIN 下推,而不是采用嵌套循环(外表每输出一行就要向 ClickHouse 发起一次请求)。这让支持下推的 TPC-H 查询数量从 22 个中的 3 个跃升至 12 个。剩下 10 个查询面临同一个问题:规划器根本无法将子查询折叠为连接,因此只能保留一个 SubPlan(子计划)。它是查询计划的一部分,包含一个独立查询的完整计划,在整个查询的执行过程中运行(通常是每行执行一次)。下推这类计划是我们路线图上的第五项任务,在最新的 0.10.0 版本中,我们已经完成了这项工作(#289)。现在,Postgres 中的子查询会直接转换为 ClickHouse 中的子查询:

EXPLAIN (VERBOSE, COSTS OFF)
SELECT s.sale_id, s.amount FROM sales s
WHERE s.amount > (SELECT 1.5 * avg(s2.amount) FROM sales s2
                  WHERE s2.item_id = s.item_id)
ORDER BY s.sale_id;
Foreign Scan on subplan_test.sales s
   Output: s.sale_id, s.amount
   Remote SQL: SELECT sale_id, amount FROM subplan_test.sales r1 WHERE ((r1.amount > (SELECT (1.5 * avg(q1_1.amount)) FROM subplan_test.sales q1_1 WHERE ((q1_1.item_id = (r1.item_id)))))) ORDER BY r1.sale_id ASC NULLS LAST
   SubPlan expr_1
     ->  Foreign Scan
           Output: ((1.5 * avg(s2.amount)))
           Relations: Aggregate on (sales s2)
           Remote SQL: SELECT (1.5 * avg(amount)) FROM subplan_test.sales WHERE ((item_id = {p1:Int32}))
(8 rows)

EXPLAIN 输出依然会显示 SubPlan 节点(这只是 PostgreSQL 用于记录关联关系的内部机制),但可以看到,顶层的 Remote SQL 在发往 ClickHouse 的单条语句中包含了完整的比较操作,其中也包含该子查询。借助同样的机制,pg_clickhouse 现在能够下推完整的 TPC-H Q2 查询:只需一次 Foreign Scan 和一次远程查询。只要规划器能确认转换是安全的,NOT IN 也能通过 LEFT ANTI JOIN(即 v0.1.0 版本中半连接的否定形式)得到同等处理。

需注意,上述功能无法在低于 25.8 版本的 ClickHouse 中运行,因为旧版本不支持相关子查询的 SQL 结构;pg_clickhouse 会在规划阶段检查服务器版本,如果在旧版服务器上运行,则会像处理其他不支持的结构一样,回退到本地执行。

NOT IN 的正确实现方式

实现 SQL 下推比较简单,难点在于确保其计算结果与 PostgreSQL 完全一致(#315, #317),而这就碰到了一个大坑。ClickHouse 的 IN 操作采用二值逻辑,而 PostgreSQL 采用三值逻辑。这意味着在 PostgreSQL 中,x NOT IN (1, NULL) 可以是 FALSE(当 x=1 时)或 NULL,但绝不可能是 TRUE。如果直接简单粗暴地下推,只要比较中涉及 NULL,这些表达式就会在暗中反转结果:比如 WHERE NOT IN 会返回本该被 PostgreSQL 过滤掉的行,GROUP BY 会将 NULL 分组错误归并为 FALSE 等。常规测试很难发现这些问题,这也是此类问题在下推扩展中极为危险的原因;执行计划看起来没问题,但输出结果却存在微妙的偏差。

V0.10 版本的修复方案会追踪每个表达式结果的使用方式,从而明确查询需要做多少兜底处理才能保持结果一致。也正是在这里,这个坑变得像门格海绵(一种极其错综复杂的空间结构)一样棘手:

• 过滤条件天然可以将 NULL 视为 FALSE ,因此在不涉及 NOT 的条件中,直接使用 ClickHouse 的默认行为即可。

• 若表达式用于直接取值或包含逻辑取反,则需要对空值做额外检查,从而在结果中带入符合 Postgres 预期的值。

• 如果 pg_clickhouse 能够确认操作数不可能为 NULL (比如追溯发现它是非空常量,或是带有 NOT NULL 约束且未被外连接重新引入空值的列,亦或是基于上述两者的非空计算结果等),就可以直接跳过那些用来模拟 Postgres 行为的额外保护逻辑。

因此,加上保护逻辑并完全模拟 Postgres 行为的查询看起来是这样的:

EXPLAIN (VERBOSE, COSTS OFF)
SELECT id FROM tnull WHERE xn NOT IN (1, NULL) ORDER BY id;
Foreign Scan on in_null_test.tnull
   Output: id
   Remote SQL: SELECT id FROM in_null_test.tnull WHERE ((CASE WHEN xn IS NULL AND notEmpty([1,NULL]) THEN NULL WHEN countEqual([1,NULL], xn) > 0 THEN false WHEN countEqual([1,NULL], NULL) > 0 THEN NULL ELSE true END)) ORDER BY id ASC NULLS LAST
(3 rows)

而遇到常见的、绝对不含 NULL 的场景,则可以直接使用普通的原生 IN:

EXPLAIN (VERBOSE, COSTS OFF)
SELECT id FROM tnull WHERE xn NOT IN (1, 500) ORDER BY id;
Foreign Scan on in_null_test.tnull
   Output: id
   Remote SQL: SELECT id FROM in_null_test.tnull WHERE ((xn NOT IN (1,500))) ORDER BY id ASC NULLS LAST
(3 rows)

后续改进(#317)将此逻辑扩展到了 IN 系列的所有操作符(包括 IN、NOT IN、= ANY、= ALL、<> ANY、<> ALL),无论标量还是数组形式均适用。这使得它们可以无条件地下推,而不必在无法证明非空时退回到本地计算。

此外,我们之前还有一个小 bug,即 <> ANY(array) 实际计算的却是 <> ALL,这次修改相关代码时也就顺手修复了。

这一切的前提是,ClickHouse 的 IN 确实如前文所述以二值逻辑运行。但服务器级别的设置(transform_null_in)可能会改变这一行为。因此,我们在默认的 pg_clickhouse.session_settings 中添加了 transform_null_in 0,以确保 ClickHouse 的服务器配置不会在暗中破坏刚才提到的防护机制。

 

 

 

扩展下推范围

 

除了 JOIN 和子查询方面的改进,支持下推的独立函数、操作符和聚合函数数量也大幅增加。由于新增内容过多,无法在此完整列出(详情请参阅 CHANGELOG),以下示例展示了此次扩展的覆盖范围:

  • 正则表达式: 关于此处的许多更新,我们在 早前的博文 中已有详细介绍,欢迎阅读!

  • 聚合: 

    • 统计聚合( #290 ) 

      • corr , covar_pop / samp 

      • stddev_pop / samp - var_pop / samp

      • any_value 

    • 有序集聚合( #291 ): 映射至 ClickHouse 的参数化形式。

      • percentile_cont / disc → quantile(s) / quantileExactLow

  • 按分区聚合( #298 ): 如果你将偏重分析的分区移至 ClickHouse,同时将偏重事务的分区保留在Postgres 中,该功能将非常实用。 

    • 外部分区计算: 若查询在混合了本地与部分区的分区表上进行聚合,现在会直接在 ClickHouse 上计算外部分区的合结果,而不再是拉取全部行。

      • 适用于整数类型的可分解聚合(如 count 、sum 、 min 、 max 、 avg )。

      • 需要开启enable_partitionwise_aggregate 。

  • 其他更新: 

    • 格式化与编码: encode(bytea, 'hex'|'base64'|'base64url') ( #302 )。 

    • 字符串: 三参数的 ltrim / rtrim / btrim ( #307 ), 

    • 成本估算: 修复了部分成本函数,确保计划器(planner)在处理 ClickHouse 上的 MIN/MAX 时能选择开销更小的方案。( #310 ) 

    • 日期与时间: 

      • 时间间隔(Interval)运算扩展支持 date / timestamp 操作数及减法 ( #301 )  

      • 针对会话时区和亚秒级精度,调整了 CURRENT_* / now() / clock_timestamp() 系列函数。

在这一切背后,有一项重要的架构变更:内置函数下推现已改为按需启用(#245)。在早期版本中,只要 Postgres 内置函数的名称与 ClickHouse 函数匹配,就会默认进行下推。这意味着两者的签名或行为若有差异,可能会在暗中改变查询结果。促成这一变更的具体案例是三角函数(asin / acos / atanh / acosh):当对定义域外的值调用这些函数时,Postgres 会抛出错误,而 ClickHouse 则返回 NaN。自 v0.3.0 起,只有经过显式映射的函数才会下推。尽管这延缓了支持列表的扩充速度,但确保了列表内的函数在保持 Postgres 语义方面绝对可靠。

 

 

Driver Updates

 

我们在最初的介绍文章中提到,对旧版 clickhouse_fdw 代码库进行现代化改造的措施之一,是采用 clickhouse-cpp 来实现原生协议访问。但这已经成为过去式:在 v0.3.1 中,我们将其彻底替换为 ClickHouse/clickhouse-c(#254),这是一个作为 Git 子模块引入的全新 C 客户端。这次切换远不止是一次简单的依赖升级;此前,将 C++ 的异常处理与 PostgreSQL 自身基于 setjmp / longjmp 的错误处理机制混用,一直是引发程序崩溃的根源,并且 clickhouse-cpp 会将结果整体放入缓冲区,导致内存消耗随结果集大小线性增长。相比之下,clickhouse-c 改为逐块流式传输结果,同时使引入库的构建时间和体积缩减了 75% 以上。

在初步切换到 clickhouse-c 之后,我们继续推进代码整合:HTTP 驱动现在也采用了 ClickHouse 的 Native 格式。它使用了与二进制驱动相同的编解码方式,取代了过去基于 TSV 的处理路径 (#328)。这一改动影响了 fetch_size,它是 HTTP 驱动早期流式处理功能中的分批选项。由于 Native 解码器现在固定每次以流式处理一个 curl 数据块,该设置已无用武之地,因此现已被弃用。在写入方面,二进制驱动现在会在缓冲的 INSERT / COPY FROM 数据超过 64MiB 时执行刷新 (#303),不再将整个批次全部滞留在内存中。两种驱动都增加了显式的 compression(none/lz4/zstd)(#268) 和 TLS 控制(secure = on/off/auto,min_tls_version)(#272) 选项,取代了过去通过主机名和端口推断是否使用 TLS 的启发式机制。类型支持范围也有所扩大:现在这两种驱动的读写操作均支持多维数组 (#233),且支持通过二进制协议插入 Array(Nullable(T)) 数据 (#316)。

两种驱动共用同一套二进制编码路径,也为本周期的多项可靠性修复奠定了基础。过去,二进制驱动上的并发外部扫描(例如相关子查询,或涉及两个外部表的嵌套循环连接)会在共用的单一连接上发生冲突并导致崩溃;现在,每次并发扫描都会获取专属的连接 (#296)。这一改动也顺带修复了在重新执行外部扫描时,其批处理内存上下文中存在的一处 use-after-free(释放后使用)缺陷。此外,我们还修复了特定查询结构在执行时失败的问题,该问题的起因是在选择执行查询的用户身份时,选取了无效的关系 OID(对象标识符)(#319)。

深入细节来看,我们修复了通过 HTTP 插入时间戳时的亚秒级精度丢失问题(#300)。此外,对代码库进行更全面的静态分析后,我们发现并修复了几个潜在的 Bug(#313)。这些问题尚未在实际环境中触发,但防患于未然,仍值得提前修复。

 

 

新增接口

 

一些新功能扩展了用户的主动操作能力,而不仅限于自动下推功能:clickhouse_query(server, sql) 可以在配置好的服务器上执行任意查询,并根据用户提供的列定义列表映射结果类型,该函数现已支持二进制驱动(#309)。列定义列表是必不可少的(Postgres 需要在拉取数据前预先知道行结构),但这同时也意味着 clickhouse_query() 无法执行像 CREATE TABLE 这样的操作,因为这类操作既不返回数据行,也没有可声明的结构。这就用到了它的新配套函数 clickhouse_perform(server, sql):这是一个存储过程,需要使用 CALL 而不是 SELECT 来调用,专用于执行那些只产生执行效果而不返回行的语句(#329)。此外,clickhouse_server_version(server) 可以返回当前连接的服务器版本(#293),该功能主要供条件逻辑内部使用。

如果你此前一直在使用 clickhouse_raw_query() 执行这类操作,请注意该函数现已被弃用,并将在下个版本中移除(#329)。请改用 clickhouse_query() 或 CALL clickhouse_perform();这两个函数都通过已配置的外部服务器(foreign server)执行,使用外部服务器自身的连接管理和驱动选择机制,而不再依赖临时的原始连接字符串。

 

 

原有接口

 

我们曾在其他渠道介绍过历史版本中的部分功能,但遗漏了此处的说明,现特此补充完善。

  • JSON: 

    • 操作符与函数: -> / ->> 和 jsonb_extract_path[_text]() 映射到了 ClickHouse 的 子列语法 ( #169 、 #176 )。 

    • 类型: ClickHouse 原生的 JSON 类型映射到了 Postgres 的 json ,并提供相同的操作符支持。

  • 数组: 

    • 新函数与操作符: 有十多个函数支持下推(push down): 

      • array_cat

      • append

      • remove

      • to_string

      • length

      • hasAll / hasAny 对应 @> / <@ / &&

      • 切片语法( arr[L:U] )对应 arraySlice()

      • 还有更多...

  • 聚合: 

    • 窗口函数( #175 ): 全套均支持下推,包括以下函数及其相关系列:

      • ROW_NUMBER

      • RANK

      • LEAD / LAG

      • NTILE 

    • 布尔与字符串 ( #184 ): bool_and 、 bool_or 、 string_agg

  • 其他: 

    • 带有格式字符串校验的 to_char() ( #244 ) 

    • split_part() ( #206 ) 

    • fuzzystrmatch 的 soundex() / levenshtein() ( #210 )。

 

 

剩余工作

 

除了剩余的 6 个 TPC-H 查询外,最初的路线图中仍有许多待完成项:尚未覆盖的 PostgreSQL 函数、轻量级 DELETE / UPDATE,以及 UNION 下推。阻碍 Q15/16/18/20 执行的“两侧连接树”(join-tree-on-both-sides)限制是影响最大的一块;除非我们在下个版本能把这 6 个查询全部搞定,否则这顺理成章会成为本系列下一篇文章的主题。

 

关于我们

ClickHouse 是面向 AI 时代打造的高性能实时分析数据库,能够以极致性能处理海量数据分析任务。凭借高并发、低延迟和云原生架构,ClickHouse 广泛应用于可观测性、数据仓库、实时分析及 AI 数据基础设施等场景。我们致力于帮助企业在公有云平台上构建安全、弹性且高性价比的实时分析与 AI 数据平台,加速释放数据价值,推动智能化创新与数字化转型。目前,Trip.com、DiDi、Meta、Sony、Netflix、Deutsche Bank、Sierra、Cloudflare 等全球领先企业均在使用 ClickHouse 支撑其关键业务和数据分析平台。

 

Python 爬虫实战:模拟登录网易云音乐(加密接口逆向与自动化登录实现) 网易云音乐作为国内主流的音乐流媒体平台,其丰富的音乐资源和个性化推荐算法吸引了大量用户。对于开发者而言,模拟登录网易云音乐并实现自动化操作,可以用于数据分析、歌单同步、歌词抓取等场景。然而,网易云音乐采用了多重加密机制和反爬策略,直接模拟登录存在较大挑战。 阅读详情

相关推荐

信号完整性SI-PI

SI设计的主要难点在于需要综合信号的幅度、噪声、边沿、延时等影响信号质量的多种因素,并且这种因素常常相互依赖、互相影响,交叉在一起。1.1、信号过冲 (欠阻尼状态,可并联一个合适的电容):过冲会造成强烈的电磁干扰,另一方面会损伤后面的电路的输入及,甚至失效。信号完整性SI:是指电路系统中信号的质量,如果在要求的时间内,信号能不失真的从源端传输到接收端。优点:提供较慢的上升时间,减少反系量,产生更小的EMI,从而降低过冲,增加信号质量。导线之间的间距过小, 就会产生串扰,间距越小、串扰越大。

weixin_42304393的博客 4869

ClickHouse 数据目录迁移翻车实录:整十分 SIGQUIT 疑云、uuid 撞车双节点互踢与 ZooKeeper 僵尸副本排查(附迁移 SOP)

ClickHouse 两节点集群做数据目录迁移,迁完节点 2 后节点 1 无故 stop,此后两节点随便启动哪个都会被自动终止——退出全部发生在整十分,日志写着 Received termination signal (Quit)。本文完整还原排查:信号溯源五步法(journalctl/strace si_pid/auditd)、整点规律与 ZK 分桶过期的辨析、system.replicas 三板斧取证,最终锁定 rsync 迁移经典坑:/var/lib/clickhouse/uuid 撞车导致双节点互踢

Sayai的专栏 227

Intel RealSense D435 深度相机详解

Intel RealSense D435 深度相机是 Intel 推出的一款基于深度感知技术的相机,广泛应用于机器人、无人机、增强现实(AR)、虚拟现实(VR)、3D扫描、智能监控等领域。D435 是 RealSense 系列中较为高端的深度相机之一,结合了深度传感和 RGB 摄像技术,为用户提供高精度的深度数据和高质量的图像捕捉能力。

crasher123的博客 2944

ClickHouse走向AI数据栈的技术路线与工程边界

ClickHouse获得3.5亿美元融资,资本认可了列式分析引擎的商业价值,但工程问题更具体:一个为扫描聚合设计的引擎能否同时承载BI报表、可观测性日志与AI特征工程三类负载。文章从列存与向量化执行机制拆起,讨论稀疏索引与分区裁剪的代价模型、MergeTree家族引擎选型、副本与分片拓扑权衡、写入攒批去重与背压、物化视图增量聚合、宽表特征建模、向量检索与标量过滤协同、存算分离成本核算,并复盘六个真实失败案例,给出迁移落地五步法与运维边界建设建议。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 369

BUPT软件安全实验三

可以看出栈溢出对程序运行的安全性有很大的威胁,如果不对栈进行保护,只要系统中存在栈溢出漏洞,即可令攻击者通过非正当方法获取操作权限。(6)解决思考题,即:在不修改StackOverrun程序源代码的情况下,构造shellcode,通过JMP ESP的方式实现通过记事本打开shellcode.txt(可使用CreateProcessA或WinExec等API)。查看缓冲区信息,可以看到dest指向地址0x0012FAF0,其为数组的存放起始位置,也就是shellcode注入的起始位置。

7xun's space 1966

【自用】吉林大学计算机系统结构第二章:缓存优化 曲冠南老师版 笔记

容量8KB,2的十三次方,块大小16B,一块用掉四位,剩余2的九次方是标志位,则有512行,每个元素8B,则一块两个元素,a数组150块,b数组152块,不出现容量失效。不管是否交换内容,在同一“伪相联”组中的两块都是用同一个索引得到的,因此失效率相同,即:失效率伪相联=失效率2路。伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。(6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

weixin_73587775的博客 1616

ClickHouse 运维排障工具箱:视图创建类型报错、CPU 打满拒绝连接、合并 OOM 与 query_log 查询溯源(附速查表)

ClickHouse 一个集群的多事发日:CREATE VIEW 报 ILLEGAL_TYPE_OF_ARGUMENT(isNaN 只吃浮点,聚合状态要先 sumMerge 再 CAST Float64);CPU 打满开始拒绝连接(SERVER_OVERLOADED 是背压不是宕机,processes/merges/mutations 三表定位元凶);OOM 崩溃堆栈解读(MemoryTracker + MergeTask = 合并内存超限,16G 节点配置基线);毫秒级短查询刷屏用 query_log 三

Sayai的专栏 274

Arduino与Proteus仿真实例-LCD2004-I2C(PCF8574)驱动仿真

LCD2004-I2C(PCF8574)驱动仿真 PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。 LCD2004,即2004字符型液晶显示器,是一种点阵模块,用于显示字母、数字、字符等。 它由 5x8 个点阵位置组成; 每个位置可以显示一个字符。 两个字符之间有一个点间距,行之间有一个空格,从而将字符和行分开。 模型 2004 表示它显示 4 行,每行 20 个字符。 在前面的实例中对PCF8574和LCD2004的已经做了详细介

视觉与物联智能 1165

EDB 收购 Altinity,整合 Postgres 与 ClickHouse

EnterpriseDB 于11月5日收购 ClickHouse 服务商 Altinity,交易金额未披露,计划通过共享 Iceberg 目录和统一访问控制整合 Postgres 与 ClickHouse 能力。

老孙正经胡说 249

【Go语言实战】(9) gRPC 实现一个简单微服务

文章目录写在前面1. 安装1.1 grpc1.2 proto1.3 protobuf2. 编写代码2.1 初始化项目2.2 编写proto2.3 编写服务端2.4 实现客户端3. 演示 写在前面 这一次我们用gRPC实现获取用户的信息 1. 安装 1.1 grpc grpc的安装直接go get即可 go get google.golang.org/grpc 1.2 proto 下载proto,我是下载这个的。 然后解压出来把bin目录放在直接放在系统变量当中 1.3 protobuf 我们在

面向生活编程 3272

【软考中级网络工程师】知识点之 ICMP 协议

本文聚焦软考中级网络工程师必备的 ICMP 协议知识,先概述其在 TCP/IP 协议族网络层的地位与无连接特性,再阐述差错报告、网络诊断等功能。解析报文格式,详解差错与查询类报文类型及工作机制,还介绍其在 Ping、Traceroute 命令中的应用,分析常见攻击与防范措施,最后总结核心要点,为网络工程师学习和应用 ICMP 协议提供全面指导。

邓邓子的博客 1403

从一到无穷大 #108:Meta 的 AI 存储架构——BLOB 重构与跨地域数据加载

在 Meta 的旧 BLOB 服务里,数据已经放到闪存上,一次请求中的多层元数据查询仍可能耗费数百毫秒,部分请求还要跨地域。底层介质变快以后,上层存储服务的查找和转发开销开始直接影响 GPU 利用率。[1]另一种等待发生在训练之前。GPU 分散在不同地域,研究者要先找到有算力的地方,再把训练数据搬过去。一次小规模实验也可能先花几个小时导入数据,调整数据后再等一轮。Meta 保留了底层 Tectonic,改造了它上面的 BLOB 访问路径。

李兆龙的博客 475

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

CPO重构光互联,传统可插拔光模块厂商重新定位产业分工

AI集群网络功耗制约数据中心发展,推动光互联技术加速演进。CPO通过将光引擎集成至芯片旁,大幅降低电路径功耗,单比特功耗可降至6pJ/bit。尽管形态变化,光引擎功能未消失,仍由光模块厂主导供应,产品转向NPO与CPO。平台主导权上移至芯片厂商,认证周期长、黏性强,价值量向硅光、激光器等上游器件集中。2027年起订单放量,关键瓶颈在光器件产能与良率,客户认证与外置光源量产成产业化核心指标。

张星河的博客 471

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

横琴×大湾区GEO规范共建计划正式启动:以“透明度量”重构跨境品牌信任新基建副标题:立足珠澳·辐射湾区——三方签约打造“可信GEO”全要素生态闭环

这套组合的稀缺性,还在于它不是把几家公司的业务简单并列,而是围绕“可信GEO”形成一条可运转的服务链:真实贸易与本地消费场景提供应用土壤,海外社媒矩阵与跨境数据合规提供传播与确权能力,GEO落地服务提供从诊断到复盘的可交付执行,开放监测底座提供不依附于执行方的效果校验,澳门主流报业协同资源则把本地公信力、公共议题与社会认知入口前置到共建过程中。至此,中智云的真实贸易场景、麦芽科技的跨境传播网络、横琴必优的底层度量技术,以及澳门主流报业协同资源提供的本地公信力与公共议题入口,完成了四块关键拼图的严丝合缝。

web15185420056的博客 246

【字节拥抱开源】Cola2:用连续隐变量重构语言模型,346B Token 跑出 60.10 八任务均分

Cola2 是一款基于连续隐变量的自适应语言模型,通过动态语义压缩与块因果扩散 Transformer(DiT)实现高效生成。它在346.03B token上训练,八项评测平均得分60.10,性能超越部分更大规模模型。其核心创新在于联合优化隐变量压缩与离散解码,支持受控扩展与稳定推理。项目提供完整权重、工具链及评测数据,适用于研究与应用。

weixin_41446370的博客 245

21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比

21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比 系列定位 :《MySQL 数据库全栈运维实战系列》第 21 篇,与《Oracle 数据库全栈运维实战系列(VMware 版)》同构对标。 适用版本 :MySQL 8.0(5.7 差异随文标注)。 官方文档 :MySQL…

dk843108982的博客 242

国内数据分类分级平台分析:大模型赋能下的技术能力重构分析

数据分类分级平台正经历从 "规则扫描器" 到 "智能数据资产理解引擎" 的跃迁。大模型重构的不只是识别准确率,而是把过去依赖专家经验的语义理解、定级判断、标签维护,变成可规模化、可私有化、可持续学习的平台能力。但这并不意味着人被替代 —— 行业分级标准的把握、误分级的风险承担、业务部门的协同推进,仍然需要专业服务团队深度参与。

KKKlucifer的博客 291

视觉Transformer的“第二次革命”:ViT³如何用测试时训练重构注意力范式

ViT³提出视觉Transformer的“第二次革命”,通过测试时训练(TTT)重构注意力范式,以线性复杂度实现高精度建模。其核心思想是将注意力视为用上下文构建内部模型,而非简单加权求和。研究总结六条设计原则,如采用MSE损失、全Batch单轮训练、卷积内部结构等,构建纯TTT架构,在1248×1248图像上显存降低90.3%,速度提升4.6倍,性能超越线性注意力与Mamba,推动高效高分辨率视觉计算发展。

weixin_46846685的博客 328

空圈容错 · 地震预警与抗震工程全域综合诊断与重构方案

本文基于空圈容错理论,把韧性工程方法引入地震预警与抗震工程领域,建立C‑M‑P三层拓扑、R病理探针、D_max尾部承载力、∅_safe可控降级分析体系。剖析五大架构裂缝,指出当前防灾系统存在高均值、低尾部容错缺陷:常态指标表现良好,但在台站损毁、断网断电等极端工况下易发生系统雪崩。 结合震例对照,提出止血‑兜底‑拆假异构‑守界四阶段重构路径,配套预警链路、城市抗震工程两套可证伪验收清单。本文仅作为系统架构诊断工具,不攻克短临预报世界性难题,区分推演示例与真实震例,主动披露未验证项与组织阻力,为城市地震韧

Liaiyang66的博客 326

中烟创新×某电力公司 | AI大模型重构电力合规反事故演习

更进一步,查阅任何一项内部制度时,“制度优化建议智能体”会自动将制度全文与上位法、行业规范比对,识别条款滞后、内容冲突、管控缺失——制度治理从“定期运动式检查”,变成“随时在线、持续体检”。权重可按岗位、业务重点、风险等级灵活配置,最终生成可视化画像与等级评定(优秀、良好、合格、待改进)——合规管理从“模糊感知”走向“精准画像”,“印象分”让位于“数据分”。让确定性的任务走确定性的路,让需要“想”的任务交给会“想”的模型——“大模型+小模型”协同,不是技术的折中,而是工程的最优。沉淀下来的经验,不会。

ZYCX_0517的博客 376

中控屏退位,AR-HUD上位?L3重构座舱交互底层逻辑

小鹏旗下G7、X9搭载自研图灵AI芯片与AI BOX,采用端侧推理为主、云端协同为辅的架构,配备追光全景AR HUD,将VLM视觉大模型识别出的障碍物、鬼探头风险、车道引导、智驾决策结论,直接锚定叠加在真实路面之上,并完成实景虚实贴合验证。值得注意的是,安全预警和商业推荐共享同一块AR视野,如果视觉层级、出场顺序没有清晰隔离,驾驶员很容易混淆“必须响应的风险”和“可选的 AI 推荐”,一旦发生事故,会带来责任认定的争议。总体来看,中控屏让位、AR-HUD站上交互前台,本质是L3对人机安全交互规则的重塑。

高工智能汽车 212

产教融合从“深水区“走向“未来实训中心“:AI+XR重构智慧养老人才培养链条

老龄化加剧催生养老人才缺口,传统实训受限于场景、设备与资源。南京恒点依托AI+XR技术,打造智慧实训室,通过虚拟仿真、沉浸体验、虚实结合与智能评价,破解“场景难进、设备难用、资源难融”三大难题,实现评估能力标准化培养。以《老年人能力评估规范》为标尺,构建可复制、可持续的产教融合新范式,推动职业教育从“有”到“优”,助力养老专业迈向高质量发展。

恒点虚拟仿真官方博客 330

工业球磨机节能改造与智能磨矿:矿物加工场景下的能效竞争逻辑重构

2026年2月,全球首台3.55MW磨机专用低速永磁环形电机下线,摒弃减速机、离合器与大小齿轮组,将电机转子与磨机滚筒一体化安装,实现“无齿轮、无接触”直接驱动,节能效果达10%至30%,单台设备年省电费数百万元。中信重工在中色抚顺红透山矿业部署的“半自磨机+球磨机+智能磨矿系统”方案,配套矿石粒度分析仪、衬板磨损在线检测与磨矿介质智能添加系统,实现数据驱动替代人工经验调控,处理量提升15%以上,单位能耗降低7%以上;的实质并非单一设备的自动化,而是将磨机从孤立的主机转变为感知—决策—执行的闭环节点,使。

2601_96585642的博客 187

AI重构工业软件|泛联新安亮相第四届工业软件创新发展学术会议

两天会议,从院士报告里的战略判断,到灯塔工厂的实战复盘,再到泛联新安总部的体系拆解,其实都在回答同一个问题:AI重构工业软件,怎么从“演示可用”走到“生产敢用”。没有合理的裁判体系为AI任务结果进行验收,人类工程师的精力最终会疲于为AI产出做确认和兜底。工业软件和关键装备行业的AI转型,缺的从来不是模型,而是让模型可以被信任的那套工程体系。这也是唐勇博士在主论坛报告里反复强调的结论。这个问题没有一次性答案,我们会持续把可信智能体的工程实践公开出来。

flxa19310090839的博客 47

编队系列(三)|固定翼编队避碰架构:行为融合+人工势场+队形重构

行为法把固定翼编队任务拆成路径跟踪、队形保持、速度协调、机间分离和障碍物避让等局部控制项,人工势场可以为分离与避障提供计算量较低的虚拟运动向量。但简单加权求和不能消除局部极小、向量抵消、指令跳变和安全阈值失效问题。合成向量进入固定翼前,还必须经过航迹角变化率、滚转角、速度范围和前向预警距离约束。当障碍通道无法容纳原始队形时,提前将槽位平滑重构为横向压缩、纵向错列、分组或高度分层形式,可以减少局部避让与刚性队形保持之间的直接冲突。

2302_80148937的博客 318

【鸿蒙心迹】折叠屏适配实战——展开/折叠状态下的 UI 重构(HarmonyOS 7.x)

折叠屏展开那一刻,布局不是"被放大",而是被重构——单栏切双栏、列表变分栏、顶部 Tab 变侧边导航。本文用邮件类应用适配折叠屏的真实过程为案例,讲清展开/折叠状态监听、双栏重构、半折叠悬停态处理,以及最容易被忽略的一件事:状态在布局重建后不能丢。附 5 个真实踩坑(现象→根因→解决→教训)与自查清单。

腾讯云创作之星、华为云云享专家,深耕电商全栈高并发系统实战,分享可商用商城项目源码。 368

《重构汽车软件基础设施》白皮书核心解读 AUTOSAR、CAPI与AI定义汽车的产业变革

中国汽车工程学会给出了AI上车的三阶段判断:AI in Car(2025年左右,点状赋能,主导权仍在人)→ AI Car(2030年左右,车成为AI驱动的"具身智能体")→ Car in AI(2035年左右,车成为AI生态的"终端节点")。钱和人投进去了,上层应用创新却"贫血"了。普华基础软件:针对"AI跑得太快(月迭代)、认证跑得太慢(ASIL-D认证一两年)"的节奏错配,给出"第四象限"解法——解耦优先:安全与AI拆开(底层安全模块一次性认证不动,上层AI随便迭代)、OS跟芯片拆开、算法跟OS拆开。

m0_72216366的博客 309
上一篇: 基于 OpenTelemetry 的意式浓缩咖啡机可观测性实践
下一篇: Langfuse 代码评估器执行模型的设计与安全隔离机制
ClickHouseDB
博客等级 码龄3年 1707粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值