2017-11-04 9 views
1

TL; DR - Sqoop이 사용하는 날짜 형식을 변경할 수 있습니까?Sqoop의 날짜 형식을 SQL Server에서 증분 가져 오기로 변경하십시오.

Sqoop (버전 1.4.6)을 사용하여 SQL Server에서 데이터를 가져오고 datetime 열을 my --check-column으로 지정합니다.

Sqoop은 yyyy-MM-ddd hh : mm : ss.SSS 형식의 날짜를 사용하여 데이터베이스를 쿼리합니다. 그러나 SQL 서버는 영국 dmy 날짜 형식을 사용하도록 구성되었으므로 반 직관적으로 1 년으로 시작하는 날짜를 월이 아닌 두 번째 위치에있는 것으로 해석합니다 (wtf ?!).

예 : ... < '2017-01-31 00 : 00 : 00.000'을 수정하면 수정 된 데이터가 2017 년 31 일 중 첫 번째 날보다 분명히 오류가있는 데이터를 선택하는 것으로 해석됩니다.

Sqoop이 사용하는 날짜 형식을 변경할 수 있습니까?

답변

1

Sqoop 문서를 빠르게 검사 한 결과 날짜 형식을 변경하는 방법이 밝혀지지 않았습니다. Microsoft 지원 문서를 here 당신이 연결을 연 후 즉시

SET DATEFORMAT 'ymd' 

문을 실행하여 문제를 방지 할 수 있음을 시사하지만, Sqoop을 단지 오라클 (oraoop 현장-template.xml이에 대한 작업의 종류를 지원하는지 표시)이며 다른 JDBC 드라이버에는 해당되지 않습니다.

허용되는 경우 을 Sqoop 연결 URL에 추가 할 수있는 mssql-jdbc pull request이 있습니다.

LoginProperties.png

: 그 동안 당신은 단지에 "영국 영어"(US) "영어"에서 Sqoop을 작업에 대한 SQL 로그인의 기본 언어를 변경해야 할 수도 있습니다