如何将大表从oracle db压缩到hdfs?

问题描述 投票:0回答:1

我的Oracle表之一包含2.65亿条记录,我需要将该表从Oracle数据库推送到hdfs,但该表没有任何主键/唯一列。因此,我不能使用多个映射器。如果使用多个映射器,则必须指定“按列拆分”。什么是挤桌子的最好方法。任何线索表示赞赏。

oracle hadoop hdfs etl sqoop
1个回答
0
投票

为了使用多个映射器,您将需要一个--split-by参数。最好选择的列是在所有265m行中都不为空并且均匀分布的列。主键满足该条件,因为它是连续的并且在所有行中。

在数据集中均匀分布的任何列对于--split-by选择都是不错的选择。发布的链接@yammanuruarun包含--boundary-query参数,以帮助限制RDBMS返回这些行所要做的工作。我建议对-m 1,2,3,5,8使用斐波那契数列。

另外,请检出:How to find optimal number of mappers when running Sqoop import and export?

© www.soinside.com 2019 - 2024. All rights reserved.