盘点Salesforce Big Object
【背景介绍】:为了拓展sf标准字段历史跟踪18个月的保质期(从标准页面访问),和超期后额外6个月的API/Data Loader访问的限制(共计2年),同时为扩展标准Tracking20个字段的限制以及满足客户对部分长文本值变更监控的需求,在节省费用的前提下,选用了使用Big Object来存储Change Logs。
【影响决策的关键Points】:幕布笔记
1. 每个对象多存10亿条数据;
Big objects provide consistent performance for a billion records or more, and are accessible with a standard set of APIs to your org or external system.
2. 每个对象必须有一个加索引的字段,且必填;
3. 一个对象多加5个索引,字段值的长度不能超过100个字符;
4. 一旦加索引,SOQL的WHERE语句不能加非索引字段为过滤条件,同时必须要个遵从索引顺序做过滤,且不能隔行;
如:索引字段为f1__c, f2__c, f3__c,如果要加2个条件,不能是f1__c + f3__c的组合,也不能是f2__c + f3__c的组合,只能为f1__c + f2__c组合,称为No Gap.
5. 索引字段一旦加了排序,如ASC/DESC,SOQL的排序中不能更改;
6. 自身对象不能加Tirgger,其他对象的Trigger中新建该对象记录需使用异步方法;
7、如果所有索引字段值拼起来的字符串相同,insert操作会视为update;
如:22条数据在使用Salesforce Inspector做导入操作时,终保留20条,稍后的记录会覆盖前面的记录。
系统性知识要点,请参看幕布笔记,部分预览如下:
【常见问题及核心解决要点】:
01. 如何部署Big Object,步骤及成功关键因素?
我们可以通过Setup页面去创建Big Object,并为字段加索引,一旦创建完你会意识到2点问题:
其一,如何将状态变为Deployed,而不是In Development;
Change_Logs_Listing_BigObject.permissionset -> 设置字段的读写权限
注意:权限设置要剔除索引字段(索引字段必填,必填字段默认读写都勾上)。
c. 为需要访问权限的用户添加Permission Set;
Tip:如果为了避免后续添加新用户忘记加permission set,可以去对象上为profile增加FLS.
2. 如何批量删数据 —— 如何巧妙的入坑进一步探索Big Object的奥秘?
这里有些小伙伴在小试牛刀的时候会一步定乾坤,还有些像我这样的,习惯性入坑选手就得好好折腾一番了。
不妨先抛个结论:如果Index里面存在DESC,那么使用Database.deleteImmediate批量删除数据时,只能加LIMIT 1来挨个挨个删;否则,如果都为ASC,想咋删就咋删!!!
在探索这个潜在问题时,不妨穷尽如下可能性:
a. 当索引都是asc;
b. 当索引都是desc;
c. 当索引包含desc这种mix类型;
目标:探索批删数据表现
step1: 新建如下3中Big Object对象,且字段都为加索引的f1__c / f2__c;
————————————————
版权声明:本文为CSDN博主「sf_wilson」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/itsme_web/article/details/90413270
原文链接:https://blog.csdn.net/itsme_web/article/details/90413270
相关文章