datainfra前沿动态 · Vol.99

Lance 2.3 把页编码拆成结构平面与值平面,LanceDB 把 MemWAL 改名成 RTE;Databricks 用 MemCurrent 把 Agent 记忆做成 Lakebase 上的两层存储;AWS Clean Rooms 直接读 Delta Sharing 表;Prefect 3.9.0 抬走 Python 3.10 并接上 3.15

本期聚焦四条 10 月 20 日至 21 日的进展,动作形状一致:把一件原本含混的事拆成有名字、有边界的两半——编码拆成结构与值两个平面、记忆拆成原始轨迹与蒸馏知识、跨组织协作拆成注册入口与数据本体、运行时拆出明确支持的版本区间。

DataInfra Lance LanceDB 列存格式 Planar 向量检索 Databricks Agent Memory MemCurrent Lakebase AWS Clean Rooms Delta Sharing Prefect 编排 Python

本期四条动态落在 10 月 20 日至 21 日这两天,来自两个开源项目与两个平台方,做的事可以概括成同一个动作:把一件原本含混的事拆成两半,并且给每一半起名字、划边界。Lance 在 24 小时内连发三个标签,把 2.3 版本的页编码拆成结构平面与值平面,稀疏数据不再被迫走稠密布局,LanceDB 侧则把两个月前刚从 LSM 改名为 MemWAL 的那套写入 API 再改名为 RTE;Databricks 同日发两篇,产品侧把 Agent 记忆做成 Lakebase 上的 Beta 服务,研究侧的 MemCurrent 给出它的两层结构——append-only 的原始轨迹加后台蒸馏出的派生知识,内部基准上通过率从 22.3% 提到 68.4%;AWS Clean Rooms 把 Databricks 加为数据源,跨组织协作的入口从「先复制一份到 S3」换成「注册一个 Delta Sharing share」;Prefect 3.9.0 把运行时的版本边界一次写清——下限抬到 Python 3.11,上限补到 3.15,Pendulum 的日期时间行为在 3.11 与 3.12 上转入弃用。四处动作的代价也各自写在明面上:早期不稳定 2.3 文件没有兼容路径、REST 端点换名要客户端跟着动、记忆库变成一项要治理的资产、旧调度行为要改。

Lance 2.3 把页编码拆成两个平面,LanceDB 把 MemWAL 改名成 RTE

事件概述

10 月 21 日 06:24 UTC 起,Lance 格式仓库在不到三个小时里连打 v14.0.0-beta.22、v14.0.0-beta.23、v14.0.0-beta.24 三个标签,前一晚 LanceDB 侧已在 10 月 20 日 17:07 UTC 打出 v0.41.0-beta.10。

这一批里分量最重的是 Lance 2.3 的 planar 页结构。PR #9920 定义了独立的 planar 元数据契约,PR #9921 紧接着把它实现出来,两个 PR 都标注在 10 月 20 日 08:35 UTC 合入,是同一个六段栈的前两段(顺序为 #9920 → #9921 → #9922 → #9923 → #9924 → #9925)。beta.22 还带上了另一项格式层定义:provider-managed clustering 元数据(#9878),把聚类这件事的持久化格式与具体算法解耦。beta.24 补进实验性的 PCA 模型与查询预变换(#9967),beta.23 允许用给定样本训练 IVF(#10188)。

LanceDB 的 beta.10 则是破坏性的一版,两条 breaking change 都在用户可见面上。第一条是命名:#4598 把 MemWAL 的全部对外 API 改名为 RTE(realtime engine),横跨 Rust、Python、TypeScript、Java 与 REST 线格式。距 #4075 把 LSM 改名为 MemWAL 只过了约两周。第二条是 blob 布局:#4589 把 blob 统一成四个可空字段并支持外部字节区间。次日的 beta.11 只有文档,其中一条正是新命名的 RTE 上手指南(#4548)。

