Как справиться с чтением, извлечением и сохранением чрезвычайно больших данных CSV или Excel, имеющих клиент Angular и сервер Django - PullRequest
0 голосов
/ 23 мая 2019

Я реализовал внутреннюю функциональность, в которой можно загрузить файл CSV или файл Excel, а затем сервер (Django API) прочитает и сохранит все данные в базе данных, но я чувствую, что это не лучший подход ихотел бы получить совет по этому поводу.

Я не вижу причины, по которой серверу требуется прочитать и проверить файл CSV, в то время как клиент (приложение Angular) может выполнить эту работу.Клиент может прочитать, проверить файл и отправить данные на сервер.

Затем сервер выполнит оставшуюся часть работы, чтобы сохранить данные в базе данных.Но я подумал об этом, предположим, что файл содержит миллион записей, это означает, что конечная точка сервера будет добавлять миллион элементов.Это приведет к проблемам с производительностью.Как лучше всего справиться с этим?

1 Ответ

0 голосов
/ 23 мая 2019

Я реализовал приложение Angular / Python, которое обрабатывает большие файлы Excel, даже с несколькими листами, и лучший подход - позволить клиенту загрузить файл на сервер, а затем ваш сервер сделает остальную работу.

Обработка может занять много времени, поэтому вам может потребоваться сохранить файл во временном местоположении и асинхронно обработать его как задание.Это задание прочитает ваш файл, обработает каждую строку и сохранит данные в базе данных.При желании он также может сохранять ход выполнения и статус задания в базе данных, поэтому вы даже можете позволить клиенту отслеживать ход обработки по заданному идентификатору задания.

...