包含关键字 typecho 的文章

小程序名字叫做 《口算练习助手》

故事的起点,其实很生活化。

前几天,媳妇把女儿的数学练习册递给我,让我帮忙检查一下。
我翻着翻着,突然意识到一件事:
这些题型——数数、分与合、20 以内加减、比大小、相邻数,认识时钟、其实完全是结构化的。

那一刻,程序员的职业病犯了 😅

我心想:这不就是题库 + 规则吗?

女儿今年上大班,媳妇给她买的是一套“幼小衔接”数学练习册。

我顺手去电商平台看了一眼,结果有点被震到:

同类型练习册,一个店铺月销量 1.9w+

需求很明确,而且是长期、稳定、刚需。

于是我又搜了下类似的小程序,发现一个有意思的现象:

👉 有很多类似的练习工具,但几乎没有“按练习册逻辑走的套题测试型小程序”。

作为一个已经三年多没正经写过代码的前程序员,我突然有点兴奋了:

借助 AI ,这事儿好像……完全可行?

于是,想干就干了。

整个过程比我想象中顺畅很多:

  • 💻 编码:gemini-3-pro

  • 🎨 头像设计:ChatGPT-5

  • ⏱️ 实际开发耗时:约 5 小时

  • 💰 总成本:51.02 元

    • AI 成本:21.02
    • 微信小程序认证费:30

功能很简单,也很克制:

就是把练习册里的核心题型,搬进一个孩子能自己点、自己练和自己能看结果的小程序里。

当然,开发反而是最简单的部分。

真正让我重新“学习”的,是上线流程本身:

  • 小程序命名被驳回

  • 认证被驳回

  • 备案被驳回

前前后后折腾了 差不多 10 天,才把整个流程完整跑通。

但也正因为这样,这个小程序对我来说的意义已经不只是“给女儿用”了:

它让我完整验证了一次:

AI 辅助开发 + 微信小程序合规上线,这条路跑通了。

现在小程序已经上线了,功能不复杂,但很实用。

如果你家里也有同龄的小朋友,或者你对 AI 编程 / 小程序流程感兴趣,欢迎体验、交流 🙌

小程序码:

PS:
三年没写代码,本来以为会很吃力,结果发现真正麻烦的不是写代码,而是“上线之前的那些规则”。
但一旦跑通一次,后面就简单多了

PPS:小程序开通了流量主放了广告,如果有收入,就用来做女儿的教育基金,哈哈~😄

发不起长文了,今天发了一个扣了 100 金币。

问题

最近装了个 seafile 专业版,发现个问题,在 web 上删除文件,实际是服务器没有释放空间,执行 GC 垃圾回收也没用。
查阅了官方手册,发现有个配置项。
image
默认是不会删除的,超过期限才会删除。
实际安装后,配置文件没有这一项,但是还是有个默认值存在(有说是 30 天的)。
image-1650766322879
还有个资料库的设置,这个不能用于文件的清理。

解决

最终采用的方案是:

1、手动添加配置,设置为 0 天。

首先vi /opt/conf/seafile.conf(以自己程序安装路径为准)
image-1650766516787
配置为0

2、执行垃圾回收程序

配置完毕后停止服务(专业版可以不停止)
然后执行:/opt/seafile-pro-server-8.0.1/seaf-gc.sh进行垃圾回收。
然后就搞定了。

作者:路锦(小蘭)

背景:移动端的“可观测性黑洞”

在微服务架构蓬勃发展的今天,服务端的可观测性建设已日趋成熟。无论是 Jaeger、Zipkin 还是 SkyWalking,这些分布式链路追踪工具都能够帮助开发者清晰地观察到一个请求从网关进入后,是如何在各个微服务之间层层流转、逐级调用的。然而,当我们试图将这条链路向前延伸至移动端时,却发现一道难以逾越的鸿沟横亘其间。

  • 关联困难:移动端和服务端仿佛两座孤岛,各自维护着独立的日志系统。客户端记录着请求发起的时间和结果,服务端保存着完整的调用链路,但两者之间缺乏一条有效的纽带将其串联起来。一旦出现问题,排查人员只能依靠时间戳进行手工比对,既费时又容易出错,遇到高并发场景更是如同大海捞针。
  • 定位模糊:我们常常遇到这样的场景:用户投诉说接口超时了,但翻开服务端监控,每一条请求都显示着正常返回的 200 状态码。问题究竟出在用户的网络环境、运营商的链路质量,还是服务端在某个瞬间的抖动?由于移动端与服务端的监控体系相互割裂,我们根本无从判断故障边界,各团队之间也容易陷入相互推诿的困境。
  • 复现无门:移动端的网络环境远比服务端复杂——DNS 解析可能受到劫持、SSL 握手可能遭遇兼容性问题、弱网环境下的重试和超时更是家常便饭。这些关键信息在传统方案中往往随着请求结束而烟消云散,当问题间歇性发生时,开发者既无法还原现场,也难以定位根因,只能在用户的反复投诉中束手无策。

正是这些痛点的存在,让端到端全链路追踪的需求变得愈发迫切。我们需要一种方案,能够让移动端真正成为分布式链路的起点,让每一次用户操作触发的请求都能够被完整记录、精准关联、一路追踪到最底层的数据库调用。本文将通过一个最佳实践案例,展示如何借助阿里云用户体验监控实现移动端到后端的全链路 Trace 打通,辅助网络请求问题排查。

核心方案:端到端链路打通的技术实现

核心思想

端到端链路打通的本质是:让客户端成为分布式追踪链路的第一跳,使其与服务端链路共享同一个 Trace ID。

在传统架构中,链路追踪的起点是服务端网关——请求进入网关时,APM Agent 为其分配 Trace ID,并在后续的微服务调用中透传。而端到端打通方案则将这个起点前移到了用户的手机上,由移动端 SDK 主动生成 Trace ID 并注入到请求头中,使得整条链路从用户指尖到数据库底层都被同一个标识串联起来。

image

技术实现的四个关键环节

整个链路打通的实现可以分为四个紧密衔接的环节:

环节一:客户端生成链路标识

当用户触发一次网络请求时,客户端 SDK 在请求真正发出之前介入:

  1. 拦截请求:通过网络库的拦截机制(如 OkHttp Interceptor)捕获即将发出的请求
  2. 创建 Span:为这次请求创建一个 Span 对象,生成两个核心标识:

    • Trace ID(32 位十六进制):整条链路的唯一身份
    • Span ID(16 位十六进制):当前这一跳的唯一身份
  3. 记录起始时间:精确记录请求发起的时间戳,用于后续计算各阶段耗时

环节二:协议编码与注入

生成链路标识后,需要将其编码为服务端能够理解的格式。这里的关键是选择一套双方都遵守的“通用语言”——W3C Trace Context 或 SkyWalking SW8 协议。

客户端 SDK 将编码后的信息写入 HTTP 请求头,随请求一同发送。

环节三:网络传输与透传

HTTP 协议天然具备请求头的穿透性,这是透传能够实现的技术基础:

image

环节四:服务端接收与延续

当请求到达服务端时,APM Agent 接管后续处理,完成链路的延续:

  1. 解析请求头:从 traceparent 或 sw8 头中提取 Trace ID 和 Parent Span ID
  2. 继承链路上下文:将客户端传入的 Trace ID 作为本条链路的身份标识,而非重新生成
  3. 创建子 Span:为服务端的处理逻辑创建新的 Span,其 Parent Span ID 指向客户端的 Span
  4. 继续透传:在调用下游服务时,继续在请求头中携带同一个 Trace ID

通过这四个环节的紧密配合,移动端发出的每一个请求都能与服务端的调用链路无缝衔接,形成一条从用户设备到数据库的完整追踪链路。

链路打通协议

为了让不同系统之间能够“说同一种语言”,业界制定了标准化的链路追踪协议。目前主流的协议有两种:

W3C Trace Context 协议

W3C Trace Context 是 W3C 官方标准,具有最广泛的兼容性。

Header 格式:

image

字段说明:

image

适用场景:

image

SkyWalking SW8 协议

SW8 是 Apache SkyWalking 的原生协议,包含更丰富的上下文信息。

Header 格式:

image

字段说明:

image

适用场景:

image

实战案例:一次查询接口超时的全链路排查

理论讲完了,接下来让我们通过一个真实的排查案例,看看端到端链路打通在实际问题定位中是如何发挥作用的。

问题背景

我们基于某开源代码库构造了一个慢请求场景,架构如下图所示:

image

在日常使用中,我们发现某个页面打开十分缓慢,用户体验极差。初步怀疑是由于 API 请求响应过慢导致,但具体慢在哪里、为什么慢,还需要进一步分析。接下来,我们将借助阿里云用户体验监控的全链路追踪能力,一步步定位问题根因。

第一步:在云监控控制台定位异常请求

首先,我们登录阿里云控制台,进入云监控 2.0 控制台 → 用户体验监控 →您的应用 → API 请求模块。在这里,我们可以看到所有 API 请求的性能统计数据。

通过对“缓慢占比”进行排序,我们很快发现了问题所在:

image

image

从监控数据可以清晰地看到,API /java/products 的响应时间异常——平均耗时高达 40 多秒!这个耗时远远超出了正常范围,难怪用户会感觉页面打开缓慢。

找到了可疑的 API,接下来我们需要进一步分析它的调用链,搞清楚这 40 多秒究竟消耗在了哪个环节。

第二步:查看调用链,追踪服务端链路

点击对应 API 的“查看调用链”按钮,系统会跳转到当前请求的 Trace 详情页面。

image

image

这里就是端到端链路打通的核心价值所在——我们可以直接看到从移动端到后端的完整调用链路,无需在多个系统之间来回切换。

从链路瀑布图中可以清晰地看到:

  • 移动端发起请求后,链路完整地延续到了后端服务
  • 耗时主要发生在后端服务的 /products 接口
  • 该接口处理耗时超过 40 秒才返回数据

为了方便后续在后端应用监控中进行更深入的分析,我们记录下当前的 Trace ID:c7f332f53a9f42ffa21ef6c92f029c15

第三步:查看后端服务Trace分析

接下来,我们进入应用监控 → 找到对应的后端应用 → 调用链分析,使用刚才记录的 Trace ID 进行查询。

image

image

从后端链路数据可以还原出 /products 接口的执行链路:

  • HikariDataSource.getConnection,重复 6 次,总耗时 3ms。含义:获取数据库连接(从连接池拿)一共 6 次,总共才 3ms,不是瓶颈。
  • postgres,重复 6 次,总耗时 2ms。这是一些非常快的 Postgres 操作/小查询,同样不是瓶颈。
  • SELECT postgres.products,重复执行了1 +  5 次,总耗时 42290ms ≈ 42.3s。这行才是关键:同一个 SQL(查 products 相关)一共执行了 5 次,总耗时 42.3s,平均每次大约 8 秒。
  • 也就是说:主要时间都花在执行这个 SQL 上,而不是连库 / 建连接 / 网络。

第四步:深入分析慢 SQL

点击链路中的最后一个 Span,我们可以在右侧详情面板中看到具体执行的 SQL 语句:

-- 第一次查询:获取全量产品数据
SELECT * FROM products
-- 对每个产品执行 N 次查询(N+1 问题)
SELECT * FROM reviews, weekly_promotions WHERE productId = ?

问题的根因逐渐浮出水面:

  1. 第一次查询:SELECT * FROM products 获取所有产品,这一步耗时尚可
  2. N 次循环查询:对于每一个产品,又单独执行了一次 SELECT * FROM reviews, weekly_promotions WHERE productId = ?

这是一个典型的 N+1 查询问题!更糟糕的是,weekly_promotions 是一个特意设计的“慢视图”(sleepy view),每次查询都会执行较重的操作。当产品数量较多时,这些查询累积起来就造成了 42 秒的惊人耗时。

我们记录下当前的线程名称:http-nio-7001-exec-3,以便进一步查看 Profile 数据进行验证。

第五步:查看 Profile 数据验证结论

为了进一步确认我们的分析结论,我们进入应用诊断 → 持续性能剖析,查看后端服务的 Profile 数据。

image

image

筛选对应的线程后,我们看到了服务执行时间的分布情况:

  • sun.nio.ch.Net.poll(FileDescriptor, int, long) 耗时占比接近 100%
  • 这表明线程大部分时间都在等待 Postgres socket 返回数据

Profile 数据与调用链分析的结论完全吻合——问题确实出在数据库查询上,线程一直在等待慢 SQL 的执行结果。

第六步:定位根因

综合以上分析,我们可以清晰地定位到问题的根因:

问题根因:N+1 查询 + 慢视图

  1. 代码逻辑存在 N+1 查询问题:

    • 第一次查询:SELECT * FROM products(1 次)
    • 对每个 product 循环查询:SELECT * FROM reviews, weekly_promotions WHERE productId = ?(N 次)
  2. weekly_promotions 是一个“慢视图”,查询本身就很耗时
  3. 两者叠加,导致接口总耗时超过 40 秒

总结

全链路端到端打通解决了移动端与服务端之间的“可观测性黑洞”问题。通过在移动端注入标准化的 Trace Header,实现:

  • 统一追踪:移动端请求和服务端链路使用同一个 TraceID,一键关联;
  • 精准定位:从用户手机到数据库,每一跳的耗时清晰可见;
  • 快速定界:告别“移动端说服务端慢,服务端说网络差”的扯皮;
  • 数据驱动:基于真实链路数据优化,而非猜测。

阿里云 RUM 针对 Android 端实现了对应用性能、稳定性、和用户行为的无侵入式监控采集 SDK,可以参考接入文档体验使用。除了 Android 外,RUM 也支持 Web、小程序、iOS、鸿蒙等多种平台监控分析,相关问题可以加入“RUM 用户体验监控支持群”(钉钉群号: 67370002064)进行咨询。

参考链接:

[1] Android 接入文档:

https://help.aliyun.com/zh/arms/user-experience-monitoring/ac...

[2] Java 应用监控说明文档:

https://help.aliyun.com/zh/arms/application-monitoring/user-g...

[3] 持续性能剖析说明文档:

https://help.aliyun.com/zh/arms/application-monitoring/user-g...

本文横评 10 款产品管理系统:ONES、Jira、Aha! Roadmaps、Productboard、Craft、airfocus、Azure DevOps Boards、Rally by Broadcom、Perforce P4 Plan、Jama Connect。帮你按企业痛点与成熟度建立选型框架,减少双系统维护、口径不一与治理失控的隐性成本。

很多企业已经不缺工具,缺的是单一事实源(SSOT):需求在产品侧、交付在工程侧、路线图在 PPT/表格,最终“优先级解释不清、变更影响评估不出、交付预测越来越不准”。此时再选一套产品管理系统,如果不先搞清“它解决的是上游决策、下游交付,还是全链路闭环”,很容易把问题从“协作割裂”升级成“系统割裂”。

下面我会给你 5 个常用的测评标准判断点,你可以把任何一款产品管理系统放进这 5 个问题里过一遍,看看哪一个更符合团队的需求。

  1. 上游决策:是否支持洞察/想法沉淀、可解释的优先级(评分/公式/模型)?
  2. 路线图对齐:能否输出面向管理层/研发/业务的不同路线图视图?
  3. 交付联动:需求到迭代/任务的映射是否自然,还是要“人工翻译”?
  4. 追溯与审计:变更发生时,能否快速看到影响范围,并留证据链?
  5. 集成与可维护性:和现有工具链集成后,谁维护、如何升级、失败如何补偿?

最小 POC 建议:用 3 条真实需求跑通“从决策到交付/验证”的链路,并故意做 1 次变更,观察系统是否能让影响分析与同步成本可控。

工具盘点:10 款产品管理系统测评

1)ONES:一体化研发管理平台型

核心定位:强调“一个平台实现端到端的软件研发管理”,从需求管理、迭代跟进到测试,并提供效能改进与开放拓展能力;产品线包含 ONES Project、ONES TestCase、ONES Wiki 等。

产品管理能力:适合把“需求池—迭代计划—缺陷/测试—交付质量”放在同一数据结构里,减少产品系统与工程系统之间的反复同步。对 VP 来说,它的价值更像“研发侧 SSOT”:当管理层问“为什么延期/风险在哪”,你能从链路数据里给出一致解释。
项目/交付管理能力:平台型系统天然强调流程与度量一致性——如果你的组织希望把敏捷/瀑布/混合流程落到同一治理框架中,这类产品更容易形成长期资产(模板、字段口径、报表口径)。

适用场景:多团队多项目、希望减少工具割裂;或国产化替代背景下,希望“需求—测试—知识库—流水线”尽量在同一生态中。

优势亮点:闭环完整、数据口径更容易统一;对研发效能与质量治理更友好(尤其当 PMO/效能团队愿意做数据治理)。

ONES 产品管理全景图

2)Jira + Jira Product Discovery

核心定位:Jira Product Discovery 主打“捕捉洞察、优先级排序、构建路线图——都在 Jira 内完成”,并强调用数据与客户洞察帮助团队做出更有影响力的优先级决策。
产品管理能力:强在“把上游讨论结构化”:洞察/想法/机会进入同一空间,优先级可围绕证据与数据展开;路线图视图用来减少对齐成本(尤其面对业务与管理层)。
项目/交付管理能力:如果你的交付已经在 Jira Software,JPD 的价值在于减少“从产品语言翻译成工程语言”的损耗——至少能让上游输入更可追踪。
适用场景:Jira 生态已经很深、产品团队想补齐 discovery 能力;或全球化团队需要依托成熟生态协作。
优势亮点:生态成熟、协作惯性小;对“把产品讨论从口水战拉回证据链”很有效。
局限与使用体验:高度可配置带来的副作用是“标准不统一就会越用越乱”。你需要明确:哪些字段是组织标准、哪些是团队自定义;否则后期数据不可比。

3)Aha! Roadmaps

核心定位:强调建立优先级框架,用 scorecard/feature scores 让功能优先级更客观,并帮助团队对齐“下一步做什么”。
产品管理能力:非常适合把“价值/成本/风险/战略契合度”等维度显性化,让优先级讨论变成“可解释的计算题”。当你的组织有多个产品线、需求争夺资源激烈,这种“框架化优先级”能显著降低内耗。
项目/交付管理能力:它更像“产品办公室/组合管理层”的系统——擅长表达与对齐,但下游交付通常仍要对接工程系统。
适用场景:产品战略与路线图需要强表达;管理层需要一套可复盘的优先级机制;产品线多、节奏复杂。
优势亮点:scorecard 不是装饰品,它能把“谁更会说”变成“标准化权衡”。
局限与使用体验:上游强不代表闭环强——如果工程侧系统割裂或集成不稳,容易出现“路线图很好看,交付仍失真”。

4)Productboard

核心定位:强调帮助产品经理理解客户需求、确定优先级,并让团队围绕路线图达成一致。
产品管理能力:当你们最痛的是“反馈太多、信息太散、优先级总靠拍脑袋”,Productboard 的核心价值在于把“客户声音→机会→功能”这条链条系统化:既能沉淀证据,也能形成对外对内一致的路线图叙事。
项目/交付管理能力:通常需要与工程系统配合;它更强在上游决策质量与对齐效率,而不是替代工程执行系统。
适用场景:面向外部客户/多渠道反馈;需要把需求证据链纳入治理(避免“谁提得急就先做”)。
优势亮点:对 VP 来说,能减少“做错方向”的返工成本,这往往比单点效率提升更值钱。
局限与使用体验:如果工程侧没有明确 SSOT,容易形成“双系统写需求”的隐性成本;必须在流程里定义清楚:哪些字段在 Productboard 负责,哪些字段在交付系统负责。

