2017-11-04 7 views
1

TL; DR - Sqoopが使用する日付形式を変更することはできますか?SQL ServerからインクリメンタルインポートでSqoopの日付形式を変更する

Sqoop(バージョン1.4.6)を使用してSQL Serverからデータをインポートしていて、datetime列をmy --check-columnとして指定しています。

Sqoopは、yyyy-MM-ddd hh:mm:ss.SSSの形式で日付を使用してデータベースにクエリを実行しています。ただし、SQLサーバーは英国のdmy日付形式を使用するように構成されているため、直感的に反して、月ではなく2番目の日に1日を持つ年として解釈されます(wtf ?!)。

例:< '2017-01-31 00:00:00.000'を変更すると、修正されたデータが、明らかにエラーをスローする31番目の月の2017年の第1日よりも短いものとして解釈されます。

Sqoopが使用する日付形式を変更することはできますか?

答えて

1

Sqoopのドキュメントをすばやくスキャンしても、日付形式を変更する方法は明らかになりませんでした。マイクロソフトのサポート記事hereは、接続を開いた後、すぐに

SET DATEFORMAT 'ymd' 

文を発行して問題を回避することを示唆しているが、Sqoopは、Oracle(oraoopサイト-template.xmlのための操作の並べ替えをサポートしていることを表示されます)、他のJDBCドライバでは使用できません。

mssql-jdbc pull requestが受け入れられた場合は、;connectionDateformat=ymdをSqoop接続URLに追加できるようになります。

LoginProperties.png

:一方であなただけの「イギリス英語」(米国)「英語」からごSqoopジョブのSQLログインの既定の言語を変更する必要があります
関連する問題