向salesforce中的Account对象插入200万条记录的最佳方法是什么?

时间:2011-04-18 09:25:45

标签: salesforce apex-code loader

我们已经使用Apex Data Loader来插入/删除记录,但是在获取大量数据时需要花费更多时间。

请您为我们提供任何替代方法。

3 个答案:

答案 0 :(得分:2)

mmix的答案是正确的,我会使用最新的数据加载器,打开批量api,让它在你的数据上松动。您也可以使用像Informatica这样的合作伙伴,他们在大负载方面拥有丰富的经验。

在封面后面,批量api将上传流式传输到(冗余的,备份的)磁盘,然后将上传作业排入队列,并使用并行线程(如果您有多个批处理)加载到数据库中。这可能非常快,每小时有数百万条记录,但速度因各种原因而有所不同。没有保证,这是一个异步api。

如果您有许多顶点触发器或工作流程,或者您的负载涉及共享更新(所有权更改等),这可能会使负载减慢许多数量级。

如果你真的遇到了缓慢的负载,你也可以提交一个支持案例,并让我们的一个人员跟踪你的负载,看看时间花在哪里。

希望有所帮助。

答案 1 :(得分:1)

如果您可以使用force.com平台,则可以使用Bulk API。另请参阅此Dreamforce 09注释。

答案 2 :(得分:0)

如果您想自己动手,请使用BulkAPI或管理设置数据导入(“设置”|“管理设置”|“数据导入”|“导入业务帐户”)。请记住,BulkAPI每批次限制为10,000行,管理导入每次上传限制为50,000行,因此您必须对数据进行切片。

或者,较新版本的Data Loader外部应用程序支持新的BulkAPI并可以为您分割内容,您可以从“设置”菜单的“管理设置”|“数据管理”下载数据加载器。从那里运行导入,让应用程序将数据分批。

如果导入速度太慢,您可以尝试暂时挂起触发器,非必要的工作流程和帐户验证。除此之外,您可以做的事情并不多,请记住,salesforce数据库不是直接数据库,它是一个抽象层,必须在每个数据上咀嚼,然后才会在实际数据库中存在,这总是会造成性能损失。