sqoop是提取启动时出现的记录,还是在sqoop运行时将sqoop记录添加到表中?

kt06eoxx  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(357)

我有一个表a,它不断更新新的记录。我正在尝试将表a中的记录sqoop到hdfs,比如说在ct下午2:00(源表a有5m个记录),sqoop在ct下午4:00结束(表a有5m个记录)。我的问题是
目标中会有500万条记录还是5.5万条?

0sgqnhkj

0sgqnhkj1#

根据文档,sqoop使用read-committed事务隔离。所以一旦(一个或多个) SELECT sqoop在下面执行的查询已经执行,“选中的”记录将被插入到配置单元中(我假设您正在将数据导入到配置单元中,因为您在问题中使用了标记)。所以决定最终导入的记录数(500万条或550万条记录)的是 SELECT 查询,而不是整个导入过程所花费的总时间。
请记住,您可以通过指定要使用的Map器的数量(参数)来控制导入过程的并行性 --num-mappers ). 每个Map器将执行一个独立的 SELECT 查询。
另外,您可以考虑使用增量导入来检索导入过程完成后添加到数据库中的新数据。此外,还可以使用自由格式查询对要导入数据库的数据量进行更细粒度的控制。

相关问题