Код: Выделить всё
month | value | observation |
-----------------------------
2024-01 | 12 | High
2024-01 | 5 | Low
Каждый день, когда получены новые цены для данного объекта, существующий код считывает файл пера для этого объекта в память (с помощью pandas) и объединяет входящие новые данные, а затем записывает обновленный файл пера из памяти обратно в S3. На данный момент это работает нормально, но по мере роста размера этих файлов перьев в некоторых случаях мы видим исключения «недостаточно памяти», когда лямбда пытается загрузить большой файл перьев в память во время операций слияния. Это тот случай, когда я выделил лямбде 10 ГБ (макс.) памяти.
Все поддерживаемые операции — слияние, обновление, удаление выполняются в памяти после полной загрузки файлов в памяти.
Есть ли лучший способ или другая библиотека, которая может помочь мне выполнять эти слияния/другие операции, не загружая все в память? Я проверяю DuckDB и вижу, что она поддерживает понижение уровня предиката до уровня хранилища, но не поддерживает файлы перьев изначально.
Ищу другие идеи для решения этой проблемы.
Спасибо
Обновление
Мы делаем разделение дат по годам в файлах перьев. Это замедляет операцию слияния, поскольку мне приходится обращаться к нескольким разделам, если входящие данные (в данном случае загрузка вручную) содержат точки данных за разные годы.
Кроме того, когда пользователь может запросить данные за несколько лет... например, запрос может сказать -> дайте мне все данные с «высоким» наблюдением, мне все равно нужно посетить несколько разделов, что может замедлить работу.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-python