5)Craft.io

核心定位:强调从 ideation 到 execution 的 OKR 全生命周期管理,并把 objectives 连接到 initiatives、projects、epics;同时支持 OKR-based roadmaps。
产品管理能力:它的强项是把“目标—举措—特性/史诗”串起来。对企业级产品而言,这会直接提升 ROI 讨论质量:不是“这个需求看起来不错”,而是“它对应哪条目标、预期带来什么指标提升、投入多少交付成本”。
项目/交付管理能力:适合作为产品侧中枢,再与工程系统联动;它更擅长管理“做什么/为什么做/如何取舍”,工程过程度量仍要看你们的交付底座。
适用场景:OKR 已经是“硬机制”,需要把路线图与目标绑定;产品线多、跨团队对齐成本高。
优势亮点:优先级模型 + OKR 绑定,会让需求排序更可解释、更可复盘。
局限与使用体验:如果 OKR 本身口径不清或频繁摇摆,系统会把混乱“结构化”地记录下来;建议先把目标治理做好再导入。

6)airfocus

核心定位:自我定位为“模块化产品管理软件”,用于管理与沟通产品策略、优先级与路线图,并强调解决“做对问题”。
产品管理能力:适合从上游切入——先把优先级与路线图做清楚,再逐步与交付系统打通。对很多企业来说,这比“一步到位换平台”更现实:组织阻力小、试点更快、ROI 更容易证明。
项目/交付管理能力:airfocus 本身不是工程执行系统,但它强调与 Azure DevOps 等的集成,让策略与日常开发保持同步。
适用场景:产品团队需要提升上游决策质量,但工程体系暂不动;或希望先建立产品 SSOT,再逐步整合。
优势亮点:模块化带来的“可控引入”是关键优势——先拿下最痛的环节(优先级/roadmap),再扩。
局限与使用体验:闭环强弱高度依赖集成质量;若工程侧字段/流程不标准,最终仍会回到人工对齐。

7)Azure DevOps Boards

核心定位:Azure Boards 的看板实践强调 WIP 限制:通过强调“完成优先于开始”,团队往往获得更高生产力与更好质量;官方文档给出如何设置与实施 WIP 的指南。
产品管理能力:更偏“把需求拆成可交付工作并持续跟踪”,对需求证据链、路线图叙事并不突出;但如果你的目标是提升交付确定性,它能提供更可信的过程数据。
项目/交付管理能力:强在看板治理、瓶颈识别与流程改进(WIP 本质上是“用机制逼迫组织减少多任务切换与等待浪费”)。对 VP 来说,这是效能体系落地的硬工具。
适用场景:微软生态、DevOps 流水线与工程管理一体化诉求强;效能团队希望用过程数据推动改进。
优势亮点:度量可信、治理可操作——能把“感觉很忙”变成“瓶颈在哪里、该怎么调 WIP/拆分工作”。
局限与使用体验:如果把它硬当成完整产品管理系统,产品团队会觉得“上游不够产品化”;更合理的方式是:用它做交付底座,上游用专门的产品发现/roadmap 工具补齐。

8)Rally by Broadcom

核心定位:Rally 官方强调“从投资决策到交付的完整可追溯性”,并作为 ValueOps 平台的一部分与其他产品集成、支持规模化。
产品管理能力:它更像“组合/价值流层”的产品管理系统:当你要回答“资源投到哪些主题/举措、跨团队进展如何、关键优先级是否一致”,Rally 的强项在于把工作映射到更高层级的业务优先级。
项目/交付管理能力:支持用 Portfolio Item 表达 initiative/feature 以计划、优先级与跟踪工作,这对大组织的节奏对齐很关键。
适用场景:多团队多项目、多层级治理;PMO/效能团队需要统一方法论与组合视角;管理层强烈要求“可解释的进展与风险”。
优势亮点:减少“汇报型管理”,提高“系统型治理”——让领导看见的不是 PPT,而是从投资到交付的链路状态。
局限与使用体验:治理成本高、对流程纪律要求强;如果组织没有统一口径,上线后可能变成“填报系统”。

9)Perforce P4 Plan(formerly Hansoft)

核心定位:Perforce 官方描述 P4 Plan 能用多种视图(Product Backlog、Quality Assurance、Planning)洞察项目范围,并支持 capacity planning、查看项目历史、可本地或云部署。
产品管理能力:当你的核心挑战是“复杂依赖 + 资源约束 + 计划频繁变更”,P4 Plan 的价值在于把计划从静态表格变成动态系统:依赖关系、范围变化、产能约束可以更直观地被管理与讨论。
项目/交付管理能力:它适配多交付方法(敏捷/瀑布/混合),适合在大规模协作中做“计划可信度治理”。
适用场景:复杂工程(例如大型产品、跨团队依赖强)、对排期与资源规划敏感;希望提升计划可执行性,而非只做任务跟踪。
优势亮点:依赖管理与产能规划是硬能力;当你要把“承诺交付”变得更可信,这类工具往往比“更花哨的 roadmap”更有用。
局限与使用体验:上游洞察与路线图叙事不是它的强项;如果产品团队需要强 discovery,通常要配套上游工具。

10)Jama Connect

核心定位:强调 Live Traceability(实时追溯),用于跨需求、测试、风险活动建立端到端追溯并持续改进过程绩效;并可从高层需求追溯到最终测试。
产品管理能力:它解决的不是“路线图怎么画”,而是“变更影响怎么控、证据链怎么留”。对强合规行业,系统能否在需求变化时快速定位影响并形成审计材料,往往决定了交付风险与合规成本的上限。
项目/交付管理能力:更偏需求工程与验证闭环;测试侧能力上,Jama Connect 会自动建立测试用例与测试运行之间的追溯关系并在 Trace View 显示。
适用场景:医疗、汽车、工业控制、航空航天等高风险/强合规产品;或“软硬件协同”场景下,对需求一致性与验证闭环要求很高的组织。
优势亮点:VP 视角 ROI 主要来自风险下降:返工减少、验证更可控、合规更稳;而不是单点效率提升。
局限与使用体验:方法论与流程要求更严肃;若组织只想要轻量需求池,会觉得“过重”。

常见问题 FAQ:

Q1:产品管理系统和项目管理系统有什么区别?
A:项目管理系统更关注“按计划推进任务”;产品管理系统更关注“为什么做、先做什么、如何对齐路线图,以及如何与交付/追溯闭环”。如果缺少优先级与路线图能力,往往更像项目管理。

Q2:中大型企业一定要两套系统(产品 + 交付)吗?
A:不一定。关键在 SSOT 放哪,以及同步是否可持续。平台型一体化能降低双系统成本;上游产品系统 + 工程系统组合则更灵活,但治理要求更高。

Q3:选产品管理系统最常见的 3 个坑是什么?
A:把“功能演示”当“落地能力”;忽略字段/流程治理导致口径失控;低估集成与数据一致性的长期维护成本。

Q4:POC 做多久比较合理?
A:建议 6–8 周:第 1–2 周对齐需求分层与字段口径,第 3–6 周跑 1 条业务线真实需求闭环,第 7–8 周复盘度量口径与推广成本。

Q5:为什么我更强调追溯(Traceability)?
A:因为追溯决定你能否在变更发生时快速评估影响与风险,并形成可审计证据链。对强内控/强合规企业,这是“成本与风险”的硬约束。

生成式 AI 的投资回报远超预期?Snowflake 调研全球 1900 位企业与 IT 专业人士后发现平均 ROI 高达 41%!点击下载完整报告

数据与 AI 的变革正以前所未有的速度重塑产业格局,2026 年年初,Snowflake 与 InfoQ 联合呈现的“Make it Snow”2025-2026 Data+AI 年度时刻,汇聚了来自医疗、制造、汽车等领域的顶尖专家,共同探讨数据智能的前沿突破与未来方向。

这场以“炉边对话”为形式的深度交流,不仅回顾了 2025 年 Data+AI 领域的认知重构,更围绕 2026 年十大战略命题展开思辨,为行业奉上了一场兼具思想深度与实践价值的智慧盛宴。与此同时,各位专家还分别留下了对 2026 年的一个技术预言,点击此处可快速了解这些极具前瞻性的洞见。

本文力求完整呈现这场思想碰撞的核心洞察,见证数据与 AI 如何从技术概念转化为驱动产业革新的核心力量。

2025 年带给你的三个认知突破

Q:回看 2025 这一年,Data + AI 的很多变化,往往是在一次次具体实践中慢慢显现出来的。可能是一次惊艳的产品体验、一次真实落地的尝试,也可能是一个业务场景,或者一段走弯路之后的重新理解。正是在这些时刻里,我们对 Data + AI 的判断发生了变化。请每位嘉宾回顾这一年,有没有哪几个真正的 Aha Moment(顿悟时刻),让你感到茅塞顿开,认知被重构了,如果让你选 3 个这样的关键时刻或经历,它们分别是什么?

杨扬(Snowflake 亚太及日本地区解决方案工程副总裁):2025 年大模型演进呈现出"疯狂超车"的态势,从年初 DeepSeek 将推理成本降至十分之一,到年中 Claude 展现资深工程师级编程能力,再到 Gemini3 在科学推理领域的突破,最终以 ChatGPT 5.2 模型实现多模态无缝切换,这些迭代揭示了一个核心认知:技术选型的关键不在于追逐当下最优,而应基于特定应用场景、预算限制及部署规划进行理性决策。 与此同时,AI 安全风险愈发严峻,如 2025 年 6 月发现的“隐形提示词注入”漏洞,攻击者可利用邮件中肉眼不可见的指令诱导 AI 自动读取并外泄网盘内的敏感信息。这充分说明,尽管 AI 功能日新月异,但在企业落地评估中,安全保障必须始终位列首要地位。

朱亦非(罗氏中国 Snowflake 数据平台技术负责人):2025 年 Data+AI 的变化不少,其中有这样三个关键的时刻:其一,罗氏诊断提出“三重确定”数字化战略:实现从实验室到临床的 AI 穿透。 通过整合肝癌辅助诊断算法与肝病管理数字化平台,AI 已能驱动从影像学检查建议,到定期随访计划,再到生活方式干预的全链条行动;其二,第八届数字中国建设峰会数字医药专题会议:从监管高墙到智慧灯塔的转型。 药监局推动的“AI+ 药物监管”模型,使企业从规避监管转向主动参与标准定义;其三,罗氏制药发布小罗智星 AI 科研解决方案:从赋能工具到科研主体的蜕变,“小罗智多星”AI 科研方案覆盖选题、文献解读到论文撰写全流程,在 700 余家医院落地 600 多个项目,证明 AI 不仅提升效率,更能激发和扩展人的创造力。

高杰(蔚来汽车人工智能研发负责人 & 高级总监):2025 年大模型演进带来的首个关键认知源于 DeepSeek 对推理技术的“祛魅”。相较于 OpenAI o1 最初局限于数学等可验证领域的神秘感,DeepSeek 不仅证明了高逻辑推理能力具有从特定学科向通用场景迁移的普适性,更将原本封闭的技术转化为行业易于获取的普惠资源。紧随其后的第二个转折点是 Claude Code 工具的诞生,它直观地展示了 AI 如何走出实验室假想、真正解决现实世界长程任务的理想形态。这两大突破推动我们重新定义汽车座舱:从交通工具到“有温度的情感伙伴”,需要拟人交互、全能帮手、深度理解三方面能力的协同进化,而数据正是实现“懂你”这一核心价值的基础。

陈砚琳(Snowflake 行业实践专家):工业场景的认知重构聚焦于数据基础设施的价值重估。首先,多云异构环境下的数据互联成为可能,Snowflake 的跨云部署与合规特性,解决了跨国企业数据孤岛与跨境流动难题;其次,Cortex Analyst 等工具重塑了业务 - 技术协作模式,将两到三周的需求响应周期压缩至实时交互,释放了业务用户的数据分析潜能;最后,数据迁移的无缝衔接验证了平台兼容性的重要性,Snowpipe Streaming 等工具实现了 ERP、CRM、IoT 等多源数据的高效集成,证明基础设施的弹性决定了 AI 应用的落地速度。

郭炜(白鲸开源 CEO):首先是 “开源加成”。长年积累、架构稳定的开源项目已被大模型深度内化,AI 成为了最了解项目细节的“专家”,这赋予了开源项目全新的技术生命力。其次是 个体能力边界的跨越。AI 已从简单的对话进化为高质量的结果交付,即便非技术背景人员也能通过精准提示产出极具专业深度的技术内容。大模型突破了物理时间的限制,极大扩张了人的认知与能力边界。最后是 从交互到自动化的范式转移。以 DolphinScheduler 的演进为例,传统的“拖拉拽”操作正被意图驱动的自动流生成所取代。未来,人机对话将简化为纯粹的需求提出,由模型间自主协同完成复杂流程,实现真正的全自动化代理。

史少锋(Datastrato VP of Engineering):1)2025 年 AI 的核心演进可归纳为 从“知识问答”向“全能代理(Agent)” 的全面跃迁,MCP 标准协议的开源使 LLM 操作外部软件接口的门槛大大降低,MCP 标准协议是 Agent 技术普及的关键催化剂;2)Claude 等模型在自动化编程领域的出色表现,则颠覆了传统软件的开发模式,AI 从“完成代码补全”进化为“全功能、全流程的开发助手”;3)新版千问 APP 的“奶茶点单”功能则展示了个人数字助理的新形态,通过 API 调用、位置感知与无缝的支付集成,实现从语言下达指令到订单交付的端到端闭环,预示着个人数字助理时代的加速到来。

李飞(数势科技 AI 负责人):Data Agent 产品的实践带来三个认知转向:从只盯技术参数看,到更要盯着“人”看: 当产品形态只做 Chat 的时候,仅关注准确率和速度会陷入“Data Search”陷阱,而融合大模型知识才能创造超出预期的价值;产品形态回归经典的必然性:dashboard 等经典形态仍是数据交互的有效环境,Agent 需要可沉淀的操作空间;从功能博弈到专业信任: 传统项目执着于“功能清单”式验收,导致产品在竞品间的比拼中陷入功能堆砌的泥潭,逐渐丧失核心价值主张。Data Agent 逐渐要从功能型的清单型交付,走向专业型交付,这也对交付人员提出了更高的 AI 认知要求。

十问 Data Strategy,AI Strategy

Q1:企业在打造统一的 Data + AI 平台时最大的挑战是什么?

杨扬指出,企业在构建统一 Data+AI 平台的过程中,真正的深层挑战并非源于 AI 模型本身的技术上限,而在于 数据土壤。他形象地将这一挑战比作“果园”的经营:单一模型(树苗)的验证可以通过局部资源的倾斜(温室培育)快速见效,但若要实现企业级的规模化部署与持续产出,则必须依赖于高质量的“数据土壤”。

在规模化落地阶段,企业面临的考验在于数据土壤的“有机质含量”与“灌溉系统”是否完备。这具体体现为:数据能否支撑 AI 跨部门、跨场景进行深度的洞察集成;在权限下放至一线管理人员时,企业是否具备精细化的安全隔离与治理能力;以及在 AI 输出指令或决策后,系统是否拥有完整的可观测性(Observability)以实现追溯与审计。

从实践数据看,企业招标需求中 80%-95% 聚焦于数据管理、存储效率与安全治理,仅 5%-20% 涉及模型训练与调优。这表明 CIO 们已清醒认识到:没有高质量、可治理、安全可控的数据基座,AI 应用终将沦为“沙上建塔”

Q2:2026 年 Agentic AI 应用会迎来爆发吗?如何确保这些 AI 应用产生可信、可解释的决策?

杨扬认为,2026 年 Agentic AI 将实现“突破”,而非“爆发”,其差异在于行业与企业的数字化成熟度分化。技术演进需经历学术突破、试点验证、规模化部署、普适应用四阶段,目前多数企业仍处于试点向规模化过渡的关键期。爆发的临界点在于数据基座的就绪程度, 当企业能将多模态数据高效整合、实现基于角色的权限管理、并建立 AI 决策的全链路可观测性时,Agentic 应用才能真正落地。关于可信性,需分场景定义标准:消费推荐等容错场景可接受一定误差,而财务报告等严肃场景则要求零容错。

Q3:如何看待开源与闭源在 Data+AI 领域的博弈?开源技术和社区力量将在 2026 年发挥怎样的作用?

郭炜提出“社区价值大于代码开源”的观点,认为 2026 年将迎来“Community over Code” 的范式转移。随着 Agentic AI 的发展,代码实现的重要性下降,而问题定义、需求拆解等“提问能力”成为核心。开源社区的价值将体现在:汇聚多样化问题视角、形成集体智慧沉淀、推动技术普惠化。史少锋深表认同,他以 AI 编程实践为例:当机器能高效生成代码时,人类的核心竞争力转向创意与需求定义,社区的 Brainstorming 比代码提交更具价值。

Q4:当人人都问 AI,知识社区注定会没落吗?新的具有“活人感”的经验会从哪里生长?

郭炜认为,以问答为核心的知识社区将不可避免地衰落,因为 AI 能提供更即时、个性化的答案;但以兴趣为纽带的讨论社区(如 Reddit)将崛起,这类社区的价值在于“活人感”的经验碰撞,观点的交锋、情感的共鸣、以及非结构化的创意激发。郭炜进而提出了一个“暴论”——未来 90% 的互联网信息可能由 AI 生成,人类创作将成为“稀缺品”,类似毛笔字的艺术价值。李飞补充道:新经验生长可能将呈现“无形化”特征:非正式的一对一交流、线下研讨会,都可能成为创新源泉。正如直播中嘉宾们的即兴讨论,这种实时互动产生的洞见,正是 AI 难以复制的“活人感”。

Q5:2026 年工业 AI 实现规模化突破的关键点在哪里?

陈砚琳指出,工业 AI 的规模化突破不在算法本身,而在于 数据基础设施的系统性构建。随着预测性维护、缺陷检测及智能排产等算法趋于成熟与同质化,AI 算法本身已难以构筑企业的核心护城河。真正决定胜负的,是企业是否拥有坚实统一且可靠的数据平台。工业场景的数据极其庞杂,不同设备以迥异的频率和格式实时产生海量数据,若缺乏长远规划,极易陷入数据孤岛的困局,阻碍后续的数据消费。因此,企业成功的 AI 应用必须建立在对零散数据的合理规划与统一摄入基础之上。一个合格的数据系统,应确保用户能精准获取所需数据,并以预期的形式高效消费。

Q6:在医药健康场景里,您最看好 2026 年 AI 落地的哪一个高价值方向?

朱亦非认为,AI 驱动的候选药物分子生成与优化 将成为 2026 年医药健康领域的高价值方向。其核心逻辑在于:业务上,它直接切入研发核心,通过缩短早研周期与降低筛选成本实现立竿见影的财务回报;合规上,随着临床研究法规的完善,内部数据闭环下的 AI 研发已具备明确路径;技术上,继 AlphaFold 突破后,生成式分子设计已进入临床验证的爆发期。此外,在战略协同上,药企可利用自身在肿瘤、免疫等领域的优势数据,构建“模型 + 数据 + 药物”的增强闭环。而在实施维度,通过跨职能团队协作、高效数据治理以及与顶尖 AI 平台的深度耦合,能够有效管控技术复杂度与实施风险。

Q7:在大模型与数据智能加持下,如何将汽车重新发明一遍?