技术解析

  • planar 页的两层结构:#9920 定义的是一份「不稳定」的 Lance 2.3 planar 页契约,包含彼此独立的结构平面与值平面,附带稀疏槽位域、索引化字典项,以及它自己的递归压缩语法;这份新 schema 不 import 稳定的 2.1/2.2 编码 schema。PR 正文说明本段只含规范与生成的 Rust 绑定,读写实现与旧的不稳定声明清理在后续 PR 里,稳定格式字段与线上行为不变。
  • 稀疏与稠密共用引擎:#9921 让 2.3 可以独立于值布局选择稀疏结构,稀疏宽值走 zipped 存储,稀疏常量不再物化值缓冲;稠密页与稀疏页共用 chunked、zipped、constant、no-values 四类引擎,索引化字典访问排在栈的最后一段。共享的编解码器改用执行元数据而非稳定的 protobuf 语法;稳定的 2.1/2.2 元数据在文件边界校验并转换,稳定写入方仍序列化自己原来的信封。早期不稳定的 2.3 文件没有兼容路径。
  • 栈上其余四段:#9922 把不稳定声明从稳定编码 schema 中移除;#9923 约束 planar 的 sequence 与 offset 编码选择;#9924 降低 composite RLE 的选择与物化成本;#9925 给稀疏 planar 页加上索引化取值。
  • 聚类元数据与算法解耦:#9878 在 Manifest 上放一组重复的不可变 clustering 定义(含 id、有序的列 field id 列表、provider、version),DataFragment 与 IndexMetadata 用可选的 clustering_id 引用同一 manifest 里的定义;provider 的额外信息走已有的 Manifest.table_metadata,键名按 <provider>.<clustering_id>.<key> 命名空间化,不新增字段。PR 正文明确:本段只定义持久化格式,运行时支持与 provider API 另做。
  • 索引侧三项:#9967 加实验性 PCA 模型与查询预变换,训练在 f64 下算统计量与特征分解,存储的模型与投影输出用 f32;内存训练改为直接读 Float16/Float32/Float64 输入缓冲,转成 f64 只在均值累加与逐批中心化时发生,省掉整份 f64 输入拷贝。测量环境写的是 Apple M3 Max、macOS 27.0.1、Rust 1.98.1、仓库的 release-with-debug profile。#10188 允许用外部给定样本训练 IVF;#8662 让 streaming coreset k-means 支持 f64 质心。
  • 读取侧性能:#10163 按 id 取行不再读删除文件;#10178 只打开含被投影字段的数据文件;#10153 把默认 AIMD 上限提到 10k;#9943 缓存向量索引段的 ownership mask;#9945 通过 f32 SoA 质心表训练与编码 PQ 码本;#10187 对重复的定长向量做字典编码;#9938 从尾部读里惰性解码列元数据。
  • 正确性:#9865 把 overlay 里的陈旧行纳入 indexed merge insert(标为 Critical Fixes);#10145 修 RLE 压缩的 mini-block 字典值读取;#10041 在 stable-row-id 表上及早重映射 address 域索引;#10076 允许在显式合并窗口内做分区再均衡;#9691 避免重试错误后出现不完整的无序列举。
  • 其他接口面:#10176 让 managed blob 支持 data file parts 与描述符复用;#10192 补上 LanceNamespace 缺的 spec 操作;#9965 与 #9966 把 MinHash LSH 索引暴露给 Java 与 Python。
  • RTE 改名覆盖到线格式:#4598 的对照表列出 MemWalWriteSpec / MemWalStats → RTEWriteSpec / RTEStats,enable_memwal / flush_memwal / compact_memwal / checkpoint_memwal → 对应的 *_rte,查询与 merge insert 上的 use_memwal → use_rte,Java 的 LanceDbTableMemWal → LanceDbTableRTE。REST 路由从 /enable_memwal/ 换成 /enable_rte/,响应键 memwal_spec 换成 rte_spec,服务端 SQL 关键字变成 ALTER TABLE ... SET RTE。PR 正文强调线格式变了,必须与 sophon 侧(lancedb/sophon#8870)一起发布。Lance 自己拥有的名字(MemWalIndexDetails、DatasetMemWalExt、mem_wal 路径等)与内部 Lsm* 模块不动,文档里描述底层机制时仍写 MemWAL。
  • blob 统一成四字段:#4589 之前,TypeScript 拒绝外部 blob 字节区间,TypeScript 与 Rust 的 blob() helper 只声明 Struct<data, uri>;现在两者都声明可空的 data、uri、position、size 四个子字段,与 Python 对齐,专用的区间 helper 被移除。append 与 merge insert 会把输入归一化到存储时的 blob 布局:四字段目标为缺失的区间字段补类型化 null,两字段目标只在整条流里两个区间字段逻辑上都是 null 时才接受四字段输入,出现可见的非 null 值就中止操作且不提交前面的批次。区间校验遵循结构体与 list 上的祖先有效性——被 null 父节点隐藏的物理区间槽不参与校验。破坏性:Rust 的 blob() 与 blob_with_options() 现在返回四个子字段,从该类型构造 StructArray 的调用方必须提供四个数组(未使用的 position 与 size 补类型化 UInt64Array);两字段的既有表仍可读可写。
  • 验证口径:#4598 报 Rust 单测 1,533 通过、Java 37 通过、Python 定向测试 708 通过、TypeScript 606 通过;#4589 报 Rust blob coercion 测试 347 项、append 校验回归 89 个用例、TypeScript 697 项、Python 477 通过 2 跳过。

