Невозможно импортировать все записи из SQL Server View в HDFS с помощью Sqoop - PullRequest
0 голосов
/ 06 февраля 2020

Я не могу импортировать все записи из SQL Просмотр сервера в HDFS, используя Sq oop.
SQL Сервер VIEW 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_callDetail содержит 350 миллионов записей. Но импортируется только 20 миллионов.
Но когда я импортирую данные из любой таблицы, я могу импортировать все записи.
Например, в одной таблице было ~ 700 миллионов, и все были импортированы с использованием одного и того же sq. Команда oop, приведенная ниже, а также для нескольких других таблиц.
Sq oop команда:

$> 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

Это происходит только с VIEW. Нужно ли устанавливать параметры SQLServer или Sq oop?

...