Привет всем, я пытаюсь импортировать некоторые данные с сервера SQL на hbase
и создать таблицу на лету.Мне удалось заставить его работать с помощью простого запроса (SELECT * FROM dbo.Test
) через оболочку bash.Хотя для моей цели мне нужно будет использовать более сложный запрос.Я пытаюсь сделать это, передав запрос через аргумент файла параметров, SQL выполняется на сервере SQL нормально, хотя я получаю расширение аргумента / неправильно сформированные опции в файле опций: ошибка .
Когда осталосьвнешнее соединение удалено, оно будет жаловаться на каждый из указанных столбцов, я пробовал заключать в одинарные кавычки, двойные кавычки &
/
или \
в конце каждой строки, но безуспешно.Смотрите мой запрос импорта файла / опций sqoop.Заранее спасибо.
--query
SELECT CAST(REPLACE(CDT.BatchId, ' ', '') AS VARCHAR(MAX)) + CAST(REPLACE(BT.CreatedDt, ' ', '') AS VARCHAR(MAX)) + CAST(REPLACE(MV.ModelId, ' ', '') AS VARCHAR(MAX)) AS rowKey
, BT.CreatedDt
, M.ModelNm
, MV.VersionNum
, CDT.ScoreNum
, CS.StatusNm
, CLNT.CandInfoParamValue AS ClntIntrnlId
, CLNTx.CandInfoParamValue AS CreatedDt
, CLNTy.CandInfoParamValue AS BusinessEventReceiptId
, CDT.TreatmentPlanNm
, TG.TreatmentGroupNm
, T.TreatmentNm
, TWP.TeamNm
, PCR.PostCodeRangeNm
, BT.SubmissionId
FROM DBO.Users CDT
INNER JOIN Batch BT on BT.Id = CDT.BatchId
INNER JOIN ModelVersion MV ON BT.ModelVersionId = MV.Id
INNER JOIN Model M ON MV.ModelId = M.Id
INNER JOIN dbo.TreatedList T ON CDT.TreatmentId = T.Id
INNER JOIN dbo.Postcode P ON CDT.Postcode = P.Postcode
INNER JOIN dbo.PostcodeRange PCR ON P.Range = PCR.Id
INNER JOIN dbo.TeamZX TWP ON CDT.ClientId =
TWP.ClientSecRatingId
INNER JOIN dbo.TreatmentGroupTreatmentLink TGL ON CDT.TreatmentId =
TGL.TreatmentId
INNER JOIN dbo.TreatmentGroup TG ON TGL.TreatmentId = T.Id
INNER JOIN dbo.CandidateStatus CS ON CDT.StatusId = CS.Id
LEFT OUTER JOIN dbo.CandidateInfo AS CLNT ON CLNT.CandidateId = CDT.Id AND
CLNT.CandInfoParamNm = 'ClientInternalId' LEFT OUTER JOIN
dbo.CandidateInfo
AS CLNTx ON CLNT.CandidateId = CDT.Id AND CLNT.CandInfoParamNm =
'CreatedDt'
LEFT OUTER JOIN dbo.CandidateInfo AS CLNTy ON CLNT.CandidateId = CDT.Id
AND
CLNT.CandInfoParamNm = 'BusinessEventReceiptId'
sqoop import --verbose --hbase-create-table --hbase-table 'Test:OACDT' --
column-family CF1 --hbase-row-key rowKey --connect
"jdbc:sqlserver://13.98.106.48;database=TestDevQ;username=test;password=
test" --options-file /home/sql.txt