Как сделать мое приложение Django масштабируемым для загрузки CSV-файла?
Я хочу загрузить большой файл csv (40 МБ). Сейчас для 1 MB файла требуется почти 1.5 минуты, и я думаю, что это не достаточно хорошо для меня. Я хочу сделать это так быстро. Я использовал функцию bulk create вместо функции create, но я заметил, что и то, и другое занимает одинаковое время. Как я могу сделать это быстро? Какая процедура достаточно хороша для загрузки больших csv? Могу ли я предоставить django Celery для загрузки больших csv.
#это мой код
def upload_file_view(request):
start_time = datetime.now()
form = CsvModelForm(request.POST or None, request.FILES or None)
if form.is_valid():
form.save()
form = CsvModelForm
obj = Csv.objects.get(activated=False)
with open(obj.file_name.path, 'r') as f:
reader = csv.reader(f)
for i, row in enumerate(reader):
if i == 0:
pass
else:
print(row)
date = row[0]
appl_open = row[1]
appl_high = row[2]
appl_low = row[3]
appl_close = row[4]
appl_volume = row[5]
appl_adjusted = row[6]
dn = row[7]
mavg = row[8]
up = row[9]
direction = row[10]
Data.objects.create(
date = date,
appl_open = appl_open,
appl_high = appl_high,
appl_low = appl_low,
appl_close = appl_close,
appl_volume = appl_volume,
appl_adjusted = appl_adjusted,
dn = dn,
mavg = mavg,
up = up,
direction = direction
)
obj.activated = True
obj.save()
end_time = datetime.now()
print('Duration: {}'.format(end_time - start_time))
return render(request, 'core/task.html', {'form' : form})