重要

このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。

Cast

ここでは、Apache Kafka® SMT org.apache.kafka.connect.transforms.Cast の使用方法を説明します。

説明

フィールド(またはキーまたは値の全体)を特定の型に変換(キャスト)し、スキーマが存在する場合はスキーマを更新します。たとえば、整数のフィールドを狭範囲の整数のフィールドにする場合に使用できます。integer、float、boolean、string など、シンプルなプリミティブ型のみがサポートされています。

レコードキー用(org.apache.kafka.connect.transforms.Cast$Key)または値用(org.apache.kafka.connect.transforms.Cast$Value)の固有の変換タイプを使用します。

Cast では、1 つのプリミティブ型のキー/値の全体、または複合型(Struct または Map)のキーまたは値の 1 つ以上のフィールドを変換できます。次の 2 つの構成スニペットを例に挙げて、2 つのシナリオでの Cast の使用方法を紹介します。

値のキャスト

この例は、Cast を使用して 64 ビット浮動小数点数値を文字列に変換する方法を示しています。

"transforms": "Cast",
"transforms.Cast.type": "org.apache.kafka.connect.transforms.Cast$Value",
"transforms.Cast.spec": "string"

変換前: 63521704.02

変換後: "63521704.02"

コンマ区切り値のキャスト

この例は、複合型のキーまたは値に Cast を使用する方法を示しています。field:type のペアがコンマ区切りになっています。 field はキャストするフィールドの名前、type はキャストした後のフィールドの型です。

"transforms": "Cast",
"transforms.Cast.type": "org.apache.kafka.connect.transforms.Cast$Value",
"transforms.Cast.spec": "ID:string,score:float64"

以下の変換前と変換後では、ID フィールドが 46290score フィールドが 4761 の Map または Struct が示されています。ID フィールドがキャストされて文字列に、score フィールドが 64 ビット浮動小数点数値に変換されています。

変換前:

{"ID": 46920,"score": 4761}

変換後:

{"ID": "46290","score": 4761.0}

ちなみに

その他の例については、マネージド型コネクターの「キャスト」を参照してください。

プロパティ

名前 説明 デフォルト 指定可能な値 重要度
spec 値全体をキャストする場合は、1 つの型。Map および Struct の場合は、フィールド名とキャスト後の型のコンマ区切りのリスト( field1:type1,field2:type2 の形式)。指定可能な型は、int8int16int32int64float32float64booleanstring です。 list   コロン区切りのペア("フィールド:型")の、コンマ区切りのリスト(例: foo:int32,bar:string

述語

"述語" を使用することにより、一定の条件を満たすレコードのみに変換が適用されるように、変換を構成することができます。述語は変換チェーンで使用することができ、Filter(Apache Kafka) と組み合わせると、条件に基づいて特定のレコードを除外できます。詳細と例については、「述語」を参照してください。