1

我正在使用 PyHive 和 SQLAlchemy DB-API(异步)。如果我执行,我的 Hive 表有数百万条记录:

SELECT * FROM table

它在内存中加载数百万条记录。有没有办法将查询结果的大小限制为一定的大小,比如 5 MB?

我丢弃了超过 5 MB 的所有结果。数百万条记录可能是 100 MB,但我确实想在我的 Python 代码中加载这么多数据。

例如,如果:

SELECT * FROM table

1000 行 = 5 MB 的表,SQLAlchemy 只会返回 1000 行。

对于另一个查询,例如:

SELECT * FROM table2

在这里,对于 table2,100,000 行 = 5 MB,SQLAlchemy 将返回 100,000 行。

这样我就不会在我的客户端上耗尽内存。示例很简单,但可能存在复杂的连接 SQL,我想根据 MB 数据限制查询结果大小。

有没有办法用 SQLAlchemy 实现它或者需要修改 Hive & Presto 服务器来实现这种行为?

4

0 回答 0