派生属性(Derived Properties)入门
有些值不必手动维护——比如"这个客户名下有多少笔订单"。派生属性让你在运行时自动算出来。这一篇讲清它是什么、能算什么、为什么安全,并用一个实验室让你亲手感受它的价值。
https://www.palantir.com/docs/foundry/ontology/derived-properties/
原始标题:Derived properties
一句话速览
派生属性(Derived Properties)入门:有些值不必手动维护——比如"这个客户名下有多少笔订单"。派生属性让你在运行时自动算出来。这一篇讲清它是什么、能算什么、为什么安全,并用一个实验室让你亲手感受它的价值。
什么是派生属性:运行时现算的值
它不存数据,而是"根据别的东西算出来"。
派生属性(derived property)是在运行时(runtime)根据其他属性或链接(links)计算出来的属性。它不单独存储,而是在被需要时现算——比如"聚合某个链接对象上的属性",或"从被链接的对象上挑选一个属性值"。
和"存储属性"的区别:少了一样东西
普通属性要靠人/动作去填;派生属性自己会算。
简言之:存储属性是"记账本上写死的数字",派生属性是"每次打开都重新数一遍的结果"。
它能算什么:查表与聚合
根据链接是一对一还是一对多,玩法不同。
派生属性的核心,是"顺着链接去算"。链接的形态决定了能做什么:
安全特性:不会"算"出越权数据
它沿用参与计算的所有对象的安全策略。
派生属性在计算时,会沿用参与计算的所有对象的安全策略(security)。换句话说,如果一个用户本来看不到某个链接对象,那么在派生属性里也不会因为"聚合/查表"而意外看到它。
实验室:手动计数器 vs 派生属性
亲手点几下,感受"自动"和"手动"的差距。
先点几次"新增订单":左边手动计数器不会自己变,右边派生属性立刻跟上。记得再点"同步"让手动值对齐。
在哪用、有哪些限制
知道边界,才不会在错误的地方依赖它。
在哪用:在 Ontology Manager 中为一个对象类型配置派生属性(选择基于哪个链接、做查表还是聚合);在代码侧,TypeScript OSDK 通过 withProperties 操作使用它(需 @osdk/client 的 2.2.0-beta.x 及以上版本),用于返回或在后续过滤、聚合、排序中使用。
当前已知限制(Beta):文档列出了这些边界——
- OSv1:含派生属性的查询不能包含仍用 OSv1 索引的对象类型。
- 文本搜索:派生属性不能用于文本搜索或关键词过滤。
- Structs:在 TypeScript OSDK 中,含派生属性的查询暂不能包含 struct 类型属性(可用
$select排除)。 - Marketplace:使用派生属性的函数暂不支持 Marketplace。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「派生属性(Derived Properties)入门」,读者最常问的几个问题。