SetSchemaMetadata

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

説明

レコードのキー(org.apache.kafka.connect.transforms.SetSchemaMetadata$Key)または値(org.apache.kafka.connect.transforms.SetSchemaMetadata$Value)のスキーマに、スキーマの名前とバージョンのどちらか、またはその両方を設定します。

この SMT を使用すると、Connect レコードに対して、スキーマの名前とバージョンのどちらか、またはその両方を設定できます。スキーマ名には名前空間が含まれるため、SetSchemaMetadata SMT の一般的なユースケースとしては、Apache Kafka® レコードのキーおよび値で使用されるスキーマの名前および名前空間の変更があります。

ユースケース:

"ソースコネクター" は、コネクターで定義されたスキーマを使用してレコードを生成し、多くの場合、ソース固有の情報をもとにキーと値のスキーマの名前とバージョンを生成します。たとえば、データベースソースコネクターでは、行の読み取り元のテーブルの名前がスキーマ名に使用される場合があります。このように生成されるスキーマ名が順守すべき命名規則に従っていない場合は、この SMT を使用して、ソースコネクターで生成されたソースレコードのキーや値のスキーマに対して生成された名前をオーバーライドすることができます。

Kafka トピックのレコードを消費するシンクコネクターでは、コネクターで Kafka レコードを外部システムにマッピングする方法を示すためにスキーマの名前が使用される場合があります。レコードのキーおよび値で使用されるスキーマの名前では、適切なマッピングが得られない場合は、この SMT を使用して、シンクコネクターでレコードが処理される前に、消費されるソースレコードのキーや値のスキーマの名前を変更することができます。

The following examples show how to configure and use SetSchemaMetadata.

Set a schema name and version

この構成スニペットは、SetSchemaMetadata を使用して、スキーマの名前とバージョンを設定する方法を示しています。

"transforms": "SetSchemaMetadata",
"transforms.SetSchemaMetadata.type": "org.apache.kafka.connect.transforms.SetSchemaMetadata$Value",
"transforms.SetSchemaMetadata.schema.name": "order-value"
"transforms.SetSchemaMetadata.schema.version": "2"

The transform sets the schema name to order-value version 2

Set a namespace and schema name

この構成スニペットは、SetSchemaMetadata を使用して、スキーマの名前とバージョンを設定する方法を示しています。

"transforms" : "AddNamespace",
"transforms.AddNamespace.type" : "org.apache.kafka.connect.transforms.SetSchemaMetadata$Value",
"transforms.AddNamespace.schema.name" : "my.namespace.order-value"

サンプル 3: JDBC Source Connector と GenericAvro では、SetSchemaMetadata を使用して、コネクターがスキーマの名前空間を設定できるようにする方法を示しています。

ちなみに

Set Schema Metadata では、マネージド型コネクターに使用される構成例を示しています。

特徴

Name 説明 デフォルト 指定可能な値 重要度
schema.name 設定するスキーマ名。 string null  
schema.version 設定するスキーマのバージョン。 int null  

述語

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