高杰提出,当前汽车行业已从“能源竞争”上半场进入“智能化竞争”下半场。智能汽车的第一性原理,在于打造一个集“智慧空间”与“情感伙伴”于一体的拟人化交互系统。实现这一愿景需深度的软硬一体化布局:硬件层 需构建高带宽、低延迟的中央计算架构;中间层 需设计面向 AI 的操作系统(如 SkyOS)与数据中间件,确保整车跨域数据的自由流动与实时调度;应用层 则通过 NOMI Intelligence 等智能软件系统,将底层能力转化为具备主动智能的 Agent 体验。通过这种从芯片到应用的全栈叠加,汽车正从单纯的交通工具进化为全知全能的数字化情感伙伴,这也已成为行业共识的赛道终局。

Q8:当数据分散在多云和多种 AI 工具中时,我们是不是在制造新的孤岛?该如何打破?

史少锋认为,面对多云环境与 AI 工具普及带来的数据孤岛挑战,应从技术效能与数据治理两个维度辩证分析。首先,AI 技术的引入,一方面降低了数据工程的门槛,通过加速 Data Pipeline 的开发与自动化取数流程,AI 能够从技术层面有效提升数据开发和加工的效率,缓解传统数据孤岛的痛点;然而另一方面,随着 AI 应用的深化,大量的信息在跟 AI 的交互中产生,若缺乏合理的沉淀与治理机制,既可能造成知识流失,也可能演变为企业的“信息黑洞”。破局的关键要从组织、技术选型、业务等多个层面协同;当下原有的架构和实践会被颠覆,但新标准的产生还有待时日。

Q9:当 AI 都能替我打工了,我为啥反而更累了?

李飞认为这或许是 “杰文斯悖论”在个体生产力领域的重现,AI 极大缩短了单项任务(如撰写代码或制作 PPT)的耗时,但在组织效率博弈中,这种提效并未转化为闲暇。其次,角色身份从“生产者”向“监管者”转型。AI 虽能自主生成海量内容,但由于其可信度尚无法完全托管,从业者必须承担起更沉重的审核与融合责任。从另一个维度看,AI 极大地降低了创意落地的门槛。这种“即时验证”能力的释放,也导致了实践频次的增长,但也有可能带来“累并快乐着”的幸福感。

杨扬进一步指出,AI 将人类从重复性工作解放后,大脑需处理更深度的思考任务,如同项目经理协调多个 AI Agent,这种认知负荷的增加带来“心累”体验。但这种累是创造性的、价值增值的,正如从“体力劳动者”到“知识工作者”的转型,AI 时代的“累”预示着人类价值向更高维度跃迁。

Q10:在这一轮数据基础设施行业的整合洗牌中,数据链上下游最值得关注的协同创新机会是什么?

杨扬认为在数据基础设施行业的整合洗牌中,最值得关注的协同创新机会在于 “将算法与用户体验带向数据,而非搬运数据”。以 Snowflake 并购 Observe 为例,这种上下游整合揭示了三大核心逻辑:

首先,减少数据孤岛的产生。通过将企业的业务数据(如财务、人力)与底层运营数据(如系统日志、安全数据)整合至统一平台,从源头上降低了数据孤岛在企业内部数据生态中的比率。其次,变革软件开发与交付模式。当应用直接构建在数据平台之上,开发者无需再关注算力寻址或数据建模,实现了运算、算法与用户体验同数据的无缝衔接。最后,驱动跨职能的协同效率。上下游的打通打破了业务人员与运维人员的沟通壁垒,使得“系统在线时长对营销的影响”等跨域问题能在统一平台上快速得到解答。这种将计算能力向数据侧下沉的模式,不仅规避了数据搬运带来的额外风险与人力开销,更构筑了完整且受控的平台级协同优势。

这场年度对话深入剖析了 Data+AI 时代的变革逻辑,并达成了一个关键的行业共识:一个坚实、可靠、治理良好的数据基座,不仅是 AI 战略从愿景走向现实的唯一路径,更是决定企业智能进化上限的核心势能。 与会专家通过回顾 2025 年的“落地实战”并展望 2026 年的战略命题,清晰地揭示了产业图景的变迁——技术的竞争焦点已超越模型算法本身,全面转向数据质量、安全治理与平台工程化能力的综合比拼。

站在 2026 年的关口,数据从业者们正身处一个历史性的交汇点。AI 的爆发式增长不仅带来了无限的创新可能,也对底层的“数据土壤”提出了近乎苛刻的要求。面对智能时代的不确定性,构建一套稳健、透明且具备确定性治理逻辑的数据体系,已成为从业者们共同的使命。作为全球数据云的引领者,Snowflake 始终致力于打破数据的孤岛与边界,未来将继续与广大数据从业者并肩同行,扎根数据深处,在波澜壮阔的智能变革中,以笃定的数据基座驱动业务的无界创新,共同定义 Data+AI 的下一个黄金时代。

错过直播的朋友可以点击此处观看完整版回放~

更多 Snowflake 精彩活动请关注专区

2025 年下半年,存储价格又一次成为行业聚焦点。

多家市场机构统计显示,2025 年三季度跟四季度,DRAM 和 NAND 价格一路攀升。根据 Tom's Hardware 披露的数据,2025 年 DRAM 合同价同比上涨幅度高达 171.8%,创下历史新高。此轮上涨跟 AI 数据中心建设拓展、服务器需求集中释放紧密相联,还直接引发企业 IT 基础设施采购成本上升。

对于依赖自建数据中心或中小 IDC 的企业来说,这种变化带来的冲击尤为剧烈。硬件采购从一次性预算问题,演变为难以预测的长期成本风险。服务器、SSD 和内存条的价格不再稳定,交付周期也更不确定。企业在扩容时不得不承担高价买入、供货延迟的双重压力。

因此,将硬件采购压力转化为按需付费的运营支出,把价格波动风险转移给云服务商,正在成为越来越多企业的选择。

但问题并未因此结束。

随着业务迁移到云端,企业发现云账单中存储与内存的占比仍在持续上升,即便算力配置并未明显升级,总体成本依旧水涨船高。部分团队开始反思:问题是否仅和数据量增多有关,还是资源使用方式本身就存在不合理的地方?

目前,多数云实例依旧按固定的 CPU 与内存配比来交付,诸如 2 核 4GB、4 核 8GB 的规格。早期,这种设计可简化资源管理,推动了云计算普及,但如今业务形态有所改变,企业系统一般得同时支撑多样业务,各业务对于算力、内存的消耗不一样,固定规格愈发难以契合实际需求。这导致企业要么部分资源长期闲置,要么不得不面对业务在高峰阶段出现性能瓶颈的风险。

当内存价格进入上行周期,这种规格错配带来的浪费被进一步放大:闲置的不再只是资源本身,而是越来越昂贵的成本

正是基于这样的背景,云基础设施走到新的路径分岔口:是继续就资源本身实施配置,还是转变方向围绕应用需求设计算力供给方式?

在近期面向中国区合作伙伴召开的发布会上,华为云对 Flexus 云服务器系列规格及性能进行更新,并且展示了其在各种业务负载下的运行表现。该实例基于华为云首创的柔性算力技术,打破 CPU 与内存的固定绑定关系,使企业能够按真实业务需求配置资源,从源头减少内存浪费,并结合智能调度与应用级加速改善长期运行稳定性与算力资源投入产出比。本文将从行业环境变化与技术实现等层面,剖析这种模式背后的思路,以及它所代表的云服务器演进方向。

云服务器,开始不太“合身”了

云服务器长期采用固定 CPU 与内存的配比,是工程上的一种取舍考量。早期云平台首先得解决的是规模化交付和稳定调度的问题,采用固定规格利于资源池管理,同样便于容量规划及计费设计。当业务形态呈现相对单一阶段,这样的方式尚可接纳。但究其本质它是从平台管理成本角度设计的,并非从业务负载的角度出发。

如今业务已不再是单一模式,电商、内容分发、数据库、缓存、AI 推理在一套系统中同步协同运行,对 CPU 以及内存的需求差别明显,固定规格无法精准对应实际负载,企业只能采用超出实际所需的实例型号。云服务器规格跟应用需求普遍不匹配,用户往往被迫去为用不到的算力和内存付费,引发大量资源的闲置浪费。

资源浪费只不过是表象罢了,更深层的问题体现为性能优化的复杂度。现实的业务部署不仅涉及操作系统选定,还包含网络参数、系统参数以及应用配置参数。数量往往达到数千级别,缺少专家经验积累,难以达成稳定的最优配置。单是内核跟应用层的参数组合,就已超出普通团队可控范围,调优所用的周期漫长,效果也难以把控。

从较长的时间阶段看,云服务器本身一直在不断演变,最初的资源虚拟化阶段,是把物理服务器标准化成可租借的实例;紧接着进入弹性规模阶段,采取自动伸缩的方式去应对流量变化,这两个阶段处理的是存不存在以及是否充足的问题,当下已经迈入第三阶段,关注焦点转向使用是否高效。过去,固定实例曾是工程优势,如今却愈发像是一件穿着不合身的衣服。

柔性算力:从“卖规格”到“卖能力”

怎样让资源本身更贴近应用?在 Flexus 云服务器 X 实例产品的设计里,华为云引入了柔性算力这一概念。

在 Flexus X 实例里,柔性算力首先体现在规格形态的调整变化上。传统实例一般仅仅可在少量固定比例中选择 CPU 跟内存配置,而该实例支持按业务需求实施更精细的组合配置。发布会现场提到,所有 X 实例均支持多种非常规的 CPU/ 内存配比,包括 3:1、2:5、3:7 等组合。这可减少由规格不一致引起的资源闲置,让用户更接近按实际负载付费。

然而规格数量增加,并非表示问题自动就解决了,其关键是系统如何判断哪种配置更合适。传统调度大多依据节点上剩余的 CPU 与内存。新方式需要领会业务负载本身,涵盖资源使用结构,以及随时间的变化趋势。Flexus X 实例本质上不再是调度 CPU,而是实际的业务场景。

就工程实现而言,这种转变依赖底层架构的支撑,Flexus X 实例借助华为云自研的擎天 QingTian 架构和瑶光云脑调度系统得以实现,经由计算、存储和网络资源的解耦操作,提高了资源组合的自由度,也增强了非标准规格运行状态下的稳定性。

此外,柔性算力还意味着配置不再是一次性决定,实例运行时会一直对资源使用状况进行评估,系统会判断当前配置跟负载是否相符,进而给出调整建议,而且还支持算力规格热升降的独家能力。从这个层面看,Flexus X 实例的转变不只是规格数量增多,它更像是把算力从提前打包好的商品,变成可持续优化的能力,实现“应用驱动算力”的最优体验。

关键应用加速:算力之外的第二条性能曲线

Flexus X 实例不单单改变了资源形态,还进一步深入应用执行层,解决了算力配置合理系统却依旧不稳定的问题。

此次规格升级,华为云为数据库以及中间件类的负载引入专属应用级加速机制。Flexus X 实例针对 PostgreSQL、Memcached、MySQL、Redis、Nginx 提供了独立的一键加速能力,由 X-Turbo 应用加速引擎统一驱动。此类优化不会对用户的使用途径做出改变,实例创建结束之后即可启用,平台会把调优工作完成,用户无需插手复杂参数的配置。发布会现场,华为云对该能力实测演示,在 PostgreSQL 的使用场景下,Flexus X 实例的吞吐量达到 2.1 万 + TPS,大概为同规格业界旗舰型实例的 3.4 倍

就数据库这类系统而言,峰值性能仅仅属于一方面,更为关键的是高负载持续状态下的稳定输出能力。业务系统更易受诸如延迟抖动、连接堆积等问题的干扰,而不是单次压测形成的成绩。X-Turbo 的设计目标之一正是实现性能优化长期运行状态下的吞吐与响应稳定性。

跟应用级优化同步进行的是,实例规模的进一步扩展。新一代 Flexus X2e 实例的 x86 规格从原本的 32U128G 提升至 64U256G,多核算力提升了约 30%;新增 Flexus KX1 鲲鹏实例,最高可达 80U320G,以覆盖大数据处理、内存数据库这类资源密集型场景。这意味着应用加速机制不再受中小规格环境约束,能在规模更大的资源池里发挥作用。

这一系列的变化显示出云服务器性能边界正在转移。过去,性能更多由 CPU 规格和内存容量决定。而如今,应用执行路径、参数组合的方法及调度策略成为同等要紧的变量,在固定规格的时代里,这些优化由用户自己承担,而于 Flexus X 实例中,它们被纳入到算力交付范畴,正是从这一意义出发,云服务器竞争不再只是资源规模大小的比拼,而是发展为聚焦运行效率的系统工程。

从工程能力到真实落地:柔性算力如何进入生产系统

一项新的算力供给方式,能否切实进入生产系统,首要取决于它是否具备充足的稳定性与可用性。Flexus X 实例可靠性设计向华为云旗舰级云服务器标准看齐,实现单 AZ 99.975% 的可用水平,还有跨 AZ 99.995% 的可用性。这暗示柔性算力没有以牺牲稳定性为交换代价,而是可直接承受核心业务负载的基础设施形态。

除了稳定性这一点,规模化使用还取决于运维体系自身是否具有确定性,Flexus X 实例在华为云既有的 SRE 运维体系框架内运行,强调借助标准化变更、容量预测与故障演练减少系统行为的不确定性,实现大规模实例并发运行的可控性。

从行业落地的实际来看,柔性算力最先进入的并非那种单一业务场景,而是负载结构繁杂、资源使用波动大的系统类型。其已经在医疗电商平台迁移、连锁零售系统、医药行业信息化平台、游戏服务器迁移等场景大规模部署,用以承载数据库、中间件及核心交易服务。

中软国际智能集团云业务部副总经理王春玉在发布会上分享,团队为某大型生物医药集团搭建系统的时候,引入 Flexus X 实例作为数据库及业务服务的主要承载环境,在原有系统架构未改变的情形下完成迁移,而且在性能满足要求的前提下,达成约 30% 的综合成本下降。王春玉还谈到,其团队服务的一家专业酒水直营连锁品牌,把部分核心业务迁移到 Flexus X 实例而后,通过规格按需匹配与资源利用率优化,实现整体云资源成本约 15% 的下降。这些亮眼的结果主要源于两方面:一是实例规格跟业务负载的匹配度有所提升,降低了长期闲置资源的数量;二是借助应用级加速与调度优化,降低了单位业务量所需的算力规模。

从这些真实的实际部署案例能看出,Flexus X 实例的用户一般有几个共同特性:业务负载呈现明显波动,系统结构相对复杂,然而运维及架构团队的规模较为有限,同时对长期云资源的成本敏感度较高。Flexus X 实例在未对业务形态本身作出改变的情况下,却降低了基础设施对业务扩展所施加的约束强度,让按照业务形态去配置算力成为可践行的工程实践。

可以预见,未来企业买的不再是服务器,而是业务效率。Flexus X 实例凸显了云服务器设计思路的一次转向:由“卖规格”过渡到“交付能力”,从“静态资源”过渡到“智能算力”,在 AI 成为主流计算负载的未来,此种转变大概率不会再是差异化优势,而是云基础设施的必要门槛。

一、背景与需求

最近一直会有一些这样的需求, 两套完全独立的前端系统,分别基于React和Vue框架开发,用户体系及鉴权体系独立,本次测试将尝试把Vue系统嵌入React中,实现核心交互逻辑:点击切换至React系统时,侧边栏(Aside)渲染React菜单,内容区(Content)加载React组件;切换至Vue系统时,侧边栏与内容区同步渲染Vue对应的菜单及组件,形成视觉与功能统一的集成体验,基础UI如下图:
image.png

二、技术环境

  • Vue技术栈:Vue3 + Vite.js + UnoCss + TypeScript (Vue项目用的是开源的)
  • React技术栈:React17 + Webpack + Sass + TypeScript (React项目是自有的)
  • 后端及部署:Spring Boot + JAVA17 + Docker + MySQL + Redis (Vue项目后台)

三、方案选型

目前微前端领域已有qiankun.js、MicroApp等成熟方案,但也又一定的局限性,本次实践旨在探索更轻量化的浏览器原生方案——Web Component。作为W3C制定的浏览器原生组件化标准,Web Component具备跨框架UI复用与封装能力,无需依赖第三方框架,可天然实现不同技术栈的融合。

四、工程改造实现

4.1 Vue工程改造(Web Component打包)

核心目标是将Vue项目打包为可被React调用的Web Component自定义元素,需新增专属入口文件并配置打包规则。

4.1.1 新增Web Component入口文件

创建src/web-component-entry.ts作为打包入口,封装Vue应用为自定义元素,实现组件的挂载、卸载与属性监听,以下是伪代码:


// src/web-component-entry.ts
import App from './App.vue'
import { createApp, h } from 'vue'

class VueWebComponentElement extends HTMLElement {
  private _app: any = null
  private _reactToken: string = ''

  // 定义需要监听的属性
  static get observedAttributes() {
    return ['mode']
  }

  constructor() {
    super()
    // 监听来自React的事件
    this.addEventListener('app-changed', (e: CustomEvent) => {
      const { token } = e.detail
      this._reactToken = token
    })
  }

  async connectedCallback() {
    if (this._app) return
    // 创建挂载容器并设置样式
    const rootNode = document.createElement('div')
    rootNode.setAttribute('id', 'app-vue')
    rootNode.style.height = '100%'
    this.appendChild(rootNode)

    // 获取属性并初始化Vue应用
    const mode = this.getAttribute('mode') || 'full'
    const app = createApp({
      render() {
        return h(App, { mode })
      }
    })

    // 比如挂载Vue生态依赖(权限、指令、全局组件、Store、Router等)
    app.mount(rootNode)
    this._app = app
  }

  // 属性变化回调
  attributeChangedCallback(name: string, oldValue: string, newValue: string) {
    // 可根据属性变化执行对应逻辑(如样式切换、数据更新)
  }

  // 组件卸载回调
  disconnectedCallback() {
    if (this._app) {
      this._app.unmount()
      delete this._app
    }
  }
}

// 定义自定义元素(避免重复定义)
if (!customElements.get('wc-pvue')) {
  customElements.define('wc-pvue', VueWebComponentElement)
}

export default VueWebComponentElement

4.1.2 Vite打包配置调整

vite.config.ts中新增Web Component打包模式,指定输出格式、入口文件及资源命名规则:

// vite.config.ts部分配置
import { defineConfig, loadEnv, resolve } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd())
  const isWebComponent = env.VITE_BUILD_MODE === 'webcomponent'

  return {
    plugins: [vue()],
    build: {
      minify: 'terser',
      // 区分Web Component打包目录
      outDir: env.VITE_OUT_DIR && isWebComponent 
        ? `${env.VITE_OUT_DIR}/web-component` 
        : env.VITE_OUT_DIR || 'dist',
      sourcemap: env.VITE_SOURCEMAP === 'true' ? 'inline' : false,
      terserOptions: {
        compress: {
          drop_debugger: env.VITE_DROP_DEBUGGER === 'true',
          drop_console: env.VITE_DROP_CONSOLE === 'true'
        }
      },
      // Web Component专属打包配置
      ...(isWebComponent ? {
        lib: {
          entry: resolve(__dirname, 'src/web-component-entry.ts'),
          name: 'PVue',
          fileName: 'pvue',
          formats: ['umd'] // 输出UMD格式,兼容浏览器环境
        },
        rollupOptions: {
          output: {
            entryFileNames: 'pvue.js',
            assetFileNames: 'pvue.[ext]'
          }
        }
      } : {})
    }
  }
})

