How to import production (larger than toy size) data #4120
-
The import process use an in memory file uploaded by the client. The largest such csv file in the case I am working on is 100M. That is easily handled in the JVM after increasing max memory option. However, the web client is unable to do such large uploads through http. My immediate workaround is to patch the import process to use a stream from a fixed local (to Adempiere server) file. I can rsync the data being worked on. As a simple more general solution, it should work like the EDI import, where you can upload an edi document, it fetches from an ftp url (and eventually http), or you enter the full path to a copy of the document on the Adempiere server. |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 17 replies
-
@sdgathman needs to compromise ZK configuration https://forum.zkoss.org/question/39230/how-to-set-the-max-upload-size-for-fileupload/ Or use the Swing interface kind regards, |
Beta Was this translation helpful? Give feedback.
-
Hello @sdgathman the main problem is that the file should be split and process each file separately. This is a nice change for import loader. Other problem is that if you have many records to import then the import process is very very slowly because this use the Persistence Object and all business logic of ADempiere, I personally think that a way for resolve it is process by batch instead all but is a big work change all import process. Best regards |
Beta Was this translation helpful? Give feedback.
-
@sdgathman Hi , if you want to improve the performance and you can use multiple cpus, you can do a refactory in the import of products to work in parallel as a result of the order. kind regards |
Beta Was this translation helpful? Give feedback.
-
Can I just use a postgresql queries to populate the I_Product table? Isn't that a staging table that is then transferred to M_Product and others? I guess there is some verification logic for I_Product as well. |
Beta Was this translation helpful? Give feedback.
-
I did not play with the imports of the Adempiere, I did some migration indexes improvements.
I am not functional if someone is able to replicate the issue that you are having to take a look will be great to fix this missing indexes and/or the logic of the Imports.
… On 7/08/2023, at 9:52 PM, Stuart D. Gathman ***@***.***> wrote:
@piracio <https://github.com/piracio> I set ad_client_id to 0 for all but 46 records in i_product (so that only 46 products are imported instead of 2 million).
It has been 45 minutes. I can see which step it is on with "select pid,query from pg_stat_activity;"
I intended to work up to larger batches and time the imports. But this is ridiculous for just 46 records. I suspect part of the problem is that i_product needs some indexes. I think an index on ad_client_id may be important when using ad_client_id to select records to be imported. Or else, delete records from i_product and add them back in batches.
—
Reply to this email directly, view it on GitHub <#4120 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABQHBRNMNDCR7QTINS3DDQTXUGLVJANCNFSM6AAAAAA24RQBEY>.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
Very bad query, I think that is better if you change the |
Beta Was this translation helpful? Give feedback.
Hello @sdgathman the main problem is that the file should be split and process each file separately.
This is a nice change for import loader.
Other problem is that if you have many records to import then the import process is very very slowly because this use the Persistence Object and all business logic of ADempiere, I personally think that a way for resolve it is process by batch instead all but is a big work change all import process.
Best regards