行业影响

planar 是 Lance 2.3 在编码层的一次重写。把结构与值分成两个平面,直接收益落在稀疏数据上:过去稀疏列要么按稠密布局付物化代价,要么走特例路径,现在两者共用同一批引擎,稀疏宽值走 zipped、稀疏常量不物化,而稠密数据不用为此多付任何东西。代价写在 PR 正文里——早期不稳定的 2.3 文件没有兼容路径,任何在 2.3 开发分支上写过数据的环境要重新生成。

MemWAL 到 RTE 的改名则是另一种信号。两周前 #4075 刚把 LSM 改成 MemWAL,理由是写入路径的实现形态已经收敛成「内存 WAL 加 SSTable 分层」;现在又改成 realtime engine,说明这套路径的定位仍在调整,从「一种存储结构」往「一种实时写入引擎」移。对外部使用者,这一版的现实成本不在语义而在端点与字段名:REST 路由与 SQL 关键字都变了,任何已经对接的服务端客户端都要跟着改,而且必须与 sophon 侧同步发布。

相关链接


Databricks 把 Agent 记忆做成 Lakebase 上的两层存储:MemCurrent 与 Agent Memory 同日落地

事件概述

10 月 20 日,Databricks 在 17:26 GMT 与 18:15 GMT 连发两篇。产品侧的《Introducing Agent Memory on Databricks》(Sirui Sun、Nihit Desai)宣布 Agent Memory 在 Agent Bricks 上进入 Beta,跑在 Lakebase——Databricks 的 serverless Postgres——之上。研究侧的《MemCurrent: Designing Persistent Memory for Production Agents》给出它背后的架构与评测。

产品侧的拆分是三块:managed sessions 按框架原生格式记录每一轮会话的消息、工具调用与结果,形成有序历史;managed memory 保存值得记住的东西——profile、preferences、domain knowledge、workflows——会话开始时注入一份「已知道什么」的索引,会话内用混合的关键词与语义检索找细节;memory pipelines 在后台按需求或按周期把会话蒸馏成长期记忆,抽取持久事实与偏好、去掉重复、用更新的会话替换被推翻的事实。官方强调 sessions 与 memories 都落在用户自己的 Lakebase project 里,独立于任何 agent 框架,可以读取、导出、删除,也可以给 memory pipeline 下指令来约束它保留什么,例如「保留持久的客户偏好,忽略一次性的调试笔记」。

研究侧要解决的是一个具体的两难:agent 在质量与效率之间往往只能取一头。MemCurrent 的答案是把记忆分成 episodic 与 derived 两层,再配三种访问模式。内部基准上,无记忆的通过率是 22.3%,MemCurrent 是 68.4%,作为天花板的 gold injection 是 78.6%;Mem0 在同一基准上是 43.9%。