注:为简化测试,当前配置未分离Vue运行时依赖,导致最终UMD文件体积偏大。若需优化体积,可通过external配置排除Vue核心依赖,但需在React项目中同步引入对应依赖,确保Vue应用运行环境完整。

4.2 React工程改造(集成Web Component)

React端需通过布局组件控制系统切换逻辑,同时引入Vue打包后的资源文件。

4.2.1 布局组件改造

layout.tsx中通过状态控制渲染逻辑,切换至Vue系统时加载自定义元素<wc-pvue />


import React, { useState } from 'react'
import { Layout } from 'antd' // 假设使用Ant Design布局组件
import SiderMenu from './SiderMenu'
import Header from './Header'
import styles from './layout.module.sass'

const AppLayout = ({ children }: { children: React.ReactNode }) => {
  const [app, setApp] = useState<'react' | 'vue'>('react')

  // 系统切换回调
  const onAppChanged = (targetApp: 'react' | 'vue') => {
    setApp(targetApp)
    // 延迟发送事件,确保Vue组件已渲染
    setTimeout(() => {
      const wcEl = document.querySelector('wc-pvue')
      wcEl?.dispatchEvent(
        new CustomEvent('app-changed', {
          detail: {
            token: (cache.getCache('accessInfo', 'session') as any)?.accessToken,
          },
          bubbles: true,
          composed: true, // 允许事件穿透Shadow DOM
        })
      )
    }, 500)
  }

  return (
    <Layout className={styles['app-layout-wrapper']}>
      <Header onAppChanged={onAppChanged} />
      {app === 'react' ? (<Layout className={styles['app-content-wrapper']}>
          <SiderMenu />
          <Layout>{children}</Layout>
        </Layout>
      ) : (
        // 加载Vue对应的Web Component
        <wc-pvue />
      )}
    </Layout>
  )
}

export default AppLayout

4.2.2 引入Vue资源

在React项目的index.html中引入Vue打包后的CSS与JS文件,确保自定义元素可正常渲染:


<!-- 引入Vue Web Component样式 -->
<link rel="stylesheet" href="vue/pvue.css" /<!-- 引入Vue Web Component脚本 -->

至此,基础嵌入功能实现完成,可通过切换菜单验证两侧系统的渲染效果。

五、关键技术点突破

5.1 样式隔离与覆盖

Web Component天然支持Shadow DOM,可构建独立DOM树实现样式隔离,避免与React主系统样式冲突;Vue端也可通过Scoped CSS限定样式作用域。但实际业务中常需覆盖子系统样式,结合本次Vue项目使用UnoCSS及CSS变量的特性,采用变量覆盖方案实现样式定制:


wc-pvue {
  height: 100%;
  /* 覆盖Vue项目内部CSS变量 */
  --app-footer-height: 0px;
  --tags-view-height: 0px;
  --top-tool-height: 0px;

  /* 隐藏Vue项目中不需要的元素 */
  #v-tool-header,
  #v-tags-view {
    display: none;
  }
}

样式覆盖需结合项目实际场景调整:若无法通过CSS变量或选择器覆盖,需修改Vue项目源码;若涉及主题切换等动态需求,可通过自定义元素属性传递状态,在Vue端监听属性变化同步更新样式。

5.2 跨框架消息通讯

UI层嵌入仅完成视觉整合,跨框架逻辑协同的核心在于消息通讯。常用方案包括全局状态共享(挂载至window)、属性传递、事件驱动等,本次实践采用浏览器原生CustomEvent实现解耦式通讯。

前文实现了React向Vue发送事件传递Token,但通过setTimeout规避渲染时机问题的方案存在不稳定性。更优实践为Vue主动发起通讯:在Vue组件的connectedCallback生命周期中发送就绪事件,React监听该事件后再传递数据,确保渲染与通讯时序一致:


// Vue端:web-component-entry.ts 中修改connectedCallback
async connectedCallback() {
  // 省略原有挂载逻辑...
  // 组件挂载完成后通知React
  this.dispatchEvent(
    new CustomEvent('vue-ready', {
      bubbles: true,
      composed: true
    })
  )
}

// React端:layout.tsx 中监听事件
useEffect(() => {
  const handleVueReady = () => {
    const wcEl = document.querySelector('wc-pvue')
    wcEl?.dispatchEvent(
      new CustomEvent('app-changed', {
        detail: { token: (cache.getCache('accessInfo', 'session') as any)?.accessToken },
        bubbles: true,
        composed: true
      })
    )
  }
  document.addEventListener('vue-ready', handleVueReady)
  return () => document.removeEventListener('vue-ready', handleVueReady)
}, [])

六、实践总结与待解决问题

基于Web Component可实现React与Vue跨栈系统的基础融合,通过自定义元素封装、原生事件通讯、CSS变量覆盖等手段,满足核心交互与样式适配需求。但本次实践仍存在诸多待优化点:

  1. 路由兼容性:React采用BrowserRouter(HTML5 History模式),Vue采用HashRouter,两者路由规则冲突,且页面切换时HTML标题同步、路由守卫协同等问题未解决。可通过统一路由模式(如均采用History模式)、主应用接管路由分发实现兼容。
  2. 统一认证体系:两套系统原有独立登录权限机制,目前仅实现Token传递,未完成身份态同步、权限统一校验等功能,需设计跨系统认证中心或共享令牌机制。
  3. 第三方系统改造限制:本次实践基于可自由修改的开源Vue项目,若需嵌入第三方不可控Vue系统,无法进行源码改造,需探索无侵入式封装方案。

相较于qiankun等成熟微前端框架,Web Component也是一种更轻量化的选择方案, 具体实践依然要根据具体的项目情况来选择和评估。当然,后续抽空还会分享一种基于类似门户系统的iframe融合方案,但不会在浏览器打开新页签,大家还有哪些方案可以分享呢,欢迎留言讨论!

1月27日,我们正式开源了 LingBot-Depth 空间感知模型。

不同于数字世界,具身智能的落地高度依赖物理空间信息,空间智能是其在现实场景落地应用的核心关键,而视觉维度下支撑空间智能的重要桥梁正是距离与尺度(Metric Depth)。基于这一核心需求,空间感知模型 LingBot-Depth 应运而生。

LingBot-Depth 是一种面向真实场景的深度补全模型,依托奥比中光 Gemini 330 系列双目 3D 相机进行 RGB-Depth 数据采集与效果验证,并基于深度引擎芯片直出的深度数据进行训练与优化,旨在将不完整且受噪声干扰的深度传感器数据转化为高质量、具备真实尺度的三维测量结果,提升环境深度感知与三维空间理解能力,为机器人、自动驾驶汽车等智能终端赋予更精准、更可靠的三维视觉。

实验结果表明,本模型在深度精度与像素覆盖率两项核心指标上均超越业界顶级工业级深度相机。在 NYUv2、ETH3D 等多个基准测试中,LingBot-Depth 在深度补全、单目深度估计及双目匹配任务上均达到当前最优水平,并在无需显式时序建模的情况下保持视频级时间一致性。LingBot-Depth 模型也已通过奥比中光深度视觉实验室的专业认证,在精度、稳定性及复杂场景适应性方面均达到行业领先水平。
图片
注解:在最具挑战的稀疏深度补全任务中,LingBot-Depth 性能整体优于现有多种主流模型。(图中数值越低代表性能越好。)

下游任务验证进一步表明,模型能够在 RGB 与深度两种模态之间学习到对齐的潜在空间表征,从而实现对透明及反光物体的稳定机器人抓取。
https://www.bilibili.com/video/BV1ZW6TBnEdn/?aid=115964569979...

技术架构:创新的掩码深度建模范式

图片
在家庭和工业环境中,玻璃器皿、镜面、不锈钢设备等透明和反光物体物体十分常见,但却是机器空间感知的难点。传统深度相机受制于光学物理特性,在面对透明或高反光材质时,往往无法接收有效回波。针对这一行业共性难题,我们研发了“掩码深度建模”(Masked Depth Modeling,MDM)技术。训练过程中,我们使用海量 RGB–深度图像对,但刻意遮挡其中一部分深度区域,让模型仅根据 RGB 图像去预测缺失的深度值。随着训练进行,模型逐渐学会建立“外观—几何”之间的对应关系,也就是从“物体看起来像什么”推断“它大概有多远”。

在涵盖家庭、办公环境、健身房及户外场景的上千万张图像数据上完成训练后,当深度相机传回的数据出现缺失或异常时,LingBot-Depth 模型已能够融合彩色图像(RGB)中的纹理、轮廓及环境上下文信息,对缺失区域进行推断与补全,输出更完整、致密、边缘更清晰的三维深度图。

核心亮点

精准且稳定的相机深度感知

LingBot-Depth 在传统深度传感器易失效的复杂场景中,仍可输出具备真实尺度的高精度深度结果,包括透明物体、玻璃表面以及高反光材质等极具挑战性的环境。不同于依赖硬件改进的方案,本模型从视觉理解层面弥补传感器缺陷,实现对真实三维结构的可靠恢复。

除单帧精度优势外,LingBot-Depth 还表现出优异的时间一致性。在无需显式时序建模的情况下,模型即可为视频输入生成稳定、连贯的深度序列,有效避免闪烁与结构跳变问题,为机器人操作、AR/VR 以及动态场景感知等应用提供可靠的连续空间理解能力。
图片

卓越的 3D 和 4D 环境感知能力

LingBot-Depth 为下游空间感知任务提供了坚实而通用的基础能力。通过将含噪且不完整的传感器深度优化为干净、稠密且具备真实尺度的三维测量结果,模型显著提升了多种高层视觉任务的稳定性与精度。具体而言,LingBot-Depth 支持:

  1. 更加准确的结构化室内场景建图,并有效提升相机位姿与运动轨迹估计的精度;
  2. 面向机器人学习的可靠 4D 点跟踪能力,在统一的真实尺度空间中同时刻画静态场景几何结构与动态物体运动。这使得系统能够在复杂真实环境中建立一致、连续且可用于决策与交互的空间理解表征。
    图片

灵巧抓取操作适用于透明与反光物体

通过在统一潜在空间中联合对齐 RGB 外观信息与深度几何结构,LingBot-Depth 使机器人在以往难以处理的复杂场景中实现稳定可靠的操作能力。基于模型优化后的高质量深度结果及跨模态对齐特征,我们进一步训练了一种基于扩散模型的抓取位姿生成策略,在透明杯、反光金属容器等具有挑战性的物体上取得了较高的抓取成功率。在真实机器人测试中,在透明储物盒等传统传感器难以处理的场景中,LingBot-Depth 通过生成合理的深度估计,成功实现了 50% 的抓握率,突破了技术瓶颈。
图片

从实验室到落地应用:显著提升消费级深度相机对高难物体的处理效果

LingBot-Depth 展现出与现有硬件设备的良好适配性。在不更换更高成本传感器的情况下,模型可提升可靠性并降低系统部署门槛。LingBot-Depth 模型依托奥比中光 Gemini330 系列双目 3D 相机进行效果测试,结果显示:面对透明玻璃、高反射镜面、强逆光以及复杂曲面等极具挑战性的光学场景,搭载 LingBot-Depth 后输出的深度图变得平滑、完整,且物体的轮廓边缘非常锐利,效果优于业内领先 3D 视觉公司 Stereolabs 推出的 ZED Stereo Depth 深度相机。
图片
注解:搭载 LingBot-Depth 后,奥比中光 Gemini 330 系列在透明及反光场景下深度图的完整性和边缘清晰度明显提升

图片
注解:奥比中光 Gemini 330 系列相机搭载 LingBot-Depth 后输出的深度图效果优于业界领先的 ZED 深度相机

这意味着在不更换传感器硬件的前提下,LingBot-Depth 可显著提升消费级深度相机对高难物体的处理效果,降低机器人因深度缺失与噪声引发的抓取失败与碰撞风险。在具身智能、自动驾驶等领域都有一定应用价值,能够极大程度提升具身操作的精准度。

目前,我们已与奥比中光达成战略合作伙伴关系,将基于 LingBot-Depth 模型推出新一代深度相机,依托 Gemini 330 系列相机提供的芯片级 3D 数据,进一步通过技术协同、生态共建,为机器人处理各行各业极端场景、走向真正落地提供强大的技术支撑。

LingBot-Depth 已成功实现模型轻量化与端侧部署,具备在边缘计算设备上高效运行的能力。未来,我们期待通过开源开放与生态合作,和广大合作伙伴一起加速具身智能在家庭、工业、物流等复杂场景的大规模应用落地。

目前我们的模型、代码、技术报告已全部开源,欢迎大家访问我们的开源仓库。
Website:https://technology.robbyant.com/lingbot-depth
Model:https://huggingface.co/robbyant/lingbot-depth
Code:https://github.com/Robbyant/lingbot-depth
Tech Report:https://github.com/Robbyant/lingbot-depth/blob/main/tech-report.pdf

后续我们还将开源 300 万对精心标注的 RGB-深度数据,包括 200 万对实拍 RGB-D 样本,和 100 万对渲染样本,推动空间感知技术的开源生态建设和技术创新。

LingBot-Depth 的开源标志着我们在空间智能领域迈出的第一步。本周,我们还将陆续为大家带来我们在具身智能领域智能基座方向的更多成果,我们期待与全球开发者、研究者、产业伙伴一起,共同探索具身智能的上限。

欢迎关注【InfoQ鸿蒙专区】,获取更多鸿蒙动态、创新实践!

🚀推荐案例 01:15 年大数据老兵鸿蒙“造梦”,父女联手打造亲子游戏 App

在鸿蒙开发者生态中,从不缺乏跨界探索的身影。徐俊宸便是其中一位特殊的存在:深耕大数据领域多年,从数据产品经理到大数据讲师,他的职业生涯始终围绕数据打转;而一次偶然的鸿蒙论坛经历,让他萌生了开发 APP 的想法。最终,他以女儿课堂上的猜数字游戏为蓝本,与女儿一起打造出《猜数字大师》游戏应用,在跨界鸿蒙开发的道路上,既攻克了技术难关,也收获了别样的亲子时光。

完整案例内容,请点击链接阅读原文:https://www.infoq.cn/article/rwSKfSRNBoL4HUv85zQ7


🚀推荐案例 02:老板发话鸿蒙 APP 一定要上线,但不加人!分享一个快速实现跨端开发的技术方案

估计这是 26 年开发团队的普遍现状,鸿蒙不得不做,人又不可能加。

毕竟到了 26 年,HarmonyOS 6 终端设备也突破了 3.2 亿, 卓易通又被人骂得半死,所以开发一个原生鸿蒙 APP 必须摆上桌面了。

在资源有限的前提下,像我们这种千万以下日活的中小团队必须在以下三种路径中做出抉择:

纯原生重写:体验最好,但成本高到离谱,而且维护困难。

Flutter/RN:Flutter 是谷歌推出的,竟然不支持鸿蒙。

Web Hybrid (H5) :成本最低,但性能体验太差,特别在鸿蒙上,容易被人骂。

目前看,第四种方案算是解法:  小程序容器技术   Mini-Program Container  比 H5 性能高,比原生开发也省事。

完整案例内容,请点击链接阅读原文:https://www.infoq.cn/zones/harmonyos/article/89d1ce30eeac3a82759cebd4a


🚀推荐案例 03:待到山花烂漫时:鸿蒙开发者用代码灌溉鸿蒙花园

银行业如何在鸿蒙转型中抓住机遇、快速进化?

吉林银行作为吉林省经济发展的“金融引擎”,在数字化转型浪潮中勇立潮头。其开发团队通过分布式架构重构、ArkUI-X 框架迁移及原子化服务开发等技术突破,历时 21 个自然日完成 HarmonyOS NEXT 核心功能版本适配。今天让我们采访一下吉林银行的鸿蒙开发者代表卢妍娆女士,一起听她讲讲应用适配 HarmonyOS NEXT 的故事。

完整案例内容,请点击链接阅读原文:https://www.infoq.cn/article/FeR8sBoeFay7LuUeKhrF


🚀推荐案例 04:元服务一站式平台:告别碎片化,开启 All in One 一站式经营新纪元

为了给元服务开发者提供更聚焦、更高效的管理体验,我们在 AppGallery Connect 平台上正式推出了元服务一站式平台 。

随着元服务能力不断丰富,相关功能分布在平台的多个模块中。为了帮助您更便捷地查找和使用所需功能,避免在无关菜单间跳转,我们构建了这个统一的专属工作空间,旨在聚合所有元服务相关能力,简化您的操作流程。

完整案例内容,请点击链接阅读原文:https://www.infoq.cn/article/gNwyuirySAxj5hQjsX0v


🚀推荐案例 05:“新”意十足 · HarmonyOS 模板 & 组件 (本次上新:社交、简历、翻译模板;聊天窗、购票等组件)

鸿蒙生态为开发者提供海量的 HarmonyOS 模板/组件,助力开发效率原地起飞

更多内容,一键直达生态市场组件&模板市场 , 快速应用DevEco Studio插件市场集成组件&模板 

一键直达HarmonyOS 行业解决方案 

完整案例内容,请点击链接阅读原文:https://www.infoq.cn/article/52L9NAr6TAtLspJrKMKh


🚀推荐案例 06:“新”意十足 · HarmonyOS 模板 & 组件 (本次上新:新闻资讯 /uni-app、绘画模板;通用搜索、会员组件)

鸿蒙生态为开发者提供海量的 HarmonyOS 模板/组件,助力开发效率原地起飞

更多内容,一键直达生态市场组件&模板市场 , 快速应用DevEco Studio插件市场集成组件&模板 

一键直达HarmonyOS 行业解决方案 

完整案例内容,请点击链接阅读原文:https://www.infoq.cn/article/MzGXuEGGBI3NdVGLUjRR


👉更多鸿蒙精选好文,持续上架中,欢迎扫码加入「InfoQ 鸿蒙开发者交流群」,交流技术,也可联系「小助手」约稿~

👀也欢迎关注【InfoQ鸿蒙专区】,获取更多鸿蒙动态、创新实践!

数据库模式

本文将深入介绍 Apache DolphinScheduler 所采用的数据库模式,此模式主要用于持久化存储工作流定义、执行状态、调度信息以及系统元数据。它具备广泛的兼容性,可支持 MySQL、PostgreSQL 和 H2 等多种数据库,其具体定义存储在 dolphinscheduler - dao/src/main/resources/sql 目录下。

模式架构

DolphinScheduler 的数据库模式分为七个主要功能组:

目的关键表
工作流管理存储带有版本控制的工作流和任务定义t_ds_workflow_definitiont_ds_task_definitiont_ds_workflow_task_relation
执行状态跟踪运行时实例及其状态t_ds_workflow_instancet_ds_task_instancet_ds_command
调度通过 Quartz 管理基于 cron 的调度t_ds_schedulesQRTZ_*
资源管理数据源、文件和 UDF 元数据t_ds_datasourcet_ds_resourcest_ds_udfs
管理用户、租户、项目和权限t_ds_usert_ds_tenantt_ds_project
告警告警配置和历史记录t_ds_alertt_ds_alertgroup
服务注册基于 JDBC 的协调(ZooKeeper 的替代方案)t_ds_jdbc_registry_*

工作流和任务定义模型

定义与实例分离

DolphinScheduler 严格区分定义(模板)和实例(执行)。这实现了版本控制、并发执行和审计跟踪。

