无法使用sqoop将所有记录从sqlserver视图导入hdfs

lf5gs5x2  于 2021-06-03  发布在  Sqoop
关注(0)|答案(0)|浏览(265)

我无法使用sqoop将所有记录从sqlserver视图导入hdfs。
sql server视图 v_callDetail 是使用 JOINS 从其他几个表中:

CREATE view testdb.dbo.v_callDetail AS
select
 i.callkey,
 i.col1,
 i.col2,
 i.col3,
 i.col4,
 i.inc_datetime_col
from testdb.dbo.callDetail i (nolock)
    inner join [dbo].[tabl2] rt (nolock)
        on i.callKey = rt.id
    inner join [dbo].[tabl3] et (nolock)
        on i.col1 = et.id
    left join testdb.dbo.lob l (nolock)
        on i.col2 = l.id
    left join testdb.dbo.division d (nolock)
        on i.col3 = d.id
    left join testdb.dbo.region r (nolock)
        on i.col4 = r.id;

这个v\u calldetail有3.5亿条记录。但只有2000万人被进口。
但是,当我从任何表导入数据时,我能够导入所有记录。
例如,一个表有约7亿个,所有表都是使用下面给出的相同sqoop命令导入的,其他几个表也是如此。
sqoop命令:

$> export SQOOP_DELIM=$( printf "\x01" )
$> sqoop import \
$> --options-file /path/to/sqoop_property.txt \
$> -D mapreduce.map.memory.mb=6144 -D mapreduce.map.java.opts=-Xmx6144m -D mapred.job.queue.name=L3_queue -D mapred.job.name="job_Import_sqlServer_View" \
$> --connect jdbc:sqlserver://hostname:1433 \
$> --username u123 --P \
$> --fields-terminated-by ${SQOOP_DELIM} \
$> --map-column-java col1=String,col2=String \
$> --null-string '' --null-non-string '' \
$> --query "select callkey,col1,col2,col3,col4,inc_datetime_col from testdb.dbo.v_callDetail WHERE inc_datetime_col<'2020-02-06 00:00:00' \
$> --delete-target-dir \
$> --target-dir /hdfs/path/to/landing/dir \
$> --hive-drop-import-delims \
$> --split-by callkey \
$> -m 20

这只发生在视线范围内。我需要设置一些sqlserver或sqoop参数吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题