技术解析

  • 三种访问模式各就各位:官方表格把接入方式分成 plugin(在会话固定点自动读写,在线计算,立即生效,代价是运行成本与延迟,且记忆不需要时也照常消耗 token)、tool(agent 自己决定读写时机,灵活,但质量受 agent 能力约束)、offline pipeline(按调度或触发在后台更新,异步批处理,成本低延迟低,代价是更新有延迟)。MemCurrent 三种都用,各放在合适的位置。
  • 两层记忆:episodic 存原始会话轨迹,append-only,由 plugin 在会话运行时逐步记录;derived 存从轨迹里蒸馏出的知识,以文件形式放在一个结构化知识库里,顶层有一份自动生成的 memory.md 索引描述文件结构。derived 的写入有两条路——agent 工具 add_memory / update_memory / delete_memory 处理显式请求(例如「不要把脚本写到 /tmp」),离线 dreaming pipeline 负责剩下的隐式学习,并清理整个库:拆分过大的文件、合并重复、解决冲突。
  • 读取分三层:会话开始时 plugin 注入记忆索引,让 agent 在动手前就知道自己知道什么;会话中 search_memory 返回查询的 top 匹配(可能是过去轨迹里的一步,也可能是记忆文件里的一行),fetch_memory 按标识取回完整条目(session ID 或文件路径)。
  • 内部基准的构造:从 12K+ 条 Genie 会话出发,挖出 3K 条含「值得记忆」信号的候选,为每条起草一个带评分 rubric 的后续问题,同用户的其他会话充当填充;对抗式 judge 按 7 条标准筛(知识是否真的存在、是否用户专属、是否回答问题所必需、是否自然、是否可验证等),人工复核后留下 114 个测试用例、29 个用户、2,233 条历史会话。与 LoCoMo、LongMemEval、ConvoMem 这类开源基准的差别有三处:领域是企业数据工作而非模拟人设的闲聊;记忆要驱动动作而非只给出答案;用例覆盖 5 种记忆类型与 11 种场景。
  • 数字:内部基准上 MemCurrent 通过率 68.4%、延迟 252 秒、token 418K,三项都是最好;相对无记忆是通过率 3 倍、快 1.35 倍、省 1.44 倍,产品篇里的另一处口径是「少用 31% 的 token、快 26%」。三个开源基准上平均 88.1%,与 full context 的 87.8% 持平,而每问题输入 token 约 12 倍之差(8.4K 对 103K);在历史最长的两个基准上它超过 full context——把所有历史塞进 prompt 反而把 agent 弄糊涂了。
  • 消融结论:只用 episodic 是 35.8%,只用 derived 是 66.1%,两者相加 68.4%;只靠离线 dreaming 是 63.5%,只靠在线工具是 53.9%,组合 66.1%。官方的读法是分工成立:dreaming 负责后台抽取与整合,在线工具负责让显式请求立即生效。
  • 两个真实例子:其一是 agent 写了正确的 SQL 却没读执行结果就自信地产出一张幻觉表格,用户纠正后这条教训进了记忆,下次它先读结果再回答;其二是「top 5 SDP customers」这个问题原本需要 11 次工具调用、8 个子 agent、近六分钟,workflow 存进记忆后,一个相关问题只要 2 次工具调用、1 个子 agent、41 秒。
  • 工程位置:Agent Memory 与 agent hosting、Databricks Sandbox、Unity Gateway、预置 MCP server、tracing 与 evaluation 并列在 Agent Bricks 里;同一篇提到 Genie 已经跑在同样的基础设施上。

行业影响

MemCurrent 值得数据基建从业者读,是因为它的形状和一套存储系统高度同构:append-only 的原始日志加后台合并出的派生视图,读路径分层(先看索引再取详情),合并过程负责去重、解决冲突、拆分过大的单元。差别在于「合并」这一步由模型而不是比较器来做,冲突消解的依据是语义而不是版本号。这意味着记忆库继承了数据库的所有老问题——什么时候合并、合并失败怎么回滚、谁能读到谁的记忆——却没有事务与约束可用。

把它放在 Lakebase 上也是一个明确的信号:Databricks 给自家的 serverless Postgres 找到了一个新负载,而记忆的持久性、可导出、可删除与按用户隔离,都直接落在数据库已有的能力上。对平台团队,值得留意的是官方把「记忆归谁管」写进了产品承诺——数据在自己的 Lakebase project 里,可以读、导出、删除,也能给 pipeline 下指令。这在自建方案里通常是最后才补上的一环。

相关链接


AWS Clean Rooms 把 Databricks 收为数据源:注册一个 Delta Sharing share,不再复制一份到 S3

事件概述

10 月 20 日 12:23 GMT,AWS 在 what’s new 上发布一项:AWS Clean Rooms 支持 Databricks 作为数据源。协作成员与其伙伴可以直接查询一张通过 Delta Sharing 共享出来的 Databricks 表,不需要搬动或暴露源数据。Databricks 与 AWS Glue、Snowflake、Amazon Athena 并列,成为 Clean Rooms 支持的数据源。

官方给的前后对比是:此前,数据在 Databricks 上的成员必须先把数据导出或复制到 Amazon S3,才能在协作里当成一张表来用,这既多出一条要维护的管道,也多出一份要治理的副本。现在只需提供 workspace URL、schema、table 以及一个 Delta Sharing share,就能把一张 Databricks 表直接注册进协作。官方举的例子是:一家把客户数据放在 Databricks 的零售商,可以与媒体伙伴在 Clean Rooms 里做投放度量,跑的是获准的分析,查询的是自己那份 Databricks 数据。

