惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
H
Help Net Security
博客园 - Franky
博客园_首页
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - 聂微东
小众软件
小众软件
宝玉的分享
宝玉的分享
美团技术团队
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
S
Secure Thoughts
IT之家
IT之家
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
有赞技术团队
有赞技术团队
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
量子位
G
GRAHAM CLULEY
Attack and Defense Labs
Attack and Defense Labs
Jina AI
Jina AI
罗磊的独立博客
Security Archives - TechRepublic
Security Archives - TechRepublic
W
WeLiveSecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
L
Lohrmann on Cybersecurity
S
SegmentFault 最新的问题
J
Java Code Geeks
Last Week in AI
Last Week in AI
Cyberwarzone
Cyberwarzone
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
T
Tor Project blog
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Heimdal Security Blog

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
指标管理灵魂提问-原子指标要支持开窗函数吗?
与乐共行 · 2023-12-18 · via 人人都是产品经理

当你面对“原子指标需要支持开窗函数吗”这个问题时,你会如何回答?这篇文章里,作者结合案例和过往经验,对开窗、指标管理、原子指标等概念及相关问题做了解读,不妨来看一下。

开局一个灵魂提问:原子指标需要支持开窗函数吗?

假如,你服务的企业在做数仓重构,给你机会尝试One Data指标管理的落地。你还是参照竞品,设计了指标管理,能对指标进行各种计算逻辑的定义。 提问:原子指标的口径定义里,能不能也支持支持开窗函数

这个问题,你又怎么看?来,思考3秒,3…2…1,给出你的答案。你是不是又开始想,「什么是原子指标」这个问题了?如果对技术不熟悉,可能还会问,什么是开窗函数?接下来的内容,将会围绕这主题展开。

  1. 问题起源什么是开窗?
  2. 为什么要开窗?
  3. 回看:到底要不要支持开窗
  4. 问题的本质:理解指标、表、以及指标和表的关系

本文将会结合生动的案例和深入的自我思考,带你从一个小问题深入理解指标管理,希望你能看到最后~

一、问题起源

当时公司在做数仓重构,正好给我机会机尝试One Data的落地。但我也没经验,于是参考了很多资料和竞品,然后对照着竞品照猫画虎弄了指标管理的设计,就像华为 DataArtsStudio 的指标管理这样:

数仓开发同事看了这个原子指标管理的界面,然后问了上文提到的问题:原子指标能不能支持开窗函数。我反问了下,为啥要支持开窗?同事当时说的原话我不太记得了,大概说的是:某些指标是要开窗统计排名。比如(假设),教育场景里,某个报表里有这两个指标。

销售金额TOP1课程,很像是用来修饰指标的前缀(修饰词),但又是基于对指标的排序而来的。

已知,原子指标要定义指标取数的逻辑,开窗函数是一种计算方式,那么,原子指标的定义里面,是否要囊括对开窗函数的定义呢?我转身看竞品(DataArts Studio_新建原子指标)找答案,但是竞品没支持。

不仅仅华为不支持,其他好几个大厂竞品都没涉及到这点。完蛋,我好像进入一个没人涉足的无人区了,咋搞?当然,我可以很简单做个决策:相信大厂,照抄。并且以此说服同事,我可以说,大厂的好多的竞品没做,肯定是有道理。但是到底为什么竞品不支持开窗呢?我始终不明白。

我了解了实际情况,管理、推荐的场景里,确实有些指标是排名性质的,看似这个诉求也合理。而且,排名方面,还可以继续演化,以直播场景为例。比如按照多个指标排名后,最终分出来主播的级别,然后日常要看S、A、B级主播带货金额占总体GMV的比例。

在企业里,你可能会看到两种状态的表格,描述的业务结果是一样的,但是表头、行数、列数有一些差异(差异就在于,修饰词是否单独列出来作为维度,以后有机会再讲)到底要不要支持呢?要不要探究下呢?理解开窗,才能知道到底要不要。

二、什么是开窗,为什么要开窗?

我们人眼所看到的内容,都是光照到物体上的反射,打开窗户,外面的光才能照进来。

开窗的大小,决定了进入到窗内的光的多少,也影响了窗内人获取信息的量。

