Ошибка запроса в свободной форме sqoop при импорте сервера sql -> hbase - PullRequest
0 голосов
/ 14 февраля 2019

Привет всем, я пытаюсь импортировать некоторые данные с сервера 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
...