关键设计原则

  • 基于代码的标识:工作流和任务都使用代码(bigint)作为跨版本的稳定标识符。
  • 复合键:定义使用(代码,版本)作为复合自然键。
  • 版本不可变性:每个版本都是不可变的;更改会创建新版本。
  • 实例引用:实例引用特定版本的定义。

核心表参考

工作流定义表

t_ds_workflow_definition

工作流模板的主表。

类型描述
idint自动递增主键
codebigint唯一工作流标识符(跨版本稳定)
versionint版本号(默认 1)
namevarchar(255)工作流名称
project_codebigint所属项目
release_statetinyint0 = 离线,1 = 在线
global_paramstextJSON 格式的全局参数
execution_typetinyint0 = 并行,1 = 串行等待,2 = 串行丢弃,3 = 串行优先级
timeoutint超时时间(分钟)
user_idint创建者用户 ID

索引

  • UNIQUE KEY workflow_unique (name, project_code)
  • UNIQUE KEY uniq_workflow_definition_code (code)
  • KEY idx_project_code (project_code)

t_ds_workflow_definition_log

存储工作流定义所有版本的审计日志。

镜像 t_ds_workflow_definition 的结构,额外列:operatoroperate_time,主键:(code, version)

t_ds_task_definition

可在工作流中重用的任务模板。

类型描述
codebigint唯一任务标识符
versionint版本号
task_typevarchar(50)Shell、SQL、Python、Spark 等
task_paramslongtextJSON 格式的任务配置
worker_groupvarchar(255)目标工作线程组
fail_retry_timesint失败重试次数
fail_retry_intervalint重试间隔(分钟)
timeoutint任务超时时间(分钟)
cpu_quotaintCPU 限制(-1 = 无限制)
memory_maxint内存限制(MB,-1 = 无限制)

t_ds_workflow_task_relation

通过指定任务之间的边来定义 DAG 结构。

类型描述
workflow_definition_codebigint父工作流
workflow_definition_versionint工作流版本
pre_task_codebigint前置任务(根节点为 0)
post_task_codebigint后置任务
condition_typetinyint0 = 无,1 = 判断,2 = 延迟
condition_paramstextJSON 格式的条件配置

注意pre_task_code = 0 表示根节点(无前驱任务)。

执行状态表

t_ds_workflow_instance

工作流的运行时执行记录。

类型描述
idint主键
workflow_definition_codebigint引用定义
workflow_definition_versionint本次执行锁定的版本
statetinyint0 = 提交,1 = 运行中,2 = 暂停准备,3 = 已暂停,4 = 停止准备,5 = 已停止,6 = 失败,7 = 成功,8 = 需要容错,9 = 已终止,10 = 等待,11 = 等待依赖
state_historytext状态转换日志
start_timedatetime执行开始时间
end_timedatetime执行结束时间
command_typetinyint0 = 开始,1 = 从当前开始,2 = 恢复,3 = 恢复暂停,4 = 从失败处开始,5 = 补充,6 = 调度,7 = 重新运行,8 = 暂停,9 = 停止,10 = 恢复等待
hostvarchar(135)执行此工作流的主服务器主机
executor_idint触发执行的用户
tenant_codevarchar(64)用于资源隔离的租户
next_workflow_instance_idint用于串行执行模式

索引

  • KEY workflow_instance_index (workflow_definition_code, id)
  • KEY start_time_index (start_time, end_time)

t_ds_task_instance

单个任务的运行时执行记录。

类型描述
idint主键
task_codebigint引用任务定义
task_definition_versionint锁定的版本
workflow_instance_idint父工作流实例
statetinyintworkflow_instance 相同的状态值
submit_timedatetime提交到队列的时间
start_timedatetime实际执行开始时间
end_timedatetime执行结束时间
hostvarchar(135)执行任务的工作线程主机
execute_pathvarchar(200)工作线程上的工作目录
log_pathtext日志文件路径
retry_timesint当前重试次数
var_pooltext供下游任务使用的变量

索引KEY idx_task_instance_code_version (task_code, task_definition_version)

命令模式与工作流执行

命令队列

t_ds_command 表实现了基于队列的执行模型,其中命令触发工作流实例。

t_ds_command 结构

类型描述
command_typetinyint0 = 开始,1 = 从当前开始,2 = 恢复,3 = 恢复暂停,4 = 从失败处开始,5 = 补充,6 = 调度,7 = 重新运行,8 = 暂停,9 = 停止
workflow_definition_codebigint目标工作流
workflow_instance_idint用于恢复/重新执行操作
workflow_instance_priorityint0 = 最高,1 = 高,2 = 中,3 = 低,4 = 最低
command_paramtextJSON 格式的执行参数
worker_groupvarchar(255)目标工作线程组
tenant_codevarchar(64)执行的租户
dry_runtinyint0 = 正常,1 = 试运行(无实际执行)

处理流程

  1. 通过 API、调度程序或重试逻辑将命令插入 t_ds_command
  2. 主服务器的 MasterSchedulerThread 持续扫描该表(按优先级、id 排序)。
  3. 主服务器生成 t_ds_workflow_instance 记录。
  4. 主服务器分析 DAG 并为就绪任务创建 t_ds_task_instance 记录。
  5. 成功处理的命令将被删除;失败的命令将移动到 t_ds_error_command

版本控制系统

基于代码的版本控制模型

DolphinScheduler 使用复杂的版本控制系统,支持:

  • 不同版本的并发执行。
  • 安全更新而不影响正在运行的实例。
  • 完整的变更审计跟踪。

版本管理规则

  • 当前版本表:只有“当前”版本存在于 t_ds_workflow_definitiont_ds_task_definition 中。
  • 日志表:所有版本保存在 *_log 表中,具有 UNIQUE KEY (code, version)
  • 在线状态:每个代码只能有一个版本的 release_state = 1(在线)。
  • 实例锁定:工作流实例在创建时锁定到特定版本。
  • 版本不可变性:一旦某个版本被实例引用,其日志记录即为不可变。

调度体系架构

Quartz 集成

DolphinScheduler 集成了 Quartz 调度程序以实现基于 cron 的调度。模式包括标准 Quartz 表以及一个映射表。

t_ds_schedules

类型描述
workflow_definition_codebigint目标工作流(唯一)
start_timedatetime调度活动开始时间
end_timedatetime调度活动结束时间
timezone_idvarchar(40)cron 表达式的时区
crontabvarchar(255)cron 表达式
release_stateint0 = 离线,1 = 在线
failure_strategyint失败时的行为
workflow_instance_priorityint实例的默认优先级

Quartz 表要点

  • QRTZ_TRIGGERS.NEXT_FIRE_TIME:已索引,便于高效扫描。
  • QRTZ_CRON_TRIGGERS.CRON_EXPRESSION:解析后的 cron 定义。
  • QRTZ_SCHEDULER_STATE:跟踪 Quartz 调度程序实例。

资源和配置表

数据源管理

t_ds_datasource

存储 SQL 任务的数据库连接配置。

类型描述
namevarchar(64)数据源名称
typetinyint数据库类型(MySQL、PostgreSQL、Hive 等)
connection_paramstextJSON 格式的连接配置(主机、端口、数据库、凭据)
user_idint所有者用户

约束UNIQUE KEY (name, type) - 防止数据源重复。

文件资源

t_ds_resources(已弃用)

注意:此表在模式中已标记为弃用。资源元数据正在迁移到单独的存储后端。

类型描述
full_namevarchar(128)包括租户的完整路径
typeint文件类型(文件/UDF)
sizebigint文件大小(字节)
is_directoryboolean目录标志
pidint父目录 ID

多租户与管理

项目、用户和租户层次结构

关键管理表

t_ds_tenant

类型描述
tenant_codevarchar(64)唯一租户标识符(唯一)
queue_idint任务的默认 YARN 队列
descriptionvarchar(255)租户描述

默认租户:系统创建一个默认租户,id = -1tenant_code = 'default'

t_ds_user

类型描述
user_namevarchar(64)登录用户名(唯一)
user_passwordvarchar(64)哈希密码
user_typetinyint0 = 普通用户,1 = 管理员
tenant_idint关联的租户(默认 -1)
emailvarchar(64)电子邮件地址
statetinyint0 = 禁用,1 = 启用

t_ds_project

类型描述
codebigint唯一项目代码(唯一)
namevarchar(255)项目名称(唯一)
user_idint创建者/所有者
descriptionvarchar(255)项目描述

JDBC 注册表

对于不使用 ZooKeeper 的部署,DolphinScheduler 提供基于 JDBC 的注册表用于服务协调。

注册表详情

t_ds_jdbc_registry_data

存储类似于 ZooKeeper 节点的注册表项。

类型描述
data_keyvarchar(256)类似路径的键(唯一)
data_valuetext序列化数据
data_typevarchar(64)EPHEMERAL(客户端断开连接时删除)或 PERSISTENT
client_idbigint所属客户端
类型描述
last_update_timetimestamp上次修改时间

t_ds_jdbc_registry_lock

实现分布式锁。

类型描述
lock_keyvarchar(256)锁标识符(唯一)
lock_ownervarchar(256)持有锁的客户端(格式:ip_processId)
client_idbigint所属客户端

t_ds_jdbc_registry_client_heartbeat

跟踪活动客户端以清理临时数据。

类型描述
idbigint客户端 ID(主键)
client_namevarchar(256)客户端标识符
last_heartbeat_timebigint上次心跳时间戳
connection_configtext连接元数据

清理逻辑:当客户端的心跳过期时,其临时注册表数据和锁将自动删除。

告警系统

告警表

t_ds_alert

由工作流/任务失败或完成生成的告警记录。

类型描述
titlevarchar(512)告警标题
signchar(40)内容的 SHA1 哈希值(用于去重)
contenttext告警消息正文
alert_statustinyint0 = 等待,1 = 成功,2 = 失败
warning_typetinyint1 = 工作流成功,2 = 工作流/任务失败
workflow_instance_idint源工作流实例
alertgroup_idint目标告警组

索引KEY idx_sign (sign) - 实现去重。

t_ds_alertgroup

告警通道组。

类型描述
group_namevarchar(255)唯一组名
alert_instance_idsvarchar(255)逗号分隔的插件实例 ID
descriptionvarchar(255)组描述

索引与查询优化

关键索引

该模式包含针对常见查询模式精心设计的索引:

  • 工作流和任务查找
- 按定义查询工作流实例:
  `KEY workflow_instance_index (workflow_definition_code, id)`
  - 按定义查询任务实例:
  `KEY idx_task_instance_code_version (task_code, task_definition_version)`
  - 用于监控的时间范围查询*:
  `KEY start_time_index (start_time, end_time)`
  • 命令处理
基于优先级的命令扫描:
`KEY priority_id_index (workflow_instance_priority, id)`
  • DAG 关系查询
- 正向和反向 DAG 遍历:
  `KEY idx_pre_task_code_version (pre_task_code, pre_task_version)`
   正向和反向 DAG 遍历:
   `KEY idx_post_task_code_version (post_task_code, post_task_version)`
  `KEY idx_code (project_code, workflow_definition_code)`

唯一约束

在数据库级别强制执行的关键业务规则:

约束目的
t_ds_workflow_definitionUNIQUE (name, project_code)项目中无重复的工作流名称
t_ds_workflow_definitionUNIQUE (code)全局工作流标识符
t_ds_workflow_definition_logUNIQUE (code, version)每个版本一条记录
t_ds_datasourceUNIQUE (name, type)每种类型无重复的数据源名称
t_ds_schedulesUNIQUE (workflow_definition_code)每个工作流一个调度

模式演变与升级

DolphinScheduler 在 dolphinscheduler - dao/src/main/resources/sql/upgrade 中维护用于跨版本模式迁移的升级脚本。

近期模式变更

3.3.0 变更

  • 将表和列从“process”重命名为“workflow”。
  • 删除数据质量表(t_ds_dq_*)。
  • 添加用于替代 ZooKeeper 的 JDBC 注册表。
  • 从任务表中删除与缓存相关的列。

3.2.0 变更

  • 向工作流定义中添加 execution_type(并行/串行模式)。
  • 为串行执行链添加 next_workflow_instance_id
  • 向命令和实例表中添加 tenant_code
  • 创建 t_ds_project_parametert_ds_project_preference

数据库交互模式

服务层访问

数据库访问通过 dolphinscheduler - dao 中的 DAO 层进行抽象。
关键服务类

  • ProcessService:工作流/任务定义和实例的 CRUD 操作。
  • CommandService:命令队列管理。
  • ProjectService:项目和权限管理。
  • ResourcesService:资源元数据操作。

事务管理

大多数操作使用 Spring 的 @Transactional 注解实现:

  • 原子性地创建工作流实例及其任务实例。
  • 消费命令并创建实例。
  • 版本更新与日志表同步。

连接池

系统使用 HikariCP 进行连接池,在 application.yaml 中配置:

  • 默认池大小:50 个连接。
  • 连接超时:30 秒。
  • 空闲超时:600 秒。

摘要:本文整理自阿里云高级技术专家、Apache Flink PMC 成员、Apache Fluss PPMC 成员 伍翀老师,在 Flink Forward Asia 2025 城市巡回深圳站中的分享。

Tips:关注「Apache Flink公众号」回复 FFA 2025 查看会后资料~

一、问题起点:分析型流处理系统的缺失

在大数据处理领域,我们通常将系统划分为四个象限:

  • 纵轴:批处理 vs 流处理 
  • 横轴:业务型 vs 分析型

会得到四个象限:

  • MySQL、PostgreSQL:业务型 + 批处理
  • Kafka、Pulsar:业务型 + 流处理
  • Snowflake、Iceberg:分析型 + 批处理 

但你会发现——分析型 + 流处理 这一块,几乎是空白的。

因此,Fluss 的定位非常明确:填补这个空白,做一个面向分析型场景的实时流存储系统

二、Fluss 是什么?

Fluss核心架构

Fluss 的整体架构和传统的 Kafka 比较类似,本质上是一个带服务的存储系统。数据会在 Fluss 的 Server 之间进行三副本、高可用、持久化存储。同时,系统会结合远程的 HDFS 或对象存储实现数据分层,将数据按冷热与生命周期进行合理划分。

在数据分层方面,Fluss 会将长周期的历史数据持续下沉到数据湖格式中,用于更长周期的数据存储与各类分析型场景。同时,这几层不同形态、不同介质上的分层数据,可以进行联合查询,我们称之为 Union Read。用户无需关注底层的存储细节,依然通过同一套 SQL API,即可对最底层的多层数据进行数据合并,并保证数据的一致性,在上层看到的仍是一张表的统一视图。

此外,Fluss 还提供了流式读取、流式写入、实时更新、实时写入、点查以及维表查询等能力。

核心应用场景

Fluss 在阿里内部、阿里云以及部分业界的核心业务场景中已经有了较多应用。当前主要有两个新的核心应用方向:

一方面是 Fluss + Flink,用来替代传统的 Kafka,构建实时数仓,形成一种新的实时数仓范式;

另一方面是 Fluss + Paimon,用来构建流批一体、秒级响应的湖仓架构,我们将这一架构称为湖流一体

本次议题的重点主要在于介绍湖流一体的架构及其应用场景。不过在进入该部分之前,会先快速介绍 Fluss + Flink 替代 Kafka 构建实时数仓时,所提供的一些核心能力及其解决的问题。

三、 Fluss + Flink 实时数仓场景

整体梳理下来,Fluss 与 Flink 配合用于实时数仓建设,主要具备四个核心特性。

Fluss 的第一个核心能力是「流式查询下推」。与 Kafka 提供行式数据流(如 JSON、Avro)不同,Fluss 基于 Apache Arrow 构建列式流式日志系统,在磁盘侧即以列存格式组织数据。当下游仅需部分列时,可直接读取并传输所需列,端到端采用 Zero Copy,避免中间序列化/反序列化,显著降低网络、CPU 与解析开销。列裁剪之外,Fluss 还支持分区裁剪与条件下推:查询条件(如“双11当天”或特定业务分区)可下推至服务端,跳过无关数据。

第二个能力是「实时数仓的分层化」。借助毫秒级读写、实时更新及完整 Changelog 能力,Fluss 可贯通 ODS、DWD、DWS 等层级,构建分层清晰的端到端实时数据管道,弥补传统 Kafka 架构在数仓分层建设上的不足。

第三个能力是「实时宽表构建」。基于 Fluss + Flink,通过 Delta Join 等新范式替代传统双流 Join,简化状态管理,提升链路可维护性与版本升级体验,并支持 Partial Update 等多表实时拼接方式。同时,Fluss 提供面向大数据场景优化的「异步维表」能力,作为高吞吐外部维表被 Flink 查询,通过异步化、批量化、流水线化等优化,显著提升维表查询吞吐性能。

第四个能力是「MergeEngine 合并机制」。Fluss 在服务端提供或规划了类似 Paimon 的合并语义,包括 去重合并引擎  FistRow/LastRow/Versioned MergeEngine,也正在支持聚合合并引擎 Aggregate Merge Engine,已支撑实时长周期聚合指标和用户画像等场景。

四、“湖流一体”:Fluss 与 Paimon 的协同架构

这是一个 Fluss + Paimon 的湖流一体 High Level 架构图。整个体系中,Fluss 能够与 Paimon 或者类似的湖仓框架(如 Iceberg)做无缝集成,对用户来说几乎就像在使用一个「统一的数据库」,只是底层会根据不同的数据特性和时效性需求做冷热分层:

  • 热数据存放在高性能介质上;
  • 冷数据以更高压缩率存放在更低成本的介质上。

这一整套冷热分层和数据移动的过程,都由系统自动完成,无需用户干预。用户在读取「这张表」时,不需要关心数据具体位于哪一层存储,系统会自动将多层数据进行拼接,对外呈现为一份完整结果。这个跨分层拼接并统一查询的能力,在 Fluss 中称为 Union Read。

Fluss 将数据自动落到 Paimon 等湖仓时,严格遵循 Paimon / Iceberg 等系统原生的开放协议。因此,现有的湖仓生态和查询引擎可以无缝对接与访问 Paimon 中的数据,不会破坏或影响已有的离线链路与计算体系。

在展开介绍这个湖流一体架构之前,先简单聊一下业界在湖流融合方向上的一些趋势。这条路并不是只有我们在走,业界很多流存储厂商其实都在向这个方向演进。

在 2023 年,我们启动了 Fluss 项目,并首次提出「湖流一体」的概念。随后在 2024 年,Kafka 背后的商业公司 Confluent 推出了 Tableflow 产品。Tableflow 的核心目标,就是把 Kafka 中的数据无缝同步到 Iceberg 上。此后一两年内,市面上流存储相关的厂商也陆续推出了类似产品,比如 Redpanda、StreamNative、Upstash 等,都开始提供类似的「流到湖」的数据打通方案。

从这些公司的产品设计上,可以看到两个共同点:

  1. 都是从 Kafka 到 Iceberg
    也就是做「流到湖」的数据通道,解决的是:Kafka 里的数据如何高效落到 Iceberg。
    但反向的问题——Iceberg 里的数据如何真正被流系统复用、为流计算所用——他们还没有去做,或者至少没有给出清晰的产品化方案。
  2. 都是围绕 Kafka 生态的公司
    这些公司本质上都是做 Kafka 或 Kafka 兼容服务的厂商,提供的是 Kafka API 兼容的消息队列 / 流存储服务。所以它们的设计天然是「以 Kafka 为中心」,在 Kafka 外挂一个往湖仓(如 Iceberg)同步数据的组件或服务,所以也会受到 Kafka API 在与湖仓集成时的各种限制。