人所看到的内容,取决于看的视角,从不同的角度看,信息也不同。

还记得小学课文里的杨桃吗?有的角度看杨桃,像个五角星。再比如,苏轼在《题西林壁》中写道:横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中”。

假如,我们待在一个房间内,我们认为窗是相对静止的。调整我们的视角,能看到不同的内容,可以理解为从不同的角度(维度)去分析事物。除此以外,也有移动的窗。

就如图片所示,当我们坐在火车上,视角固定,窗户常开,虽然你人不动,但是你会看到不断变化的内容,不同物体的光会透过窗户(信息)不断映入你的眼睛。有了这个基础,我们再去理解数据世界的开窗函数。

开窗函数是一种在数据库查询中使用的强大工具,它能够在一个数据集上进行复杂的序列比较和计算。

在SQL中,开窗函数可以用于各种计算,包括聚合运算、排名、移动平均等,而不改变返回行的数量。以下是一个简单的例子:假设我们有一张名为sales的表格,其中包含了每天的销售数据,该表具有以下结构:

  • sale_date:销售日期
  • amount:当日销售金额

如果我们想计算过去7天的滚动平均销售额,则可以用如下SQL查询:

SELECT sale_date, amount, AVG(amount) OVER (ORDER BY sale_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS rolling_avg_sales FROM sales;

这个查询中的关键部分是开窗函数AVG(amount) OVER (…):

  • OVER子句定义了窗口的规则。
  • ORDER BY sale_date表示窗口以sale_date进行排序。
  • ROWS BETWEEN 6 PRECEDING AND CURRENT ROW指定了窗口的范围是当前行以及之前的6行,总共覆盖了7天的数据。

执行这个查询后,每一行都会新增一个rolling_avg_sales字段,表示从当前行开始往前数7天内(包括当前行)的平均销售额。备注:

不同的SQL数据库管理系统在处理边界情况(例如,当没有足够的数据计算七天平均时)的默认行为可能略有不同。

然后,我们结合案例来看看开窗函数定义的指标。

假如,我们是一家网店的店主,本月新上了一个品类,然后系统记录了该品类1-20号的当天销售金额,也统计了环比昨天的指标。如下左边。我们也基于这两个指标制作对应的业绩变化图。

而当我们感受到2次比较大的业绩下滑,在第3次业绩下滑的时候,要不要进行调整销售策略呢?调整的依据是什么呢?尤其14号的业绩刚刚有突破,而15号又猛烈下滑。

这个时候,我们就可以用开窗函数来看平均的销售情况,而不是被某一天或两天的异常高低销售额所影响,我们可以使用7天滚动平均销售金额这个指标(如下图)

结合7天滚动平均销售金额来看,虽然业绩有起伏波动,尤其是红色框中的部分,滚动平均销售金额的波动并没有那么大,且在小幅下降后便逐步上升如果在原子指标定义中需要考虑时间序列分析、累积计算或者比较不同时期的数据,那么开窗函数就非常有必要。

当然,在真实的应用场景中,我们还需要考虑到特殊情况,比如业务调整、节假日或者其他非营业日没有销售数据的情况。

三、回看,到底要不要支持开窗?

开窗有意义吗?有。那系统层面能支持开窗吗?能。要支持开窗吗?等等,再想想,其实还有一个问题。

为什么看到很多竞品系统,在定义原子指标计算逻辑时,都要求先指定对应的来源表呢?而且一般都是事实表,这当中有什么关系吗?

正好,在上篇文章里讲到过这个问题:数仓分层后,原子指标如何指定来源事实表。

当中说道:我们的目标重点是保持清晰的指标定义和一致的取数口径,即使在不同的聚合层级之间,销售金额指标的计算规则也应该是一致的。

等等,如果有两个表,一个原始表,一个开窗的结果表,那是不是可以基于开窗处理后的结果表来定义指标呢?嗯,把这种开窗的计算逻辑前置到表的ETL脚本里去,原子指标这层,屏蔽掉这个逻辑。

我们再看看开窗函数,到底是在做什么操作?

在上面的案例里,你也看到了,在某些日期内做开窗计算,是没有结果的。

当数据缺漏时,就像开的窗户对着一块黑洞。

因为窗户设定的范围很大,但是数据的范围没那么大(就好像,开的窗户里有一部分对着黑洞,光压根从黑洞里跑不出来,那肯定看不到。

而且,案例中开窗是要按照设定的窗口范围取一些历史数据计算的,无意间就利用时间修饰了指标。时间是什么?可以理解是维度,比如日期,也可以理解是时间周期,近1天、近7天。

其实环比昨日也涉及到了时间周期。还记得之前文章指标管理必知的真相:订单事实表里没有原子指标引用的公式吗?派生指标 = 原子指标 + 时间周期 + 修饰词

再问问自己:开窗函数定义的指标是原子指标吗?诶,好像不是。

这时候,我们再回看定义,在指标管理中,原子指标通常指的是最基本、不可再分的数据点,这些数据点用来构建更复杂的计算指标或衍生指标。

例如,日销售额、用户访问量等都可以被看作是原子指标。开窗的指标,相当于是借用有时间含义的指标进行了口径定义,且只能是在时间往前推移的情况下(也就是有了时间周期的情况下),才能有正确的计算结果。

故而,开窗函数修饰的指标,不是原子指标。原子指标,不应该支持开窗函数。

四、问题的本质:理解指标、表、以及指标和表的关系

1)深入理解不可再分

“不可再分”的原子指标,指的是在特定的业务情境下,该指标已经是最简单、最基础的数据度量,无法被进一步分解为更小的单位或子指标。窗口这个词,其实不能完全表达含义,时间列车在滚滚向前,我们哪怕只从固定的视角看数据,但是这个数据也一直在变化。

例如,在销售分析中,“日销售金额”可以看作是一个原子指标。它由当天所有销售交易的金额总和组成,自身并不会进一步分解为更细的指标。当然,“日销售金额”可能来源于多个“单笔交易金额”,但在日销售额这个层面上,我们通常把它视为一个整体,作为分析的基点。

2)深入理解粒度