技术解析

  • 注册的四项输入:workspace URL、schema、table,以及一个 Delta Sharing share。缺的是传统意义上的「数据搬运」环节——没有导出作业,没有 S3 中转桶。
  • 查询面而非存储面:Clean Rooms 拿到的是一个可查询入口,源数据留在 Databricks 一侧。这与 Vol.98 报道的 UNREGISTER/REGISTER 是同一类交接——目录交出 metadata 指针、数据文件原地不动——只不过这里交出的是只读查询权,且附带 Clean Rooms 自身的分析约束。
  • 治理面的变化是这次的主要收益:少一份副本意味着少一处要单独做生命周期、访问审计与血缘的地方。对已经有多份导出副本在跑的组织,这一条比查询性能更有分量。
  • 边界:官方未在条目里给出此项的区域覆盖,只指向 AWS Clean Rooms 的 AWS Regions 表。

行业影响

开放表格式解决引擎可换,Delta Sharing 解决「不复制就能读」,Clean Rooms 解决「两家一起算但互看不到对方的原始行」。这三件事过去各自解决一段,中间的连接处靠导出作业补。这次把 Databricks 直接接进 Clean Rooms,等于把连接处又拆掉一段:跨组织协作的入口从「先复制一份」变成「注册一个 share」。

值得注意的是这条路径的对称性——Vol.98 里 Databricks 用判据和 REGISTER/UNREGISTER 论证「不复制就能搬走」,这里 AWS 用 Databricks 自己的开放协议把 Databricks 接进自家协作产品。开放格式与开放协议的收益不只属于提出方,也属于任何愿意实现它的一方。代价仍在治理侧:注册入口变简单了,对「谁注册了什么、跑过哪些分析」的记录要求反而更高。

相关链接


Prefect 3.9.0「Pendulum’s last swing」:Python 3.10 退场,3.15 进场

事件概述

