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) と組み合わせると、条件に基づいて特定のレコードを除外できます。詳細と例については、「述語」を参照してください。