将 200 万条记录插入 salesforce 中的 Account 对象的最佳方法是什么
我们使用Apex Data Loader来插入/删除记录,但是当数据量很大时,它需要更多的时间。
您能否告诉我们任何替代方法来实现这一目标。
We have used Apex Data Loader to insert/delete records, but it is taking more time when the huge data.
Could you please let us any alternative ways to achieve this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
Oo萌小芽oO2024-11-08 16:59:34
如果您想自己执行此操作,请使用 BulkAPI 或管理设置数据导入(设置|管理设置|数据导入|导入企业帐户)。请记住,BulkAPI 每批的限制为 10,000 行,管理导入的每次上传的限制为 50,000 行,因此您必须对数据进行切片。
或者,较新版本的 Data Loader 外部应用程序支持新的 BulkAPI,并且可以为您切片,您可以从“设置”菜单的“管理设置|数据管理”下下载 Data Loader。从那里运行导入并让应用程序将数据分成批次。
如果导入速度太慢,您可以尝试暂时暂停触发器、非必要的工作流程和帐户验证。除此之外,您无能为力,请记住,salesforce 数据库不是一个直接的数据库,它是一个抽象层,必须在数据保留在实际数据库上之前仔细研究每条数据,这总是会造成性能损失。
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
mmix 的答案是正确的,我会使用最新的数据加载器,打开批量 api,并让它释放您的数据。您还可以使用 Informatica 等合作伙伴,他们在处理大负载方面拥有丰富的经验。
在幕后,批量 api 将您的上传流式传输到(冗余、备份)磁盘,然后使用并行线程将上传作业排队加载到数据库中(如果您有多个批次)。这可能非常快,每小时有数百万条记录,但速度可能会因多种原因而有所不同。无法保证,这是一个异步 api。
如果您有许多顶点触发器或工作流程,或者您的负载涉及共享更新(所有权更改等),这可能会使负载减慢多个数量级。
如果您确实遇到负载缓慢的问题,您还可以提交支持案例,并让我们的一位性能人员跟踪您的负载,看看时间都花在哪里了。
希望有帮助。
mmix's answer is correct, I'd use the latest data loader, turn on bulk api, and let it loose on your data. You could also use a partner, like Informatica, they have a lot of experience with large loads.
Behind the covers, the bulk api streams your upload to (redundant, backed up) disks, and then queue an uploading job to load into the db, with parallel threads (if you have more than one batch). This can be quite fast, millions of records an hour, but speed can vary for many reasons. There are no guarantees, this is an asynchronous api.
If you have many apex triggers, or workflow, or your load involves sharing updates (ownership changes, etc), this can slow down the load by many orders of magnitude.
If you're truly stuck with slow loads, you can also file a support case and have one of our perf guys trace your load as it goes through, see where the time is being spent.
hope that helps.