分析的基点,这就是为什么数据仓库在选定业务过程后,接下来就是声明粒度的原因。可以回看这篇文章:数仓避坑-整明白懂粒度如果一个公司想要分析产品销售数据,那么“单个产品的销售数量”也可以被认为是一个原子指标,因为它代表了最基本的销售单位计数,不涉及到更深层次的拆分。

这样的原子指标有助于建立一个清晰、简洁的数据体系,它们是构建复杂报告、仪表板和高级分析(如预测模型)所依赖的基石。通过对多个原子指标进行组合和运算,可以创建复杂的衍生指标,如销售增长率、用户留存率等。

3)脱离具体的表谈论指标,是没有意义的

指标是为了衡量、跟踪或比较特定现象或结果而设定的具体数值或标准。离开具体的表定义指标和取数口径,一个指标可能就会失去其原有的明确含义和测量价值。

如果没有了明确的定义和取数口径,就很难保证数据的一致性和准确性,进而影响数据分析和决策的有效性。

4)指标定义的问题,可以通过增加分层表来解决

当我们要依赖其他指标进行计算,我们可以先定义好事实表,加工好对应的指标,然后从定义好的事实表里面取值。

这样也有个好处:利用表对指标的依赖逻辑进行一个解耦。不至于让指标的计算口径定义太过于复杂,比如,我们看某个指标,能知道这个指标是从某个表的某个字段基于什么方式进行计算,就可以了。至于说,依赖的表是怎么加工出来,数据是否准确,那是上一层定义的事情了。

5)表分层之后数据的一致性问题,需要质量监测来解决

紧接问题4,开窗是要开的,我们在指标所依赖的表的ETL里定义好,算好即可。如果粒度有很多,最粗粒度的指标肯定是有多种方式来汇聚出来的。比如,年度收入,可以从小时收入、天收入、周收入、月收入汇总出来。

以终为始来看,咱也不管是咋汇聚的了,咱就只要求:最终出来的结果是对的,多种方式产出的结果是一致的(都对!)。这,就是数据质量里的准确性、一致性

以上,感谢阅读~

专栏作家

Lee,公众号:数据产品小lee,人人都是产品经理专栏作家。关注直播、短视频和文娱领域、擅长数据架构、CDP及数据治理相关工作。

本文原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。