如何在Netsuite中高效地批量导入数据



我正在探索如何高效地将客户数据批量导入Netsuite。我想出了多种方法,比如CSV导入、soap API、rest web服务、套件脚本等。

我尝试了所有这些方法,单个线程获得了每秒1.3个请求的吞吐量,当使用4的并发级别时,它们的吞吐量为每秒4.7个请求。

根据这一吞吐量,如果我们必须迁移数百万条记录,比如1000万条,那么完成这一迁移活动大约需要24天。

根据我的分析,我可以得出结论,无论我选择什么批量导入选项,Netsuite都会给我每个线程每秒1个请求的吞吐量(标准帐户并发限制为5(。如果客户需要增加吞吐量,则客户必须增加保费/额外账户数。

我从Netsuite找到了并发治理策略,它说我可以根据帐户类型和高级支持增加并发限制。

Netsuite还说套件脚本2.x支持map reduce,但我发现在这种情况下,这与在不增加并发限制的情况下提高吞吐量无关。虽然使用map reduce的CSV导入可能会给出更好的结果,但对此并不确定。但是CSV导入有25000行的限制,或者每个文件有50MB的大小限制,CSV导入的效率也没有超过该帐户的并发支持。

所以我的问题是:

  1. CSV导入是否可以超出特定帐户的并发级别
  2. 有没有办法在2-5天内完成10M记录迁移,而不用担心帐户的并发限制
  3. 并发限制是这里的控制因素吗
  4. 我的分析遗漏了什么吗

我不能给出你的问题的确切答案,但我真的认为解决方案是使用Map/Reduce,而不是在内部使用CSV导入(不确定你的意思是什么:虽然使用Map-Reduce的CSV导入可能会给出更好的结果,但不确定。(。

通过设计,可以很容易地制作Map/Reduce脚本,该脚本将逐行读取CSV文件,然后使用脚本逻辑创建记录。Map/Red的优势在于,您可以处理的数据数量没有限制,而且它也是Netsuite Design处理大规模更新的最佳工具。

此外,Map/Red设计用于更好地处理并发进程;尽管默认情况下,它仍然是有限的并发性,并且可能不足以让你达到2-5天的目标,除非你通过更多的";处理器";。

CSV导入很可能是可行的方法。你是否能挤出你需要的表演是另一回事。

如果每行导入1条记录,则可以获得最佳性能。对于多文件导入,您仍然可以通过跳过下面的#1来获得更好的性能(实际上,我还没有尝试跳过多行导入的#1,但如果您正在导入事务,您应该尝试一下。(

当您设置导入模板时,请在导入选项页面上执行以下操作:

  1. 选中"使用多线程">
  2. 选择一个队列。您可以为每个Suite Cloud plus许可证选择一个队列。能否顺利实现您的目标可能取决于购买足够的Suite Cloud Plus许可证以满足您的性能需求
  3. 取消选中"运行服务器脚本和触发器工作流",这意味着设置记录的任何逻辑都需要在CSV准备级别完成

可以通过脚本触发CSV导入。例如,我有一个RESTlet,它接收文件,然后运行配置好的脚本。该脚本接收文件id作为参数,然后处理该文件。在您的情况下,脚本可以将接收到的文件的行进行迭代——请参阅N/file.lines.iterator(),将其转换为25k行或更少的CSV文件,并使用您在上面设置的CSV导入脚本的循环通过N/task.CsvImportTask提交。

对于批量导入,我强烈建议使用soap-api方法进行加载,但您是对的,它需要您拥有多个suitecloud plus许可证才能添加并发:

回答您的问题:

  1. CSV导入是否可以超出特定帐户的并发级别
  2. 有没有办法在2-5天内完成10M记录迁移,而不用担心帐户的并发限制
  3. 并发限制是这里的控制因素吗并发,以及如何实现集成(使用Boomi、自定义或MuleSoft(
  4. 我的分析遗漏了什么吗

最新更新