Думая, вместо того чтобы прикасаться к столу и делать обновления один за другим, вы должны использовать ETL-способ ведения дел, я считаю, что это будет намного быстрее.Должен позаботиться о 30K записей за несколько минут.Вот подход.
- Создайте промежуточную таблицу, скажем
stg_my_table (id,outlier_reason)
. - Запишите данные своих программ Python в файл CSV или JSON, в зависимости от того, что подходит вашему случаю.Сохраните его в
S3
или EC2
. - . Используйте
copy
команду для загрузки в stg_my_table вместе с ID. - Обновите
my_table
с помощьюсоединяя его с stg_my_table
, используя идентификатор и устанавливая outlier_reason
.
Я думаю, что вышеупомянутое решение должно сократить время обработки с 2 часов до нескольких минут.Пожалуйста, попробуйте этот способ вручную, прежде чем писать реальный код.Я уверен, что вы увидите очень многообещающие результаты, а затем оптимизируете каждый из вышеперечисленных шагов один за другим, чтобы повысить производительность.