【发布时间】:2019-10-10 06:57:38
【问题描述】:
我正在使用 Python3.7 将数据从 Postgres DB 移动到 AWS Redshift。我创建了一个 SQL 查询,该查询在执行时检索查询集(我使用 where 子句进行查询。因此,对于每个查询执行,我将更改我传递的 ID)。
我将在 Flask docker 容器 中运行此脚本,最终将在 Kubernetes 上运行。 我在 dockerized Flask app 中公开了一个 POST 方法端点,我将在其上接收需要在 DB 上查询的 ID 列表以及要移动到 Redshift 的数据Python。
我想做多线程来一次执行多个查询并移动数据,因为我收到的 POST 请求中可能有很多 ID。
但是,当我使用 Python3.7 时,我开始知道 GIL 将成为一个瓶颈,线程数无关紧要你正在运行,任何时候都只会有一个线程在执行。
我如何克服这个问题,让在 DB 上并行执行 SQL 查询成为可能,并最终在 Kubernetes 上运行。
我可以使用 multiprocessing 还是有其他更好的方法来实现这一点?
【问题讨论】:
标签: python-3.x postgresql docker flask amazon-redshift