I am exploring ways to perform bulk import customer data to Netsuite efficiently. I figured out multiple ways like CSV import, soap APIs, rest web services, suite script, etc.
I tried all these methods and got a throughput of 1.3 requests per second by a single thread, when using a concurrency level of 4 they are giving a throughput of 4.7 requests per second.
As per this throughput, if we have to migrate millions of records say 10M then it will take around 24 days to complete this migration activity.
According to my analysis, I am able to conclude that whatever bulk import option I choose, Netsuite will give me a throughput of 1 request per second per thread (standard account concurrency limit is 5). If a customer needs to increase throughput customer have to increase premium/plus account counts.
I found the concurrency governance policy from Netsuite which says I can increase the concurrency limits based on account type and premium supports.
Netsuite also says suite script 2.x supports map-reduce but I didn't find that also relevant in this case to increase throughput without increasing concurrency limits. Though CSV Import using map-reduce may give better results but not sure about that. But CSV Import has the limitation of 25000 lines or a 50 MB size limit per file, and CSV Import efficiency also does not get beyond the concurrency support for that account.
So my questions are :
- CSV Import can go beyond the concurrency level of that particular account?
- Is there any way to complete 10M records migrations in 2-5 days without worrying about the concurrency limit of the account.
- Does the Concurrency limit is the controlling factor here?
- Am I missing something in my analysis?