0

kafka-connect-jdbc を使用して、(mysql 上の) レガシー データベースから kafka にデータをインポートしようとしています。基本的な例をセットアップして動作させることができました。

問題の 1 つは、タイムスタンプであるはずの列の 1 つに、例外が発生するすべての行に対して無効な値があることです。

java.sql.SQLException: 値 '0000-00-00' は java.sql.Timestamp として表すことができません

その列を簡単に除外し、その列を除外する選択クエリを作成することで、kafka-connect-jdbc のカスタム クエリ オプションを使用してデータをインポートできます。オフセット管理などの観点から、その意味を理解したかっただけです。ドキュメントによると、問題の1つは、これにより、コネクタごとに1つのトピックに制限されることです。他に留意すべきことはありますか?

4

1 に答える 1

0

接続文字列でmysql zeroDateTimeBehaviorオプションを使用して、この特定の問題(日付に関する)を解決しました。この &zeroDateTimeBehavior=round のようなものを追加すると、日付までに 0000-00-00 のままではなくなったことが修正されました。詳細はこちら:

MySql ドキュメントから

zeroDateTimeBehavior

ドライバーが完全にゼロで構成される DATETIME 値 (無効な日付を表すために MySQL で使用される) に遭遇した場合、どうすればよいですか? 有効な値は、"exception"、"round"、および "convertToNull" です。

デフォルト: 例外

以降のバージョン: 3.1.4

ただし、カスタムクエリを使用することの意味を知りたいです。

于 2016-07-01T16:35:41.493 に答える