4.3.7. データタイプ
上記のように、SQL Server コネクターは、行が存在するテーブルのように構造化されたイベントを含む行への変更を表します。イベントには各列値のフィールドが含まれ、その値がイベントでどのように表されるかは、列の SQL データ型によって異なります。本セクションでは、このマッピングを説明します。
以下の表は、各 SQL Server データ型をイベントのフィールド内の リテラル 型とセマンティック型 にマッピングする方法を示しています。ここで リテラル型 は、Kafka Connect スキーマタイプ( INT8、INT16、INT32 INT64、FLOAT32、FLOAT64、BOOLEAN、STRING、BYTES、ARRAY、MAP、STRUCT )を使用して値をリテラルで表す方法を記述します。セマンティック型 は、フィールドの Kafka Connect スキーマの名前を使用して Kafka Connect スキーマがフィールドの 意味 をキャプチャーする方法を記述します。
| SQL Server データ型 | リテラル型 (スキーマ型) | セマンティック型 (スキーマ名) | 注記 |
|---|---|---|---|
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
| 該当なし | |
|
|
|
| XML ドキュメントの文字列表現が含まれます。 |
|
|
|
| タイムゾーン情報を含むタイムスタンプの文字列表現。タイムゾーンは GMT です。 |
その他のデータ型マッピングは、以下のセクションで説明します。
列のデフォルト値がある場合は、対応するフィールドの Kafka Connect スキーマに伝達されます。変更メッセージには、フィールドのデフォルト値が含まれます (明示的な列値が指定されていない場合)。そのため、スキーマからデフォルト値を取得する必要はほとんどありません。
4.3.7.1. 時間値 リンクのコピーリンクがクリップボードにコピーされました!
タイムゾーン情報が含まれる SQL Server の DATETIMEOFFSET 以外の時間型は、time.precision.mode 設定プロパティーの値によって異なります。time.precision.mode 設定プロパティーが adaptive (デフォルト) に設定された場合、コネクターは列のデータ型を基に時間型のリテラルおよびセマンティック型を決定し、イベントが正確 にデータベースの値を表すようにします。
| SQL Server データ型 | リテラル型 (スキーマ型) | セマンティック型 (スキーマ名) | 注記 |
|---|---|---|---|
|
|
|
| エポックからの日数を表します。 |
|
|
|
| 午前 0 時から経過した時間をミリ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| 午前 0 時から経過した時間をマイクロ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| 午前 0 時から経過した時間をナノ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| エポックからの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| エポックからの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| エポックからの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| エポックからの経過時間をマイクロ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| エポックからの経過時間をナノ秒で表し、タイムゾーン情報は含まれません。 |
time.precision.mode 設定プロパティーが connect に設定された場合、コネクターは事前定義された Kafka Connect の論理型を使用します。これは、コンシューマーが組み込みの Kafka Connect の論理型のみを認識し、可変精度の時間値を処理できない場合に便利です。一方で、SQL Server はマイクロ秒の 10 分の 1 の精度をサポートするため、connect 時間精度モードでコネクターによって生成されたイベントは、データ列の 少数秒の精度 値が 3 よりも大きい場合に 精度が失われます。
| SQL Server データ型 | リテラル型 (スキーマ型) | セマンティック型 (スキーマ名) | 注記 |
|---|---|---|---|
|
|
|
| エポックからの日数を表します。 |
|
|
|
|
午前 0 時からの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。SQL Server では、範囲 0 - 7 の |
|
|
|
| エポックからの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
| エポックからの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。 |
|
|
|
|
エポックからの経過時間をミリ秒で表し、タイムゾーン情報は含まれません。SQL Server では、範囲 0 - 7 の |
4.3.7.1.1. タイムスタンプ値 リンクのコピーリンクがクリップボードにコピーされました!
DATETIME、SMALLDATETIME および DATETIME2 タイプは、タイムゾーン情報のないタイムスタンプを表します。このような列は、UTC を基にして同等の Kafka Connect 値に変換されます。たとえば、2018-06-20 15:13:16.945104 という DATETIME2 の値は、1529507596945104 という値の io.debezium.time.MicroTimestamp で表されます。
Kafka Connect および Debezium を実行している JVM のタイムゾーンは、この変換には影響しないことに注意してください。