那这种「流到湖」的单向模式和 Fluss 的「湖流一体」之间,在架构理念和能力边界上有什么差异呢?

业界此类产品可分为两类:一类是以 Confluent Tableflow 为代表的「流式入湖」服务,另一类是以 Fluss 为代表的「湖流一体」架构。

「流式入湖」本质上是单向的数据同步通道,仅解决“如何将流数据从 Kafka 等源搬入数据湖”的问题;而「湖流一体」则聚焦于流与湖的双向数据共享——既让流端数据为湖端所用,也让湖端数据反哺流端,这是设计理念的根本差异。

在数仓分层上,流式入湖主要服务于 ODS 层的数据接入,后续 DWD、DWS 等层级仍需依赖独立批流作业构建,无法形成闭环;而湖流一体面向全链路实时数仓,旨在弥补 Iceberg、Paimon 等湖仓在秒级数据新鲜度上的不足,覆盖从 ODS 到 DWS 的端到端时效性需求。

理念层面,流式入湖属于 ETL 接入层能力,关注 Kafka 数据如何写入湖;湖流一体则是「流批一体」战略下的具体落地,以统一存储承载流与批的双重语义。

成本方面,流式入湖因 Kafka 与湖中同时保留数据副本,导致双份存储开销及潜在一致性风险;湖流一体则通过单一数据拷贝实现流湖共享,仅需一份存储成本。

开发成本上,流式入湖需为每个 Topic 单独配置复杂参数,接入成本高;而 Fluss 作为与湖仓在数据模型层原生对齐的流存储,开启湖流一体能力仅需一个配置开关,显著降低开发与运维负担。

在探讨为何不基于 Kafka 或其 API 来实现湖流一体时,核心原因在于:Kafka 是为消息系统设计的,而非为分析场景设计。这导致在尝试构建湖流一体架构时,会遇到四个基础且难以绕过的问题。

  1. Kafka 内部没有 Schema

由于 Kafka 本身是「无 Schema」的,在将其与「有 Schema」的数据湖 / 湖仓体系对接时,会产生大量额外工作,例如:

  • 需要手动配置每个 Topic 对应的表;
  • 每张表的 Schema 定义、字段类型和映射关系等都需要手工填写;
  • 并且这些配置对于每一个 Topic 或表都要单独进行。

相反,Fluss 作为「有 Schema 的流存储」,只需在目标表上打开一个配置开关,后续的映射和元数据同步工作即可自动完成,大幅降低了使用成本和接入复杂度。

  1.  数据模型不匹配

Kafka 的数据模型主要是为微服务和消息队列场景设计的,在对接大数据 / 数仓体系时会出现明显割裂,例如:

  • 在数据湖 / 数仓中,普遍存在数据库、数据表、分区、分桶等高层数据抽象;
  • Kafka 仅提供 Topic 概念,缺乏与上述模型一一对应的元数据体系。

相比之下,Fluss 从一开始就按「面向数据湖 / 数仓」的方式进行对齐,支持数据库、表、分区、桶,以及变更日志、主键、更新语义等,使得在实施湖流一体时能够无缝融合,无需大量额外的适配逻辑。

  1. 不支持更新语义

    数据湖 / 湖仓(如 Iceberg、Paimon)通常支持更新与删除操作,并具备完整的 Changelog / Merge 语义。而 Kafka 的核心模型是追加写日志,不具备真正的记录级更新能力。
    将一个「不支持更新」的系统与「支持更新」的系统深度融合,势必需要处理状态重建、补写、回刷等复杂逻辑,增加系统复杂性与维护难度。

    Fluss 则原生支持更新及 Changelog 语义,可以生成完整的变更日志供下游订阅,从而与湖仓的更新语义自然对齐。

  2. 业务场景与 API 语义的矛盾

Kafka 提供的 API 主要围绕消息语义展开,例如按 Topic + Offset 顺序消费。若要实现真正的湖流一体,不仅需要让流数据写入湖仓,还需要让湖仓中的数据能够反向为流所用,这就要求:

  • 流系统能够原生地访问湖仓中的数据,且没有额外的转换开销;
  • 支持按表、分区甚至按条件的灵活读取方式。

在 Kafka 现有 API 框架下,要实现这种反向能力,意味着需要在服务端执行一系列复杂转换:

  • 从远程数据湖中读取 Parquet / ORC 等列存文件;
  • 将其转换回 Kafka 的行式消息格式;
  • 再通过消息 API 以流的形式回放给消费者。

这种做法与 Kafka 当前的业务模型存在明显冲突,会使存储与计算路径异常复杂,并引入大量并非消息队列范畴的工作负载。因此,在 Kafka 现有架构和 API 语义下,很难自然地将湖仓数据转变为流的一部分,供流计算直接复用。

五、为什么我们选择基于 Fluss 重新构建湖流一体架构?

在设计 Fluss 之初,我们就明确了一个核心理念:不能在 Kafka 的基础上修修补补,而必须从分析型场景的原生需求出发,重新定义流存储。这背后有三个关键设计:

  1. 从 Topic 到 Table 的范式转变
    Kafka 是面向消息系统的,其核心抽象是无 Schema 的 Topic;而 Fluss 以“表(Table)”为第一公民,天然携带 Schema。这使得 Fluss 能与 Paimon、Iceberg 等 Lakehouse 表的 Schema 类型无缝对齐,避免了传统方案中手动维护 Schema 映射的复杂性和出错风险。
  2. 支持完整的数据更新语义
    湖仓系统普遍支持行级更新(如主键 Upsert),但 Kafka 仅支持追加写入。Fluss 原生支持实时更新,并能生成完整的 Changelog,为下游提供一致的变更数据流,这是实现湖流双向融合的基础。
  3. 列式存储格式的深度优化
    Fluss 基于 Apache Arrow 构建流式列存日志,不仅支持高效的列裁剪和条件下推,还能与 Lakehouse 的列式文件格式(如 Parquet、ORC)高效对接,极大降低 I/O 和计算开销。

内置 Tiering Service:实现湖流自动同步

Fluss 内置一个名为 Tiering Service 的后台服务(当前基于 Flink 实现,未来可扩展至其他运行时),它会自动将开启了“湖流一体”特性的表数据,持续地从 Fluss 转换为 Paimon 等 Lakehouse 格式,并精确记录 Lakehouse 快照与 Fluss Log Offset 之间的对应关系

这个 Offset 位点是实现 Union Read(统一读取)的关键——它确保了从 Lakehouse 读取的历史数据与从 Fluss 读取的实时数据之间严格的一致性边界,从而实现“不多一条、不少一条”的端到端 Exactly-Once 语义。

更重要的是,一旦数据被成功分层到 Lakehouse,Fluss 便可安全清理旧数据,仅保留短周期(如 6 小时)的热数据。这显著降低了实时存储层的成本,同时不影响全量历史回溯能力。

六、 Fluss + Paimon:湖流一体架构的六大核心优势

流存储成本降低 10 倍以上

在传统 Lambda 架构中,实时链路(Kafka + Flink)和离线链路(Hive + Spark)各自独立,数据需双份存储。Kafka 通常只能保留 7 天数据,但业务往往需要数月甚至数年的回溯能力——这导致要么牺牲回溯能力,要么承担高昂的 Kafka 存储成本。

而在 Fluss + Paimon 的湖流一体架构中:

  • Lakehouse 存储长期历史数据(月级、年级)
  • Fluss 仅保留超短期热数据(如 6 小时)

用户仍可从几个月前开始完整回溯,且实时消费延迟保持在毫秒级。存储成本可从“7天”降至“6小时”,节省高达 20 倍的存储开销。更重要的是,流批在存储层真正统一,开发者只需面对“一张表”,无需在流/批之间切换逻辑。

高效、一致的数据回溯(Backfill)

当业务逻辑变更需要重跑过去 30 天的数据时,传统方案需手动拼接离线表与 Kafka 流,一致性难以保障。

Fluss 的 Union Read 机制自动完成这一过程:

  • 获取 Paimon 最新快照及其对应的 Fluss Log Offset;
  • 从 Paimon 并行读取历史数据(支持列裁剪、谓词下推,性能接近批处理);
  • 在精确的 Offset 位点无缝切换至 Fluss 流读。

整个过程自动、高效、强一致,大幅简化数据回填作业。

批查询获得秒级新鲜度

传统 Lakehouse 表的新鲜度受限于 Checkpoint 或 Commit 频率(通常为分钟级)。但在 Fluss + Paimon 架构下,批查询可通过 Union Read 同时读取:

  • Paimon 中的分钟级历史数据
  • Fluss 中的秒级实时数据

最终结果具备秒级端到端新鲜度,满足实时报表、运营看板等高时效性场景需求。目前 StarRocks、Flink 等引擎均已支持此类 Union 查询。

分层数仓的新鲜度不受层级影响

在传统流数仓中,每经过一层(ODS → DWD → DWS),数据可见性都依赖一次 Flink Checkpoint,导致端到端延迟累积(如 5 分钟 × 3 层 = 15 分钟)。

而 Fluss + Paimon 的湖流一体架构中,层间数据流动与 Checkpoint 解耦

  • 数据在 Fluss 表之间以毫秒级延迟流动;
  • 每层 Fluss 表按固定频率(如 3 分钟)同步到 Paimon;
  • 用户看到的 Paimon 表始终具有稳定、可预测的新鲜度

这确保了数仓各层级的时效性可控,有效消除了业务开发中“每增加一层就带来额外延迟”的心智负担。

更高效的 CDC 与 Changelog 生成

Paimon 原生支持两种 Changelog 生成方式:

  • Lookup 模式:资源消耗大;
  • Full Compaction 模式:延迟高。

而 Fluss 本身已维护热数据的索引状态,可在写入时直接生成高质量的 Changelog。该 Changelog 一方面用于驱动 Paimon 主表的 Upsert,另一方面可直接 Append 到 Paimon 的 Changelog 表中,避免重复计算,实现低延迟、低成本的变更数据捕获。

湖仓的轻量级实时接入层

Lakehouse 客户端通常较重,对写入端要求高。Fluss 作为带服务的存储系统,将复杂写入逻辑下沉至服务端,提供轻量 SDK(Java、Python、Rust 等),支持多种写入场景:

  • 大数据引擎(Flink、Spark)
  • IoT 设备
  • AI 训练/推理系统(如向量 Embedding 写入)

尤其在 AI 场景中,Fluss 可作为高速缓冲层

  • 避免 GPU 计算被对象存储写入阻塞;
  • 平滑应对数据写入的波峰波谷(削峰填谷);
  • 后台持续将数据分层至 Lakehouse。

七、总结

无缝集成,平滑演进

Fluss 的设计理念是不颠覆现有湖仓架构,而是增强其实时能力。用户只需在现有 Paimon 表上开启“湖流一体”开关,并配置 Fluss endpoint,即可将一张普通表升级为支持毫秒级流读的实时表,原有链路完全不受影响

目前,阿里云上的 Fluss 已与 DLF、Paimon 深度集成,提供开箱即用的湖流一体、Union Read 等能力,并可申请免费试用。更多详情可访问:https://www.aliyun.com/product/flink/fluss

未来规划

  1. 更广泛的查询引擎支持:StarRocks、Trino、Spark 等已内部对接或社区推进中;
  2. 元数据统一:支持 Paimon 表一键升级为湖流一体表(PIP-39);
  3. 高性能 Union Read:对接 Paimon Deletion Vector,提升主键表的批查性能;

Fluss 不是另一个 Kafka,也不是简单的“Kafka + Lakehouse 同步工具”。它是面向分析型场景、为湖流一体而生的新一代流存储。通过重新思考流与湖的关系,Fluss 正在推动实时数仓进入“一份存储、统一视图、秒级新鲜、低成本回溯”的新时代。

Fluss 团队正在杭州、上海招聘!
如果你对实时计算、湖仓一体、AI 数据基础设施充满热情,欢迎加入我们,一起改变世界!

Bring better analytics to data streams, and better data freshness to data lakehouses.

阿里云流存储 Fluss 于 2026 年 1 月 13 日 正式开启免费公测

基于 Apache Fluss 打造的高性能列式流存储系统,具备毫秒级读写响应、实时数据更新及部分字段更新能力,可替换Kafka构建面向分析的流式存储,结合DLF(Paimon)等数据湖产品构建湖流一体架构。

公测活动: 公测期间单用户可免费使用2个集群,单个集群上限80 Core,如果您在使用过程中向我们提出改进建议或评测报告,我们将依据反馈内容的深度与质量,向优质测评者赠送定制Fluss周边礼品。

https://help.aliyun.com/zh/flink/realtime-fluss/product-overview/join-the-public-preview-of-fluss

image.png

更多内容


活动推荐

复制下方链接或者扫描左边二维码

即可免费试用阿里云 Serverless Flink,体验新一代实时计算平台的强大能力!

了解试用详情:https://free.aliyun.com/?productCode=sc

本文首发于 Aloudata 官方技术博客:《如何低成本激活海量用户行为数据价值?NoETL 语义编织实践指南》转载请注明出处。

摘要:面对海量埋点数据价值释放的困境,传统 ETL 模式在业务灵活性、口径一致性和成本性能间难以平衡。本文提出通过引入 NoETL 语义编织架构,构建统一语义层、实现自动化查询与智能物化,从而打破“不可能三角”,实现秒级自助分析与 AI-Ready 数据底座建设,为数据工程与指标平台实践提供系统指南。

每天,数亿条用户点击、浏览、停留的埋点数据,正源源不断地涌入企业的数据湖仓。然而,这些本该驱动精准营销、产品迭代和体验优化的“数据原油”,却因传统数据供给模式的瓶颈,长期沉睡,沦为吞噬存储与计算成本的“负资产”。

现实更为严峻:企业湖仓数据冗余平均在 5 倍以上,而专业数据人才的缺口高达 200 万。这意味着,企业正陷入 “数据越多,价值越难释放” 的怪圈。当业务部门急需一个“高价值用户转化漏斗”的分析时,数据团队往往需要排期数周,通过重复开发宽表来响应,最终产出口径不一、维度固化的报表,无法满足灵活探查的需求。

问题的根源,在于传统以人工 ETL 和物理宽表为核心的数据供给模式,已无法平衡 “业务灵活性”、“口径一致性”与“性能成本” 的“不可能三角”。而 AI 智能体(Agent)时代的到来,以其发散性、秒级响应的问数需求,彻底击穿了这套勉力维持的旧体系。

激活海量用户行为数据价值的关键,在于一场从“过程驱动”到“语义驱动”的范式重构——引入 NoETL 语义编织架构。

前置条件:认清传统数据供给模式的“不可能三角”

在深入解决方案前,我们必须正视当前架构的根本性矛盾。这个“不可能三角”具体表现为:

  • 业务灵活性:营销、产品等一线部门希望像使用搜索引擎一样,自由组合“渠道”、“用户标签”、“时间周期”等维度,进行探索性分析。但在宽表模式下,维度组合是预定义的,任何未预设的分析路径都需要重新开发。
  • 口径一致性:管理层要求“GMV”、“活跃用户”等核心指标在全公司有且仅有一个权威定义。然而,指标逻辑被硬编码在分散的 ETL 脚本和物理宽表中,微小的逻辑差异导致报表间“数据打架”成为常态。
  • 性能与成本:数据团队需要在有限的预算内保障查询秒级响应。为此,他们不得不预建大量宽表和汇总表(ADS 层),导致相同明细数据被反复加工存储,形成巨大的冗余和浪费,陷入“为保障性能而推高成本”的恶性循环。

这套依赖人力的“人工预计算”范式,在数据量和分析需求激增的今天,已成为数据价值释放的主要瓶颈。解决问题的出路,不是在这个三角中继续做痛苦的取舍,而是通过架构革新,打破三角本身。

第一步:架构重构——引入 NoETL 语义编织层

解决问题的起点,是将 “业务语义” 与 “物理底表” 彻底解耦。这类似于软件开发从汇编语言(直接操作硬件)演进到高级语言(声明业务逻辑)。

NoETL 语义编织 的核心,是在企业的公共明细数据层(DWD)与上游的消费应用(BI、AI Agent、业务系统)之间,构建一个独立、统一、具备实时计算能力的 语义层(Semantic Layer)。

  • 逻辑层(做什么):业务分析师在语义层中,通过声明式的方式,用业务语言定义指标(如“近30天高价值用户留存率”)、维度及其关联关系。他们无需关心数据存储在哪里、表如何关联。
  • 物理层(怎么做):平台的 语义引擎 自动将逻辑定义“编译”为面向底层数据湖仓(如 Snowflake, BigQuery)优化过的高效 SQL 执行计划。无论是实时查询明细,还是智能路由到加速表,都由系统自动完成。

这种解耦带来了 “无头化(Headless)” 与 “中立性”。数据不再为某个特定的 BI 报表加工,而是成为一种标准化的服务。无论是 BI 工具,还是未来的 AI 应用,都通过统一的 API/JDBC 接口消费同一份经过治理的“逻辑真理”。

第二步:能力建设——部署具备三大支柱的指标平台

一个合格的 NoETL 语义编织平台,必须具备以下三大核心能力,缺一不可:

1. 统一语义层:构建虚拟的业务事实网络

平台允许用户在未物理打宽的 DWD 表之上,通过界面化配置,声明式地定义表与表之间的关联关系(如用户表与行为事件表通过 user_id 关联)。由此,在逻辑层面构建出一张覆盖全域的 “虚拟大宽表”,业务人员可在此基础上进行任意拖拽分析。

2. 自动化查询生成:意图即 SQL

当用户拖拽指标或 AI Agent 提出自然语言问题时,平台的语义引擎能实时解析分析意图,自动生成高效、优化的查询 SQL,自动处理复杂的多表 JOIN、去重和跨层级计算,实现数据获取的零门槛。

3. 智能物化加速:基于声明的性能保障

这是区别于传统逻辑视图的关键。平台提供 “声明式物化” 能力:

  • 管理员声明:基于业务需求,声明需要对哪些指标和维度组合进行加速,以及数据时效性要求(如 T+1)。
  • 系统自治:平台根据声明,自动设计物化视图、编排 ETL 任务依赖并运维。
  • 透明路由:查询时,引擎自动进行 SQL 改写,让查询命中最佳的物化结果,实现百亿级数据的秒级响应。尤其关键的是,其物化引擎支持对去重计数、比率类等复杂指标进行上卷聚合,突破了传统物化技术的限制。


第三步:实施落地——采用“存量挂载”与“增量原生”混合策略

引入新范式无需“推倒重来”。我们推荐采用分阶段的混合策略,平滑演进,保护既有投资:

  1. 存量挂载(保护投资):对于现有逻辑稳定、性能尚可的物理宽表,直接将其接入语义层,映射为“逻辑视图”并注册指标。实现零开发成本下的统一服务出口。
  2. 增量原生(遏制新债):对所有新产生的分析需求,尤其是来自 AI Agent 的灵活问数,坚决采用“原生”模式。直接基于 DWD 明细层,通过语义层定义指标,由平台自动化处理计算与加速,从源头杜绝新宽表的产生。
  3. 存量替旧(优化成本):在平台能力得到验证后,逐步识别并下线那些维护成本高、逻辑复杂的“包袱型”旧宽表,将其逻辑迁移至语义层,释放计算资源。

