Sqoop 导入优化的 Oracle 边界查询



最近,我正在使用Sqoop Import将数据从Oracle导入HDFS。

以下是经验教训之一:

我开始观察到 Sqoop 运行边界查询的速度很慢,例如数据集在 5 小时内导入,边界查询需要 1 小时。

我查看了基本查询,它SELECT MIN(id), max(id) from user

当我在巨大的表(数十亿条记录(上运行此查询时,它卡住了,Oracle 没有快速响应。然而,SELECT MIN(id) from userSELECT max(id) from user运行速度很快。

我没有 Oracle 表结构、索引信息等的详细信息。

在这篇文章中,我想分享我在我的案例中是如何解决它的,并想问社区是否有人以不同的方式解决相同的问题。

另一个问题,为什么 Sqoop 开发人员不考虑边界查询的性能。

我不确定 Sqoop 是否仍然经常使用,如果它仍然相关,请投票给这个问题,我将发布所有经验教训。

以下是我们正在使用的优化边界查询:

SELECT
*
FROM
(
SELECT
MIN( id ) min_
from
user
) v1,
(
SELECT
MAX( id ) max_
from
user
) v2;

最新更新