10 月 21 日 03:27 UTC,Prefect 发布 3.9.0,副标题是「Pendulum’s last swing」。三条破坏性变更与一条新特性都落在同一个主题上——这个编排框架支持什么样的 Python:

  • 放弃 Python 3.10 支持(#23324)
  • 移除已弃用的 Runner 执行路径(#23496)
  • 在 Python 3.11–3.12 上弃用 Pendulum 的日期时间行为(#23328)
  • 新增 Python 3.15 支持(#23400)

也就是说,下限从 3.10 抬到 3.11,上限补到 3.15,中间那条长期存在的 Pendulum 日期时间行为在 3.11 与 3.12 上转入弃用。发布说明把 Pendulum 写进了版本号,说明这条依赖的退场在 Prefect 这边是被当作一件正式事情来办的。

技术解析

  • 版本边界两头一起移动:#23324 与 #23400 出现在同一次发布里,意味着 CI 矩阵、依赖解析与镜像都要跟着重排。对还在 3.10 上的部署,这不是警告而是阻断。
  • Runner 执行路径被移除:#23496 删掉此前已标记为弃用的路径。升级前需要确认现有 worker 与 deployment 没有走在这些分支上。
  • Pendulum 的退场按版本分步:#23328 只在 Python 3.11–3.12 上弃用 Pendulum 的日期时间行为,不是一次性移除。发布说明未在本条里给出替代写法,使用者需要自行确认受影响的调度与时区处理路径。
  • 运行时开销:#23473 降低投递事件与 API 日志所消耗的 CPU;#23412 为「空部署调度」加了可选的清理开关;#23426 让本版本能读取含它不认识的 action 类型的 automation,避免服务端升级后旧配置读不出来。
  • 可靠性修复:#23421 让取消与暂停的观察者能从 websocket 中断里恢复;#23341 跳过对已经占有限额槽的运行的重复 worker 提交;#23325 让 runner 的健康检查在 API 处于维护状态时仍报健康;#23397 修 retry_condition_fn 下被静默跳过的任务重试;#23404 修 visit_collection 在 id 复用后返回另一个对象缓存结果的问题。
  • 调度与部署细节:#23396 让 RRuleSchedule.from_rrule() 保留 pytz 时区名;#23374 在 git checkout 已存在时检出被 pin 的 commit_sha;#23381 修 prefect deploy 丢弃由 step 输出模板化出来的 list 项;#23440 让 prefect deployment delete --all 删掉每一个 deployment;#23435 让暂停被拒时异步 pause_flow_run 返回 run input。
  • 供应链与依赖:#23483 因 eMudhra CA 事件更新 certifi 与 uv;#23476 与 #23478 分别处理 FastAPI 新版本下请求体的 min_length / max_length 约束,并把 fastapi 限制在 0.151 以下。

行业影响

编排框架的版本边界是一条容易被忽略的成本线。Prefect 这次把下限抬到 3.11、上限补到 3.15,实际动作是把维护窗口明确成一段区间,而不是「尽量都支持」。对数据平台团队,直接的影响在镜像与 CI:还在 3.10 上的 flow 运行环境要在本版本前完成迁移,而想尝鲜 3.15 的环境终于有了官方支持。

把 CA 事件与 FastAPI 版本约束写进同一个发布说明,也是这几年的常态:编排层不再只关心「任务怎么跑」,它本身就是供应链上的一个节点,上游的一个证书吊销或一个 Web 框架的行为变更,都会在编排框架的补丁里出现一次。

相关链接


编者评

把这四条放在一起看,最清楚的一条线索是「拆开」。Lance 把一页数据拆成结构平面与值平面,让稀疏与稠密各走各的路;MemCurrent 把记忆拆成原始轨迹与蒸馏知识,让写入分成在线工具与离线两条;AWS 把跨组织协作拆成注册入口与数据本体;Prefect 把「支持哪些 Python」从一个模糊区间拆成明确的下限、上限与一条正在退场的依赖。四处动作都没有新增什么能力,它们做的是给原本黏在一起的东西划出缝,然后给每一半起名字——planar、RTE、episodic / derived、Delta Sharing share、3.11–3.15。名字本身成了这批进展里最值钱的部分,因为名字定下来之后,边界、文档与迁移路径才有地方挂。

代价也随之从「系统内部」移到「使用者手上」。Lance 的早期不稳定 2.3 文件没有兼容路径,LanceDB 的 REST 端点换名要求客户端与 sophon 侧同步发布,Agent Memory 让记忆库变成一项要治理的资产,Prefect 把 3.10 上的部署挡在门外。这几处都不是能靠配置绕过去的类型,它们都要求一次显式动作。

本期还有四条留在桌面上的观察。Google Cloud 在 10 月 20 日给 Spanner 的 GoogleSQL 与 PostgreSQL 两种方言都加上了近似聚合函数,用统计估计换大表上的计算速度与资源(GoogleSQL、PostgreSQL、HyperLogLog++、Sketches),同日的 Cloud SDK 590.0.0 里还有 Dataflow 的 gcloud dataflow config-store-settings 转 GA、Dataplex 修掉 dbt 资源名含点导致的导入失败。dbt Labs 在 10 月 20 日宣布 dbt State 有了永久免费档:自托管用户每月 1,000 DATT(Daily Active Target Tables,按被跳过或克隆的模型或测试每天计一次),平台用户到 2027 年 3 月前每月 2,000 DATT(博文)——dbt State 的机制本专栏在 Vol.83 与 Vol.87 已展开过,这次新增的是计费单位与免费额度。Ray 在 10 月 21 日同日打出 2.58.1 与 2.57.1 两个补丁,内容一致:修 Ray Data 在输入直传输出的块上注册越界回调导致的伪回调报错(#66369 及各自的 cherry-pick),以及在 base-extra 镜像里装上 google-cloud-cli。AWS 同日另有 DynamoDB global tables 支持解除副本关联——停掉某个副本的双向复制而不删表不删数据,账户也能带着自己的表退出多账户共享的全局表。

需要交代的是,中文源这一轮继续没有可用条目:阿里云国际站博客、阿里云开发者社区大数据页、火山引擎文档站与开发者社区四个入口均返回 200,但 10 月 20 日与 21 日的时间戳命中数为 0。开源侧 10 月 20 日至 21 日的窗口内,除 Lance 与 LanceDB 外只有 ClickHouse 的三个分支补丁(26.9.23.15 / 26.8.32.14-lts / 26.7.35.11,release body 为空)与 MatrixOne v4.1.6;Trino 仍停在 484、Doris 仍停在 4.1.5、Pinot 仍停在 1.6.0 RC0、Hudi 仍停在 1.1.2、Paimon 仍停在 2.1.0、Iceberg 仍停在 1.12.0、Delta Lake 仍停在 4.4.1,Flink 博客最新仍是 10 月 10 日的 CDC 3.7.0,dbt 博客除上面的免费档外最新仍是 10 月 9 日。