一个典型的推广路径分为四个阶段:战略筹备与灯塔选择 -> 价值验证与能力内化 -> 全面推广与组织建设 -> 生态融合与价值深化。核心是从一个痛点明确的业务场景(如“营销活动分析”)切入,快速交付可感知的价值,建立内部信心后再规模化推广。

第四步:价值深化——从统一分析到赋能 AI 智能体

当统一的指标语义基座建成后,其价值将超越传统 BI,深度赋能 AI 场景:

  • 为 AI 划定“认知围栏”:语义层提供的结构化、业务友好的指标与维度元数据,是 RAG(检索增强生成)的优质语料。AI Agent 不再需要直面晦涩的物理表 Schema 去“猜测”SQL,而是通过 NL2Metrics(自然语言转指标查询) 模式,调用标准的语义 API(如 GetMetric(name=”毛利”, filter={region:”华东”})),从根本上降低幻觉风险。
  • 提供深度分析工具:语义层内置的 明细级多维度归因 等模块,可通过 API 被 AI Agent 调用。当业务指标波动时,AI 能自动、即时地分析出是哪个维度(地区、渠道)下的哪个具体值(某个产品)贡献了主要变化,实现从“看数”到“归因”的智能决策闭环。
  • 实现双模驱动:底层同一套语义基座,向上同时支撑 BI 的“稳”(固定报表、高精度、秒级呈现)与 AI 的“活”(灵活探查、自然交互、智能归因),无需为 AI 单独建设数据管道。

避坑指南:甄别“真伪”NoETL 语义编织平台

市场概念纷杂,选型时请重点考察以下四个维度:

  1. 计算内核:是“静态逻辑目录”还是“动态计算引擎”?真平台必须支持在未打宽的 DWD 上构建“虚拟事实网络”,并支持通过配置定义跨表聚合、二次聚合、比率留存等复杂指标,而非只能做简单聚合。
  2. 性能机制:智能物化是“全自动”还是“基于声明”?真平台应允许管理员声明加速策略,由系统自动完成物化任务的创建、运维和查询路由,并支持不可累加指标(如去重计数)的物化上卷。
  3. 架构属性:是“BI 附属品”还是“中立开放基座”?真平台应通过标准 Restful API 和 JDBC 接口提供服务,能与任何 BI 工具(如 Tableau、Power BI 通过 JDBC)、业务系统或自研 AI Agent 无缝集成,避免厂商锁定。
  4. AI 适配度:是“Schema 投喂”还是“语义增强”?真平台应提供结构化的语义元数据(指标口径、血缘、业务限定),支持 NL2Metrics 和 Function Calling,为 AI 提供精准的业务上下文,而非仅仅暴露原始表结构。

成功标准:如何衡量数据价值是否被真正激活?

数据价值的激活应是可量化、可感知的。成功落地后,企业应在以下三个维度看到显著改善:

  1. 业务敏捷性:临时性、探索性的数据分析需求,平均响应时间从“周级”缩短至“分钟级”,业务自助用数比例大幅提升。
  2. 成本可控性:通过消除冗余的 ETL 加工和物理宽表,数据仓库的存储与计算成本得到显著优化(实践案例中常见 20%-30% 的下降)。
  3. 决策精准性:基于全公司统一的指标口径,数据驱动的洞察更加可信。结合明细级归因能力,业务行动(如渠道优化、产品迭代)的效果可衡量、可归因,决策闭环速度加快。

案例印证:某头部券商引入 NoETL 语义编织平台后,在一条核心业务线上,IT 仅需维护 10 张公共层模型和 100 个原子指标,即可支撑业务人员使用超过 300 个维度进行灵活组合分析,将指标开发交付周期从两周以上缩短到分钟级,并实现了指标口径的 100% 一致。

常见问题(FAQ)

Q1: 我们已经用了现代云数仓,为什么还需要 NoETL 语义编织?

现代云数仓(如 Snowflake、BigQuery)解决了存储和计算的弹性问题,是强大的“引擎”。但业务灵活分析的需求,仍然需要通过人工开发大量宽表来满足,这导致了“最后一公里”的口径混乱和成本浪费。NoETL 语义编织是在这些强大引擎之上,构建统一、敏捷的“业务语义层”和“自动变速箱”,让好引擎能持续、高效地产出可信、好用的数据。

Q2: NoETL 是不是意味着完全取消 ETL?历史宽表怎么办?

NoETL 并非取消 ETL,而是改变其主体和模式。物化加速本身也是一种 ETL,但其策略由管理员声明,执行由系统自动完成。对于历史宽表,建议采用“存量挂载”策略接入,保护投资;对所有新需求,坚决采用“增量原生”,由系统自动化智能物化,无需人工开发新宽表。

Q3: 引入 NoETL 语义编织,对现有数据团队有什么影响?

这是积极的角色转型。数据工程师将从重复、低价值的 SQL 脚本编写和 ETL 运维中解放出来,转向更具战略性的工作:设计与优化企业级语义模型、保障数据供应链质量、配置与优化物化策略(FinOps)、以及赋能业务人员。平台通常提供直观界面,辅以针对性培训,团队可以较快适应新角色,提升整体价值。

Key Takeaways(核心要点)

  1. 范式革新:NoETL 语义编织通过 “逻辑与物理解耦”,构建统一语义层,是解决传统数据供给“不可能三角”的根本性架构革新。
  2. 核心能力:真正的平台必须具备 统一语义建模、自动化查询生成、声明式智能物化加速 三大支柱,尤其要支持复杂指标的物化上卷。
  3. 落地路径:采用 “存量挂载 + 增量原生” 的混合策略,从灯塔场景切入,小步快跑,实现平滑演进与价值快速兑现。
  4. 未来价值:统一的语义基座不仅是提升 BI 效率的工具,更是企业构建 AI-Ready 数据底座、实现“BI稳”与“AI活”双模驱动的关键基础设施。
  5. 衡量标准:成功与否看三点:业务分析响应是否进入“分钟级”、存算成本是否显著下降、数据驱动的决策是否更精准可行动。

本文首发于 Aloudata 官方技术博客,查看更多技术细节与高清图表,请访问原文链接:https://ai.noetl.cn/knowledge-base/low-cost-activate-user-beh...

仅作为技术交流分享,不可用于其它用途

一 WeFlow

持续维护中。。。

测试wx版本:4.1.6.46

项目地址,备用下载:https://wwbxo.lanzoue.com/iGAs03h6zsoj(资源受限,看标题无需下载)

主要功能:

  • 本地实时查看聊天记录
  • 统计分析与群聊画像
  • 年度报告与可视化概览
  • 导出聊天记录为 HTML 等格式
  • 本地解密与数据库管理

⚠️ 本工具仅适配微信 4.0 及以上版本,请确保你的微信版本符合要求
weflow1.png
weflow2.png

EchoTrace

已停止维护。

测试wx版本:4.1.6.46

项目地址,备用下载:https://wwbxo.lanzoue.com/iGAs03h6zsoj(资源受限,看标题无需下载)

EchoTrace 是一个完全本地的微信聊天记录导出、分析与年度报告生成工具。它可以解密你的微信聊天记录并保存在本地离线查看,也可以将其导出为HTML等与朋友分享,还可以根据你的聊天记录为你生成独一无二的分析报告

echotrace2.png
echotrace.png

1)Async Asset Upload下Time Slice和Buffer Size在移动端分别如何设置
2)UE LLM中观察到Physics/ChaosAcceleration内存占用代表什么


这是第462篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:793972859

From UWA AI 问答

Q:Async Asset Upload下Time Slice和Buffer Size设置有什么用,移动端一般怎么设置?

A:在Unity的异步资源上传管线(Async Upload Pipeline,AUP)中,Time Slice和Buffer Size是两个核心可控参数,直接影响纹理/网格上传的CPU占用、GPU上传吞吐、内存开销与帧稳定性,尤其在移动端资源加载密集场景下至关重要。<br/>
一、核心作用解析

  • asyncUploadTimeSlice(时间片)
    控制每帧在渲染线程上用于上传数据的最大毫秒数(范围 1~33ms)。值越小,单帧上传压力越低、帧率更稳定;值越大,上传更快、但可能造成偶发卡顿。本质是「CPU时间配额」,防止上传阻塞主线程或渲染线程。
  • asyncUploadBufferSize(环形缓冲区大小)
    设定用于暂存待上传数据的环形缓冲区内存上限(2~2047MB)。该缓冲区复用于解压、读取与GPU上传。设置过小会频繁重分配(触发额外GC/系统调用);过大则浪费RAM,尤其在内存受限的Android/iOS设备上易引发OOM或系统杀进程。

二、移动端推荐配置(基于实测与平台约束)

三、协同优化要点

  • 必须配合LZ4压缩+Streaming Mipmaps启用,否则异步上传无法生效;
  • 在Quality Settings中统一配置,避免运行时频繁修改(引发缓冲区重分配)。

⚠️ 注意:Editor中行为与真机不同(全量加载),所有调优必须在真机Profile(如Android Systrace/iOS Metal GPU Capture)下验证。


From UWA AI 问答

Q:UE LLM中观察到Physics/ChaosAcceleration内存占用代表什么?

A:Physics/ChaosAcceleration内存占用(常见于Unreal Engine 5的Chaos物理系统性能报告中)代表Chaos物理求解器在运行时为加速度(Acceleration)数据所分配和维护的内存总量,具体包括:

  • 刚体/软体粒子加速度向量缓存:每个动态物理对象(如TRigidParticles、TDynamicParticles、TSoftsSolverParticlesRange)均需存储当前帧的加速度(FSolverVec3或TVector<float,3>类型),用于积分、约束求解与碰撞响应;
  • 并行计算结构开销:Chaos使用多线程+SIMD(如ISPC)加速,加速度数据常以AoS或SoA方式组织,并伴随对齐填充、任务队列缓冲区、临时中间数组等内存开销;
  • 加速结构关联元数据:若启用AccelerationStructureUseDynamicTree或AccelerationStructureCacheOverlappingLeaves,加速度数据可能与空间索引结构(BVH、Grid)耦合,产生额外引用或缓存内存。

⚠️ 注意:该指标不等于“每帧实时计算的加速度值大小”(单个加速度仅12字节),而是整个生命周期内被活跃管理的加速度数据集合 —— 尤其在高密度物理对象(如布料、碎裂、大量RigidBody)、未及时休眠或未启用ParticlePool优化时,其内存会显著增长。

✅ 优化建议:

  • 启用p.Chaos.Solver.UseParticlePool true,复用已休眠粒子内存;
  • 调整休眠阈值(p.Chaos.Solver.Sleep.*Threshold)加速非活跃对象进入休眠态,减少持续更新的加速度数据量;
  • 检查是否误启用了p.Chaos.Solver.ShrinkArrays false(默认) —— 若设为true可在空闲时收缩数组,但需权衡频繁重分配开销;
  • 对非关键物理对象(如远景碎石)启用p.Chaos.Solver.OneWayPairCollisionMode 0或降低p.Chaos.Solver.Joint.TransferCollisionsStiffnessClamp,减少约束激活导致的加速度更新频次。

该内存项通常与Active Constraints、Physics.ProcessReports CPU耗时协同分析 —— 若二者同步激增,大概率指向物理对象过载或约束配置不当。

分享链接:
https://www.uwa4d.com/main/uwa-shared.html?shareId=59dd2fd7-8...

无论是社区里开发者们的互助讨论,还是AI基于知识沉淀的快速反馈,核心都是为了让每一个技术难题都有解、每一次踩坑都有回响。本期分享分别来自UWA AI问答和UWA问答社区,希望这些从真实开发场景中提炼的经验,能直接帮你解决当下的技术卡点,也让你在遇到同类问题时,能更高效地找到破局方向。

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859

可编程生物学的根本目标在于对生命系统实现理性设计与精准调控,从而为复杂疾病带来革命性疗法。然而,这一进程长期受限于生物系统的内在复杂性。跨尺度的调控网络、隐藏的长程序列依赖关系,以及生物应对环境变化的多样适应性,都使得传统「试错式」研发陷入定制化、低通量、高成本的困境。

究其根本,当前计算模型所依赖的训练数据,无论规模还是多样性,都远未覆盖生命在数十亿年进化中形成的浩瀚设计空间。这些模型因此难以捕捉到通用设计法则,在面对多模态、跨尺度的创新疗法设计时,泛化能力严重不足。

为突破这一根本性限制,Basecamp Research、英伟达及多所顶尖学术机构共同开发了 EDEN 系列宏基因组基础模型,通过从海量跨物种、关联环境信息的自然进化数据中学习,首次系统性地提炼出生物设计的深层「语法」与通用原则。该模型参数规模达 280 亿,在多项基准测试中取得了 SOTA,其核心突破在于获得了卓越的跨物种序列理解与生成能力,从而将生物工程从「筛选」推进到「可预测编程」的新阶段。

为验证 EDEN 作为统一生物设计引擎的能力,研究团队在多种治疗模式上进行了系统测试。在基因治疗中,仅凭目标位点 30 个碱基的提示,EDEN 即可从头设计出能在人类基因组中精准整合大片段的活性重组酶。在抗菌肽设计方面,同一模型生成的肽库对多重耐药病原体活性高达 97%,且具备微摩尔级效价。在生态系统层面,EDEN 成功构建出包含数万个人工基因组、代谢途径准确且物种关联性合理的合成微生物组。

相关研究成果以「Designing AI-programmable therapeutics with the EDEN family of foundation models」为题,已发表预印本于 bioRxiv。

研究亮点:

  • 开创了从进化历史中直接学习通用设计原则的新范式,利用覆盖全球生物多样性的宏基因组数据库BaseData 进行训练,获得了卓越的跨物种序列理解与生成能力
  • 验证了单一基础模型驱动多尺度、多模态疗法设计的强大通用性,证明一个模型即可统一应对从分子到生态系统的复杂设计挑战。
  • EDEN 仅凭 DNA 提示,就能为多种疾病相关位点设计出功能性的重组酶,在未经训练的靶点上实现了 63.2% 的功能命中率

论文地址:

https://doi.org/10.64898/2026.01.12.699009\
关注公众号,后台回复「EDEN」获取完整 PDF

更多 AI 前沿论文:\
https://hyper.ai/papers

BaseData 数据集:以高质量长序列重塑生物 AI 数据基准

该研究使用的 BaseData 数据集从根本上突破了传统生物数据库的局限。传统数据库通常依赖有限的参考基因组和碎片化的短序列,而 BaseData 旨在系统性地捕捉完整进化信号,构建了一个覆盖全球生物多样性的进化基因组数据供应链。

BaseData 的核心价值首先体现在规模与战略性构成上。如下图所示,其包含 9.7 万亿个用于训练的核苷酸标记,涵盖超过 1 百万个新物种和 1 千亿个新基因。更重要的是,其内容并非随机采集,而是刻意富集了环境宏基因组、噬菌体及可移动遗传元件等高信息密度的序列。这些数据天然记录了噬菌体-宿主互作、水平基因转移等关键进化动力,为模型学习跨物种的通用功能规则提供了核心素材。


BaseData 与 OG2 对比、基于生物群落起源、基于 pH 值的 UMAP 图

在数据质量方面,BaseData 实现了质的提升,关键体现在序列上下文的完整性。与广泛使用的 OpenGenome-2(OG2)相比,其连续序列片段(重叠群)的长度中位数达到 18.6 kbp(OG2 为 4.0 kbp),每个组装体包含的基因数量也显著更多。更长的连续背景对模型理解基因间的调控与代谢通路至关重要。


BaseData 与 OG2 在宏基因组数据库中的片段长度分布

为量化这种质量优势,研究团队开展了对照实验:在 BaseData 和 OG2 的等规模数据上训练了系列模型。结果清晰地验证了「质量感知缩放定律」。在同等计算开销下,基于 BaseData 训练的模型测试困惑度下降更快。一个重要发现是,大型模型(如 70 亿参数)能充分利用 BaseData 的长序列信息,性能最终超越在 OG2 上训练的同类模型,直接证明了长程上下文对模型性能的决定性影响。


在不同参数情况下,EDEN 模型家族的困惑度测试与浮点运算次数之间的关系

基于这一规律,研究团队使用完整 BaseData 训练了参数量达 280 亿的 EDEN-28B 模型。该模型不仅达到了最低测试困惑度,其性能提升轨迹也与从小规模模型推导的缩放预测完美吻合。在下游任务监控中,模型在预训练期间生成蛋白质的结构置信度指标随训练进程持续单调上升,证明高质量数据直接且稳定地提升了面向实际治疗的生成能力。

此外,所有数据均通过覆盖 28 个国家、208 项许可的规范化法律协议获取,建立了从源头到使用的可追溯与利益共享框架,为大规模生物 AI 研究设立了必要的伦理与治理标准。

EDEN-28B 模型生成的大丝氨酸重组酶 pLDDT 的分布情况

通用生物设计引擎 EDEN

EDEN 模型家族以「规模化、通用性与可扩展性」为核心设计原则,模型参数规模跨越 1 亿至 280 亿。其中,作为核心工作模型的 EDEN-28B,其架构与训练策略均深度适配宏基因组数据的独特性质。

在模型架构上,EDEN 采用了经过大规模语言模型验证的仅解码器 Transformer 架构,具体基于 Llama 3.1 的设计风格。这一选择得益于 Transformer 对长程依赖关系卓越的建模能力。EDEN-28B 包含 48 层网络,隐藏层维度为 6,144,配备 48 个注意力头,使用 SwiGLU 激活函数与 RoPE 位置编码。模型使用单核苷酸分辨率的标记化方法,词汇表大小为 512,从而能够以最基础的「字母」级别理解和生成 DNA 序列。

一项关键技术亮点在于其长序列生成能力。尽管模型的上下文窗口设定为 8,192 个标记,但在实际应用中,它能够稳定生成并准确拼接超过 13,000 个碱基对的连贯基因组序列,且保持正确的基因顺序、阅读框与调控元件结构。这表明模型所学到的远非局部模式匹配,而是能够推断并应用一套超越物理窗口长度的、更深层的基因组组织「语法」。整个训练在 1,008 个 H100 GPU 上完成,通过大规模分布式计算实现了对海量进化数据的高效学习。


用于EDEN训练的类似 Llama3.1 的架构

EDEN 的核心设计哲学遵循「预训练‑微调」范式。在第一阶段,模型在涵盖跨物种进化历史的 BaseData 上进行大规模预训练,从而内化了关于蛋白质折叠、代谢通路组装等生物设计的通用原则。

在此坚实基础上,针对特定治疗设计任务——例如设计靶向特定 DNA 位点的重组酶或生成新型抗菌肽——仅需使用少量高质量的任务配对数据进行轻量级微调,即可使模型快速掌握该任务的「方言」。这种设计使单一的 EDEN 模型能够作为一个通用的「生物序列引擎」,灵活适配并驱动从基因插入、多肽设计到微生物组工程等截然不同的治疗模式,真正实现了「一个模型,多重能力」的可编程生物学愿景。

驱动从分子、细胞到生态系统级别的治疗创新

为系统验证 EDEN 模型在实际治疗设计中的通用性与有效性,研究团队选择了在尺度、模式与生物复杂性上截然不同的四个关键方向进行实验验证。

在 AI 可编程基因插入(aiPGI)领域,团队重点攻克了「大片段 DNA 精准整合」这一长期瓶颈。传统 CRISPR 技术依赖造成双链断裂,而天然的大型丝氨酸重组酶无法识别人类基因组序列。如下图所示,EDEN 的解决方案是,通过对模型中蕴含的数百万 LSR‑附着位点配对关系进行微调,构建出能够理解「目标 DNA 序列→对应重组酶」映射关系的 EDEN‑LSR 模型。

