2017-03-16 6 views
0

HDFS에 외부 테이블을 작성하고 HAWQ에 내부 테이블을 작성했습니다. 나는 ETL 프로세스 프로세스 흐름에 대한 talend를 사용하여, SQL 서버에서 데이터를 가져 오는 오전 SQLSERVER 같은 -> 외부 테이블 (PXF HAWQ) - 나는 오류오류 : 형식 문자 (50)에 대한 값이 너무 깁니다.

아래 얻고 작업을 실행에> INTERNAL TABLE (HAWQ)

ERROR: value too long for type character(50) (seg0 slice1 phds01.aa.com:40000 pid=297176) Detail: External table podetails_stg0, line 17 of pxf://PHD-HA/test/PoDetails_stg0.csv?profile=HdfsTextSimple, column StockDes

어떻게이 오류를 해결해야합니까?

답변

1

HDFS에 넣으려는 문자열에 50 문자 이상이 있습니다. 당신은 두 가지 선택이하십시오 StringHandling.LEFT(yourcolumn,50)

  • 알터하면 테이블 50 caracter에서

    • Trucate 콜 럼 및 문자 (100) 또는 더 많은처럼 열이 더 큰합니다.

  • +0

    감사합니다. 문자열 크기가'StockDes' 열에 대해 30 개가 아닌지 확인했습니다. 여전히 오류가 발생합니다. – vkumar

    0

    이것은 주로 데이터 관련 오류입니다. 데이터에는 줄 바꿈, 쉼표와 같은 많은 특수 문자가 포함되어 있습니다. 이로 인해 mssqlserver에서 HDFS의 CSV로 데이터를 복사하는 동안 데이터가 다른 열로 이동합니다. 데이터를 가져 오는 동안 소스 레벨에서 특수 문자를 필터링하여이 문제를 해결하는 가장 좋은 방법입니다.