BigQuery 把分析方法拆成六个可串联的 SQL 函数;Flink Operator 把扩缩容决策拆成三个插件点;Glue 用一根资源链接把 Redshift 接到 Unity Catalog;Redis 8.10 让结构相同的哈希共用一份字段名
本期聚焦四条跨 9 月 14 至 15 日的进展:BigQuery 把变点检测、归因与因果推断封装成可组合的表值函数,Flink Kubernetes Operator 把自动扩缩容的三个决策环节开放为可插拔 SPI,AWS Glue 用资源链接把 Redshift 的查询接到 Databricks 管理的 Iceberg 数据上,Redis 8.10 用哈希模板把逐条重复的字段名改成共享引用。
这四件事落在分析层、编排层、元数据层与存储编码层,互不相干,动作却是同一个:把一件原本藏在系统内部、只能整体携带或整体重复的东西,拎出来做成一个可以单独命名、单独调用、单独授权的对象。BigQuery 把一次洞察背后的三步推理拆成六个表值函数,每一步的输出都能直接喂给下一步。Flink Kubernetes Operator 把自动扩缩容的评估、执行与对齐三段拆成三个插件接口,并顺手改了默认策略——宁可扩,不再因为对齐不上而否决。AWS 给「数据在别人家目录里」这件事造了一个一等对象:Glue 默认目录中的资源链接,它不复制数据也不复制元数据,只把 Redshift 的查询指过去,权限得分两段授予。Redis 8.10 则把哈希里逐条重复的字段名集合提出来,做成一份共享模板,正文不动,字段名只存一次。拎出来之后,每一处都留了新的东西要管:函数之间要自己拼参数,插件接口要自己兜住否决逻辑,资源链接上和目标表上要各授一次权,模板也变成了一个有生命周期的连接级状态。
BigQuery 增强分析表值函数:把「为什么变了」拆成六个可串联的函数
事件概述
Google Cloud 于 9 月 15 日宣布,BigQuery 新增一组增强分析表值函数(TVF),覆盖六类分析动作:定位指标何时发生结构性变化、找出变化由哪些维度驱动、估计某个动作的真实因果贡献,以及相关性、趋势与周期性三项常规统计。作者是 Google 的软件工程师 Jenny Ortiz 与 Haoming Chen。
此前要回答「上季度收入为什么涨了」,常见做法是分析师自己写查询、导出到外部工具做统计、再把结论贴回报表。这套流程里,每一步的中间产物都无法被下一个问题直接引用,也没法被 agent 调用。新函数把每一步都做成一个返回结构化结果集的 SQL 函数,运行在数据所在的位置,不必把数据搬出 BigQuery。
技术解析
- 六个函数各管一类问题:
AI.KEY_DRIVERS找出两个时间段或两组之间指标涨落的主要驱动维度;AI.CAUSAL_EFFECT用反事实基线估计某个动作或事件的实际贡献;ML.CORRELATION评估两个数值指标的关系方向与强度;ML.DETECT_CHANGE_POINTS识别指标发生结构性偏移的日期或区间;ML.TREND把长期走势与短期波动分开;ML.SEASONALITY发现按小时、日、周、月或季度重复出现的周期。 - 输出结构化,因而可串联:官方用
bigquery-public-data.austin_bikeshare.bikeshare_trips演示了三步链。第一步ML.DETECT_CHANGE_POINTS(data_col => 'total_trips'、timestamp_col => 'trip_day')跑出若干断点,其中 2018 年 2 月那次与奥斯汀市议会通过「无桩出行试点计划」的时间吻合;该函数官方称可扩展到数百万条独立时间序列。 - 断点直接当下一步的参数:第二步
AI.KEY_DRIVERS把 2018-02-11 作为切分点,取前后各约 30 天窗口,top_k => 10,在start_station_name、end_station_name、subscriber_type、bike_type四个维度上归因,得出总行程数 +374.7%(+40,159 次),其中 UT 学生会员 +7,167.1%、终点为 21st & Speedway @PCL 站点的行程 +20,739.1%。 - 因果一步建反事实:第三步
AI.CAUSAL_EFFECT以 2017-08-11 至 2018-04-11 作为干预前基线,注入intervention_timestamp => '2018-02-11 00:00:00',用 ARIMA_PLUS 构造反事实,给出 +358% 的增量、约 89,775 次增量行程,并标注 99.9% 的因果效应概率。output_time_series => FALSE时只返回汇总。 - 接进会话式分析:六个函数已接入 Conversational Analytics,官方给的示例中,一句自然语言提问被拆成
ML.CORRELATION加AI.KEY_DRIVERS两步执行;对应的技能已放到 Google 的 skills 仓库。
行业影响
把分析方法函数化,改变的是分析能力的复用粒度。过去一套归因逻辑写在某个 notebook 或某个外部工具里,换个问题就得重写一遍;现在它是一条 SQL,能进版本库、能被调度、能被 agent 当作一个技能调用。输出结构化这一点的分量不比函数本身小——只有结果是表,一步的输出才能机械地变成下一步的输入,多步调查才有自动编排的可能。
对数据平台方而言,这也是一次边界的重新划分:统计与因果推断过去属于 BI 工具和数据科学环境的地盘,如今被做成了数仓内置函数。BI 层要证明的不再是「能不能算」,而是「算完之后怎么解释」。需要注意的是,驱动归因与因果估计给出的是带概率的结论,README 式的数字很容易被当成确定事实引用,如何把不确定性一路带到报表上,仍是没解决的问题。
相关链接
- Agent-ready analytics: Unlocking insights with BigQuery augmented analytics(Google Cloud Blog, 2026-09-15)
- AI.KEY_DRIVERS 语法参考
Conversational Analytics 对 BigQuery AI/ML 的支持见官方文档,配套技能放在Google Skills 仓库。
Flink Kubernetes Operator 1.16.0:自动扩缩容的三个决策环节开放成插件
事件概述
Apache Flink 社区于 9 月 15 日发布 Flink Kubernetes Operator 1.16.0,公告作者为 Dennis-Mircea Ciupitu。这个版本的主线是可扩展性:autoscaler 新增三个可插拔 SPI,并行度对齐的默认策略被换掉,TaskManager 与 JobManager 的 Pod 资源改为使用 Kubernetes 原生 ResourceRequirements 表达,并带了一批 Blue/Green、savepoint 与输入校验方面的修复。
Operator 兼容 Flink 2.3.x、2.2.x、2.1.x、2.0.x、1.20.x 与 1.19.x。文档站点同期做了重构,新增 Internals 部分,把 controller flow、autoscaler、admission webhook 与 operator 启动过程写了出来。
技术解析
- 三个 SPI 各插一个环节(均按命名实例配置,各自拿到剥离前缀后的独立配置):FLIP-514 的 Custom Evaluator 允许在决策前注入自定义的扩缩容指标评估逻辑;FLIP-575 的 Scaling Executor 挂在决策被执行的节点上,插件可以否决、把关或调整一次拟议的 rescale;FLIP-586 把并行度对齐策略本身做成可插拔,自定义模式与内置模式一起被发现。
- 默认值从「否决」改为「执行」:新配置
job.autoscaler.scaling.parallelism-alignment.mode默认为BALANCED,取代旧键job.autoscaler.scaling.key-group.partitions.adjust.mode(旧默认EVENLY_SPREAD,已弃用但仍受支持)。旧默认在找不到能保持扩缩容方向的对齐并行度时,会维持当前并行度并发ScalingLimited事件;新默认回退到计算出的目标值,决策会被应用而不是被否决。 - 对齐目标也从精确除数改为够用即可:
EVENLY_SPREAD对齐到 key group 或分区数的精确除数,BALANCED取第一个能降低每 subtask 负载的并行度。官方给的例子是 128 个 key groups、计算目标 24:旧默认落到 32,新默认落到 26,后者容忍轻微倾斜以避免过度配置。OFF可完全关闭对齐。 - 配置挂载收敛到
config.yaml(FLINK-39791):此前 Helm chart 会渲染出config.yaml与flink-conf.yaml两份文件,而 Flink 的GlobalConfiguration优先读后者,导致values.yaml里defaultConfiguration.config.yaml的内容被静默忽略。现在一律以config.yaml挂载;用kubectl edit或kubectl patch改动态配置也必须写在这个 key 下。 - 读回运行中作业的真实配置:Operator 通过 JobManager configuration、job execution 与 checkpoint config 的 REST 端点取回有效配置,叠在由 spec 推导出的观察配置之上——作业的 main 方法可以以编程方式改配置且优先于 Operator 提交的,spec 只是请求而非最终记录。每个 job id 取一次并按资源缓存,全局终止状态的作业跳过。
- 输入侧加固:
FlinkSessionJob的jarURI按 scheme 白名单校验,默认只允许https(配置键kubernetes.operator.user.artifacts.allowed-schemes),解析到内部地址的 host 会被拒绝;artifact 下载加了连接超时、总时间预算与体积上限;autoscaler state 解压缩有大小上限;memory tuning 只应用自己写入的 override 键;Kafka 与 Pulsar 的分区指标名不再用正则解析。 - 其他修复:Blue/Green 在前一个 deployment 删除后立即完成转换;suspended 作业可从 savepoint 重新部署;
FlinkStateSnapshot遵循所引用FlinkSessionJob的state.savepoints.dir,其backoffLimit=-1现在真的表示无限重试;source vertex 不再被扩到超过分区数。
行业影响
Operator 把扩缩容从一个闭环策略改成一条可装配的流水线,意味着「什么时候扩、扩到多少」这类判断权被部分移交给了使用方。有明确成本或合规约束的组织可以在执行环节插一道否决,把组织策略写进代码而不是写在值班手册里。
默认值的改动更值得注意。从 EVENLY_SPREAD 到 BALANCED,本质上是把「对齐不完美时该怎么办」的取向从保守翻成了务实:少几个 slot 的倾斜可以忍,因对齐不上而完全不扩容不能忍。升级时这条会静默改变线上行为,正在用默认配置的集群应当先评估再升。
相关链接
- Apache Flink Kubernetes Operator 1.16.0 Release Announcement(2026-09-15)
- Flink Kubernetes Operator 1.16 文档
AWS Glue 目录联邦接进 Unity Catalog:用一个不复制元数据的资源链接给 Redshift 开查询通道
事件概述
AWS Big Data Blog 于 9 月 15 日刊出联合航空(United Airlines)的实践,讲 Redshift Serverless 如何经 AWS Glue Data Catalog 联邦查询由 Databricks Unity Catalog 管理、存放在 S3 上的 Iceberg 数据。文章由 Vaibhaw Agrawal、Ankit Aggarwal 与 Raja Kalluri 联合撰写。
联合航空每天处理数十亿事件,数据按 bronze-silver-gold 的 medallion 架构落在 S3 上,整体 PB 级,其中用户交互层是数十 TB 的近实时数据。这批 gold 表编目在 Unity Catalog 里,不在 Glue 中,Redshift 原本看不见,过去的办法是复制进 Redshift Managed Storage 并维护同步管道。
技术解析
- 四层联邦链:Unity Catalog 通过 Iceberg REST API 暴露表(Delta 表需开启 UniForm 才能呈现为 Iceberg 兼容元数据)→ Glue 中的联邦目录(示例名
databricks-federated-catalog)→ 默认 Glue 目录中的资源链接数据库(示例名databricks_federated_db_link,TargetDatabase指向联邦目录里的databricks_federated_db)→ Redshift Serverless 外部 schema。联邦只发生在元数据层。 - 资源链接是这次的关键补丁:Redshift 的
CREATE EXTERNAL SCHEMA只能对默认 Glue 目录解析,不能直接指向非默认的联邦目录。资源链接补上了这一段,它位于默认目录,CATALOG_ARN也就用不上,由 Lake Formation 在查询时解析。它不复制数据也不复制元数据,只是一个指针。 - 权限必须分两段授予:资源链接上只支持
DESCRIBE与DROP,真正的SELECT要授在联邦目录里的目标表上,这是 Lake Formation 的 grant-on-target 模式。官方点明了一个常见错误:只在资源链接上授SELECT无效,查询会失败。 - 六步查询流:分析师提交 SQL → Redshift 经资源链接到联邦目录解析外部 schema → 联邦目录调用 Unity Catalog 的 Iceberg REST API 取当前表元数据 → Redshift 命名空间 IAM 角色调用 Lake Formation
GetDataAccess→ Lake Formation 评估细粒度策略并签发限定范围的临时 S3 凭证 → Redshift 直接读 S3 上的 Iceberg 文件。 - 落地规模与收益:生产环境已联邦 30 张表,另有 70 张在上线,未来几个月计划扩展到数百张;第一阶段约 100 名分析师拿到了访问权,且没有新增任何管道。官方给出的成本项是每月减少约 $30K 的冗余 ETL 基础设施开销。Redshift Serverless 采用与 RG 实例族相同的 Graviton 查询引擎,官方称数据湖查询性能最高为前几代的 2 倍。
- 容灾一并简化:此前跨区域 DR 依赖 Redshift 快照,RPO 为 3 小时或更长;改为利用 Delta Lake 上的 S3 跨区域复制后,DR 区域新建的 Redshift Serverless 工作组可以联邦到同一份 S3 数据,获得接近连续的 RPO。
- 配套约定:所有联邦 schema 用
{domain}_iceberg命名,显式提示数据不是 Redshift 原生存储;源表需保持良好分区并定期压缩,因为联邦查询的性能取决于写入时的数据组织。
行业影响
这条路径把跨平台的目录打通从「复制一份」改成了「指过去」。对 Databricks 与 Redshift 长期并用的组织来说,代价从存储与管道的重复,降到几个元数据对象和两处授权——文中 30 张表、100 名分析师、零新增管道的规模,说明这条路在当前形态下已经能承载生产查询。
更值得注意的是它把「数据不在本地」变成了一个显式的一等对象,连权限都被迫显式拆成两段。这比透明代理要笨一点,但也更难出错:谁在哪个目录上授了什么权,是可以逐条审计的。剩下的约束在源端——Delta 表必须开 UniForm,分区与压缩质量直接决定查询延迟,联邦并没有把数据工程的问题一并消掉。
相关链接
Redis 8.10:哈希模板让结构相同的键共用一份字段名
事件概述
Redis 于 9 月 14 日发布 Redis 8.10(Redis Open Source 正式可用),公告作者为 Bosmat Tuvel 与 Lior Kogan,墨天轮中文日报在次日跟进。这个版本的核心是 compact hash:把哈希里逐条重复的字段名集合提取成一份共享模板,配合新的 HIMPORT 命令做批量写入;同期还有增量备份与恢复、JSONPath 语法扩展、Stream 读取量控制、集合基数命令与 TimeSeries 增强。
典型场景是海量结构相同的哈希——数以百万计的用户画像,每条都带 name、email、country、last_login 四个字段名。传统编码下,这四个字段名在每个键里各存一份。
技术解析
- 哈希模板:新的内部编码允许共享同一套字段名的哈希只保留一份字段名副本,取值各自独立,官方称内存占用最多降低 50%。现有哈希命令语义不变,也可以选择让符合条件的哈希自动转为模板编码,不必改应用。
HIMPORT配套批量写入:客户端先用HIMPORT PREPARE声明一次字段集合,之后HIMPORT SET只传值、按位置对齐字段名。字段名不再逐条传输与解析,官方称哈希加载吞吐最高提升到 2 倍。宽表新哈希上的HSET/HMSET吞吐最高提升 104%。- Stream 侧:
XREADGROUP吞吐最高提升 28%(COUNT 100),深流(deep stream)的内存占用最多降低 26%。XREAD/XREADGROUP新增MAXCOUNT与MAXSIZE,分别限制跨所有 Stream 的返回总条数与总字节数——原有COUNT只对每个 Stream 单独生效,多流读取时总响应仍可能失控。 - 增量备份与恢复:新增
BACKUP命令族。备份以一个时间点 RDB 快照(BASE)开始,随后把增量写入记到 INCR AOF 文件中,各分片的快照可以错峰创建而仍构成一次协同备份;封存时不需要再 fork 一次,建快照时间错开的分片也能一起收尾。恢复侧用新的preload-file启动参数加载封存后的备份清单或独立 RDB 文件。 - 其余能力:JSONPath 支持算术与比较运算符、
in/nin、字符串与数组函数、以及min()/max()/avg()/sum()/stddev()等聚合;新增SUNIONCARD与SDIFFCARD(SUNIONCARD可用APPROX走 HyperLogLog 估算,标准误差 0.81%);LMOVEM/BLMOVEM支持原子搬移多个元素,COUNT与EXACTLY、OBO与BULK可选;TS.NRANGE/TS.NREVRANGE按时间戳而非按序列分组返回,TS.READ支持阻塞等待新样本,TS.MRANGE增加EXCLUDEEMPTY。
行业影响
哈希模板是那种不引入新接口、只改内部编码的收益:应用不用改一行代码,内存账单直接下来。对把 Redis 当特征存储或会话存储用的团队,这类负载的字段名重复率极高,50% 的内存降幅在大规模部署上是实打实的成本项,内存单价往上走时这笔账更显眼。
把字段名集合提出来做成可命名对象之后,也带来了新的状态要管:模板本身成了需要观察和维护的东西(官方提供了相应的 INFO 与 MEMORY USAGE 观测口径),批量导入路径也从无状态变成了先声明后使用。这是一贯的取舍——共享带来节省,共享出来的那个对象则变成新的运维实体。
相关链接
- Announcing Redis 8.10: Compact Hash, JSONPath extensions, performance improvements, & more(Redis Blog, 2026-09-14)
- 墨天轮:数据库日报-9月15日,Redis 8.10 发布(中文)
编者评
四条进展指向同一个动作:把重复、隐式或只能整体对待的东西,提成一个可命名、可单独操作的实体。BigQuery 提取的是分析动作,一次「为什么」被拆成变点、驱动、因果三段,每段都能单独调用;Flink Operator 提取的是扩缩容决策环节,评估、执行、对齐各自成为一个插件接口;AWS 提取的是数据位置,一个不复制元数据的资源链接把「数据在别处」变成了目录里的一等对象;Redis 提取的是字段名集合,让结构相同的键从各存一份改成共享一份。
有意思的是代价的位置。每一处提取都把一部分原本由系统兜住的东西交回给使用者:函数之间要自己拼参数,插件要自己实现否决与兜底,权限要在链接上和目标表上各授一次,模板要自己观察和维护。抽象层每抬高一格,使用者就多一格要自己负责的地方——这四份发布说明都不约而同地在「现在你可以自己控制」后面跟了一段「以及你需要注意」。
关于本期来源:中文源这条线本期只捞到一条。阿里云与火山引擎在 9 月 15 至 16 日没有可核验的产品级发布;外滩大会上的 OceanBase 表述(Agent 正在成为新的数据用户、某银行引入语义层后智能问数准确率从 70% 升至 98%)属于会议观点而非产品变更;Singdata 的多云湖仓发布(9 月 15 日,覆盖八大云平台与三种 CPU 架构)是新闻稿,没有可核验的技术细节;KeewanoDB 的 GA 与 1200 万美元种子轮(9 月 15 日)技术信息同样不足。按「优先技术内容」的口径,这几条都没有提升为主题,Redis 8.10 是这批线索里唯一有一手英文发布说明、且被中文日报跟进的条目。