大型丝氨酸重组酶(LSR)机制的示意图

实验结果表明,该方案成功为 10 个不同的疾病相关基因位点及 4 个潜在「安全港」位点生成了具有活性的 LSR,总体功能命中率达到 53.6%。更关键的是,其中 50% 的设计酶能在原代人类 T 细胞中实现治疗相关水平的 CAR 基因插入,且部分变体在细胞系中实现了高达 40% 的整合效率,证明了其临床应用潜力。

利用 EDEN 实现人工智能可编程基因插入(aiPGI)

在新型桥接重组酶(BRs)领域,EDEN 模型的能力进一步拓展至一个更具编程灵活性的基因编辑系统——桥接重组酶。如下图所示,为优化设计,团队通过在数百万个含 BR 的基因组区域上对模型进行微调,构建了 EDEN‑BR 专门模型。

桥重组酶系统的示意图

关键的生化实验验证了这一设计流程的可行性。如下图所示,在初步的无细胞测试中,由 EDEN‑BR 生成的 49 个候选序列里,有两个被证实具有明确的重组酶活性。这两个名为 DF3843 和 DF3881 的人工设计蛋白,与已知任何天然 BR 序列相似性最高仅分别为 85% 和 65.8%,与一个已被深入研究的参照蛋白 ISCro4 的序列相似性甚至低于 35%,但在三维结构上却高度相似。这证明 EDEN 并非进行简单序列模仿,而是掌握了决定蛋白质功能与折叠的核心结构逻辑。

EDEN 生成的和野生型 BR 的 IVTT 测验结果

在新型抗菌肽(AMP)领域,研究团队验证了 EDEN 设计新型抗菌肽的能力。如下图所示,通过采用包含基因组上下文信息的微调策略,模型能够生成结构新颖的抗菌肽序列。

抗菌肽生成的微调和提示策略

实验验证取得了突破性成果。如下图所示,在一个由 33 条生成肽构成的 AMP 库中,高达 97% 的序列显示出抗菌活性。其中,针对多重耐药的革兰氏阴性菌(如鲍曼不动杆菌),顶级设计候选物的抑菌浓度达到微摩尔级别,展现了强大的穿透外膜能力。这些生成序列与已知数据库的相似度普遍很低,证实了模型能够突破传统同源性限制、实现真正的「从头设计」。

EDEN 生成的肽对病原菌株的抗菌活性验证测定结果

最后,在最复杂的生态系统层面,研究挑战了「合成微生物组」的设计。传统方法难以协调多物种间的代谢互作与生态平衡。如下图所示,EDEN 通过消化系统微生物组数据进行微调后,仅根据功能基因或生态位提示,便成功生成了一个包含超过 9 万个物种、规模达千兆碱基的合成宏基因组。

合成微生物组的生成策略

生成结果显示出高度的生态真实性:99% 的物种被正确归类于消化系统相关的生物群,并完整保留了跨物种的代谢通路。此外,模型甚至能准确生成整合在宿主基因组中的原噬菌体结构,证明了其已捕捉到宿主与病毒间精细的互作逻辑。

合成微生物组的 UMAP 分析和 16 种显著富集的代谢途径概览

这四大跨尺度实验共同表明,基于统一进化数据预训练的 EDEN 模型,能够作为一个通用的生物设计引擎,仅需极少的任务特异性数据引导,即可快速、可靠地驱动从分子、细胞到生态系统级别的治疗创新,为可编程生物学奠定了坚实的实践基础。

AI 与合成生物学的融合创新

近年来,可编程生物学领域在学术界与工业界的融合创新步伐显著加快,一系列重磅进展正在重新定义生物设计的边界。

全球顶尖学术机构正以前所未有的规模和精度,将进化智慧转化为可计算的模型。例如,2024 年初,由DeepMind、Isomorphic Labs 与多所大学组成的联合团队,发布了能同时预测蛋白质结构、相互作用并生成具有特定功能全新蛋白质的 AlphaFold 3 模型。该模型首次将生物分子的复杂共舞纳入统一框架进行高精度模拟,被 Nature 杂志评价为「在绘制生命的分子机器内部运作方式上实现了飞跃」。

产业界则加速将这些突破转化为平台与疗法。在 AI 制药领域,NVIDIA 与 Recursion Pharmaceuticals 发布了生物化学 AI 模型库 BioNeMo,旨在使药物发现从「大海捞针」转向「按图索骥」。合成生物学公司 Ginkgo Bioworks 则利用其自动化平台,系统性设计用于碳捕获和化学品生产的微生物群落,推动「合成生态系统」的工程化。

这股由数据和算法驱动的新浪潮,正推动生物学从观察描述的科学,转变为一门可编写、可调试、可预测的工程学科,不仅意味着我们能够更精准地编写生命代码来攻克疾病,更预示着我们将有能力系统地设计生物系统,以应对资源、环境与健康领域的全球性挑战。

参考链接:\
1.https://nvidianews.nvidia.com/news/nvidia-announces-broad-exp...\
2.https://www.ginkgobioworks.com/2024/01/04/ginkgo-bioworks-and...

大家好,我是凌览。

如果本文能给你提供启发或帮助,欢迎动动小手指,一键三连(点赞评论转发),给我一些支持和鼓励谢谢。


还记得钉钉提示音让心脏漏跳半拍的感觉?还记得周五火锅吃到一半,弹出那句"不急,周一给我"的绝望?

每个月总有那么几个瞬间,手指悬在"离职申请"上,想把那些"抓手赋能""链路闭环"的黑话统统砸回老板脸上,拉着姑娘直奔海边,让海风把KPI、OKR统统吹散。

但深夜算完银行卡、账单和退休政策后,现实很骨感:按现在的攒钱速度,我得打工打到退休。

盯着满桌演算草稿,我突然开窍:我是个开发者啊! 既然距离自由还有十万八千里,为什么不开发个产品赚睡后收入,让代码替我加速跑路?

之前做自媒体剪视频,最烦的就是找素材——好不容易从平台扒下来的视频,中间总挂着碍眼的水印,关键帧根本没法用。

与其到处求无水印资源,或是开着 PS 一帧帧抠图,我干脆一拍键盘:不如自己写个工具,一键把水印抹干净。

调研

有了想法肯定得调研可不可行,找找竞品有哪些问题。

总结下来,竞品蛮多,当然问题也多。

调研完发现竞品问题很集中:

  1. 个人开发居多,打开就是输入框+按钮,用户不知道怎么用
  2. 企业级产品强制开会员,成本就上来了
  3. 大部分为小程序,对于PC端并不支持
  4. 扎堆传统平台,AI视频/图片的新平台完全空白

这四点全是机会,不同质化竞争,做差异化。

设计+开发

首先,我不是设计师,UI 这块没什么专业见解。具体做法是先扒一遍竞品,在巨人肩膀上修修补补。

技术栈没折腾,直接上熟练工:Vue3 + Tailwind + UniApp + Node.js。本职前端,后端找了个 24 小时在线的「赛博同事」——AI 负责写,我负责 Review 和改 Bug(毕竟底子还在,只是生锈了)。

坚持能简则简,什么高并发、什么数据库等选择能省则省。比如其中有个 IP 限流的功能,直接本地 JSON 文件临时存储,足够用了。

主页面 UI 如下:

上线与收益

因 wx 平台审核导致小程序名称与 PC 端品牌名被迫不一致,更繁琐的是整个上线前的各种审核——备案、公安备案、企业认证,层层审核确实消耗了大量耐心,这步不详细描述跳过。

上线后,我把它分享给了我的朋友,也得到了很多人的认可。

聊聊收益,其实我有三条来钱路子。今天先聊最「躺」的那个——流量主。

流量主有个「新手村」门槛:500 个累计用户。跨过去之后倒是省心,平台把广告组件都打包好了,接起来贼方便。
PC 端本来也想挂 Google Ads 赚点美刀,但一看要填表、申请、过审……算了,拖延症犯了,至今没搞。主要是嫌烦,先放着吧。

收入不多,但每天一根火腿肠是没问题的。推广到位单靠流量主一个月也能有300,每年只需要支付认证费用30再加服务器成本,对于我来说还是赚的。

最后

当然,这个工具还不足以让我实现不想上班的愿望,还在努力中。

至少现在我每天能多吃一根火腿肠了!!!

本文首发于 Aloudata 官方技术博客:《自研指标平台是大坑?80%企业选择采购NoETL自动化指标平台》转载请注明出处。

摘要:本文深入剖析了企业自研指标平台面临的三大核心技术挑战:统一语义层构建、智能物化加速与开放生态适配。通过对比传统静态指标字典与 NoETL 动态语义引擎的架构差异,并结合总拥有成本(TCO)分析,论证了对于绝大多数企业而言,采购成熟的 NoETL 自动化指标平台是实现数据敏捷、降低长期成本、规避技术风险的理性选择。

认知误区:你以为在做“字典”,实际需要打造“引擎”

企业启动自研指标平台的初衷通常是解决“口径乱”的问题,希望建立一个统一的指标目录或“字典”。然而,在 AI 驱动的数智化运营时代,业务对数据的灵活性要求呈指数级增长。一个简单的指标目录,无法支撑业务人员“任意维度、任意筛选”的自助分析,更无法让 AI 智能体(Agent)理解并调用。

“传统 ETL 通过宽表和汇总表交付指标的模式,导致了大量指标的重复开发,造成企业在存储和计算上的巨大浪费。” —— Aloudata CAN 产品白皮书

问题的本质在于,支撑现代数据分析的并非一个静态的“字典”,而是一个能实时工作的“引擎”。这个引擎需要具备:

  • 语义解析能力:理解业务术语(如“有效销售额”)背后的复杂计算逻辑(SUM(订单金额) - SUM(退款金额))。
  • 动态计算能力:在不预建物理宽表的前提下,实时关联多张明细表,生成“虚拟业务事实网络”。
  • 性能保障能力:通过智能化的物化加速,确保对海量明细数据的查询也能获得秒级响应。

自研项目往往始于对“统一口径”的朴素追求,却最终陷入构建一个企业级“语义计算引擎”的深水区,其技术复杂度和资源需求远超初期规划。

挑战一:语义解析——从“静态表”到“动态虚拟宽表”

这是自研面临的第一道技术鸿沟。传统方式通过 ETL 工程师编写 SQL,将业务逻辑固化在物理宽表(DWS/ADS)中。而 NoETL 语义编织要求平台构建一个“统一语义层”,在不进行物理打宽的前提下,通过声明式建模,让系统能实时理解并关联跨多张明细表(DWD)的业务逻辑,形成“虚拟业务事实网络”。

这要求自研团队具备编译原理、查询优化和复杂业务抽象能力,而非简单的 SQL 封装。具体挑战包括:

  1. 逻辑关联的动态解析:如何让系统理解“订单表”的“客户 ID”与“客户维度表”的“客户 ID”在业务上等价,并能处理多通路等复杂场景。这需要设计一套元数据模型来声明和管理表间关联关系。
  2. 复杂指标的函数化封装:如何将“近 30 天消费金额 >5000 的客户数”这类业务需求,配置化为可复用的语义函数(如跨表限定、指标维度化、二次聚合),而无需为每个需求手写数百行 SQL。这本质上是构建一个面向业务人员的“高级查询语言”及其编译器。
  3. NL2Metrics 的意图理解:若想对接 AI,还需构建让大模型能理解的“语义知识图谱”,实现从自然语言到指标调用的精准转换(NL2Metrics),从根源上根治数据幻觉。这需要将业务指标、维度、限定条件等语义元数据结构化,并提供标准的 Function Calling 接口。

自研团队需要从“SQL 脚本执行者”转变为“语义编译器设计者”,这是一个质的飞跃。

挑战二:智能物化——从“人工运维”到“系统自治”

即使解决了语义解析,面对企业百亿级的明细数据,如何保障查询的秒级响应?传统做法是数据工程师基于经验,手动创建和维护大量的物化视图(加速表)。但这种方式成本高昂、响应滞后,且极易形成新的数据冗余。

NoETL 平台的智能物化加速,其核心并非取消 ETL,而是将其升级为一种由“声明式策略”驱动的自动化性能服务。自研实现这一能力的难点在于:

  1. 物化策略的自动生成与优化:如何基于用户对指标和维度的“加速声明”,结合数据分布和查询历史,自动设计出存储成本与查询性能最优的物化方案,并支持去重计数、比率类等复杂指标的上卷。
  2. 查询的透明改写与路由:如何让用户的查询请求(无论是来自 BI 拖拽还是 AI 调用)无感知地自动路由到最优的物化结果上,并完成底层 SQL 的透明改写,这对查询优化器的要求极高。
  3. 口径变更影响的全面分析:如何在指标口径变更时自动识别并提示所有下游影响,辅助用户根据变更影响告警进行物化任务重建和数据回刷操作,这对数据血缘解析有着极高的要求。

“通过智能物化加速确保十亿、百亿级明细数据的秒级查询响应。” —— NoETL 指标平台白皮书

这要求自研团队不仅精通数据库内核优化,还需具备平台级的资源调度与成本管控(FinOps)能力。

挑战三:生态适配——从“孤岛工具”到“中立基座”

指标平台的终极价值在于被消费。企业内往往存在多种 BI 工具(如 Tableau、Power BI)、业务系统和新兴的 AI 应用。自研平台极易陷入为某个特定前端(如某个自研报表系统)深度定制的陷阱,成为一个新的“数据孤岛”。

真正的指标平台必须是中立的“数据中枢”,其挑战在于:

  1. 标准化接口设计与实现:提供稳定、高性能的 Restful API 和成熟的 JDBC 驱动,确保下游各类应用能无差别、高性能地调用指标服务。
  2. 治理规则的内嵌与强制执行:将企业的数据安全策略(行列级权限)、审批流程等治理要求,平台化、内嵌化到指标的生产和消费链路中,从技术上保障“One Truth”的落地,而非依赖人工监督。
  3. 与现有数据湖仓的平滑集成:无需推翻重来,能通过标准连接器对接企业已有的各类数据湖仓,实现对存量宽表的“挂载”与新需求的“原生”建模混合策略,保护既有投资。

生态适配能力决定了平台是企业长期演进的“基石”还是又一个短命的“项目”。

TCO分析:自研与采购的总拥有成本对比

决策必须超越初始采购费用,基于总拥有成本(TCO)进行理性分析。自研的初始开发成本只是冰山一角,后续高昂的持续维护、升级、扩容成本,以及因效率低下导致的业务机会成本,构成了“隐形高利贷”。

成本维度自研模式 (典型问题)采购 NoETL 平台 (典型收益)
人力成本组建并长期供养一支精通数据架构、编译原理、分布式系统的顶尖团队,招聘难、流失风险高。将数据工程师从重复 ETL 开发中解放,转向高价值的语义建模与业务赋能,人力结构优化。
开发与运维成本语义解析能力、动态查询能力、只能物化能力、查询命中与上卷等复杂功能需人工持续设计、开发、调试、运维,复杂度线性攀升。成熟平台实现自动化指标生产、智能物化与查询路由,运维复杂度大幅降低,实现“以销定产”。
机会成本需求响应慢(周/天级),压抑业务探索,错失市场机会;数据口径混乱,引发决策风险。传统方案探索性分析准确率仅 40%。需求分钟级响应,激活业务自助分析;口径 100% 一致,构建决策信任基石。复杂任务准确率可达 98.75%。

根据第三方测试数据,采用成熟的 NoETL 架构平台,可实现 3 年 TCO 降低 45%,需求平均响应时间缩短 90.71%,从“成本中心”转变为“效率引擎”。(来源:相关技术评测报告)

决策矩阵:何时该自研,何时该果断采购?

企业不应一概而论。通过以下决策矩阵,可以清晰判断自身情况:

应果断采购,若:

  • 核心目标是快速实现业务数据化运营与敏捷决策。
  • 缺乏构建并长期维护复杂数据计算引擎(语义引擎、智能物化)的核心技术团队。
  • 需要对接多种 BI 工具和 AI 应用,避免厂商锁定。
  • 希望控制长期 TCO,避免技术债务失控,追求确定性回报。

可谨慎评估自研,若:

  • 拥有极其特殊、封闭且稳定的业务场景,市面产品完全无法满足。
  • 具备世界级的数据系统工程团队,且将自研平台作为核心战略产品投入。
  • 不计较时间与金钱成本,旨在技术积累。

对于绝大多数追求数据敏捷、希望快速获得业务价值的企业,采购成熟的 NoETL 自动化指标平台是明确的最优解。

常见问题 (FAQ)

Q1: 自研指标平台,初期投入大概需要多少人和多长时间?

初期投入严重低估是常见陷阱。要打造一个具备基本语义解析和查询能力的原型,至少需要一个 5-8 人的资深团队(含架构、前后端、数据开发),耗时 6-12 个月。而这仅能达到“可用”水平,距离支撑企业级复杂分析、智能物化和 AI 对接的“好用”阶段,还需持续投入 2-3 年及更多资源进行迭代和运维,总成本远超预期。

Q2: 采购 NoETL 指标平台,如何与我们现有的数据仓库集成?

成熟的 NoETL 平台设计为中立的数据基座。它通过标准连接器直接读取您现有数据仓库的公共明细层(DWD)数据,无需数据搬迁。平台在逻辑层构建语义模型和虚拟宽表,对下游提供统一 API 服务。现有 BI 报表和 ETL 任务可以逐步迁移至新平台消费,实现平滑演进,保护既有投资。

Q3: 如果未来业务变化很大,采购的平台会不会不够灵活?

这正是 NoETL 平台的核心优势——应对变化。其“语义模型驱动”的架构,将易变的业务逻辑(指标口径、维度关联)上浮至可配置的语义层,而将稳定的物理存储与计算下放。当业务变化时,只需在语义层修改或新增配置,无需改动底层 ETL 和物理表。这种解耦设计使平台天生具备极强的业务适应性。

Q4: 如何验证平台真能解决“口径不一致”和“响应慢”的问题?

要求在 POC(概念验证)中设置真实业务场景:1) 口径验证:在平台中统一定义一个核心指标(如“有效销售额”),并确保通过 API 在不同测试报表中调用结果完全一致。2) 性能验证:针对一个涉及多表关联和复杂筛选的灵活分析需求,测试从发起查询到获取结果的端到端响应时间,要求达到秒级。同时,核查厂商提供的同类客户案例中的量化收益数据。

核心要点

  1. 本质是引擎,而非字典:自研指标平台的核心挑战是构建具备实时语义解析与智能物化能力的“动态计算引擎”,技术复杂度远超一个静态的指标目录。
  2. 三大挑战难以逾越:语义解析(构建虚拟宽表)、智能物化(系统自治的性能服务)、生态适配(中立的数据中枢)是自研工程实现上的核心难点,需要顶尖的架构与工程团队。
  3. TCO 揭示真实成本:自研的隐性成本(长期维护、机会成本)极高,而采购成熟平台能获得开发提效 10 倍、存算成本降 70%、分钟级响应的确定性回报。
  4. 采购是理性决策:对于绝大多数追求数据敏捷与业务价值的企业,采购经过大规模复杂场景验证的 NoETL 自动化指标平台,是规避风险、加速见效的最优路径。

本文首发于 Aloudata 官方技术博客,查看更多技术细节与高清架构图,请访问原文链接:https://ai.noetl.cn/knowledge_base/noetl-automation-metric-pl...