重要
このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。
ストリームカタログの REST API¶
ストリームカタログの API を使用すると、REST API を介してカタログのエンティティを作成、取得、アップデート、削除できます。詳細については、Confluent Cloud Catalog API(V1) を参照してください。
注釈
Catalog API では、スキーマのエンティティのタイプ(サブジェクト、レコード、フィールド)についてのみ検索機能が用意されています。Cloud Console のグローバル検索ではすべてのエンティティの種類を検索できますが、現時点では、この API には他のエンティティの種類(トピック、コネクターなど)の検索機能は含まれていません。
Catalog API の使用例¶
このセクションでは、curl コマンドを使用して Confluent Cloud Catalog API(V1) を呼び出す例を紹介しています。
API のテストを行う場合、curl の --silent
フラグに jq を組み合わせてみてください。指定したコマンドから、きれいに書式設定された出力結果が得られます。以下の例では、これらのオプションを含めた呼び出しと、想定される出力を示します。
疑問符(?
)またはアンパサンド(&
)を含む検索の呼び出しで適切に書式が設定された出力を得るには、これらがシェルで解釈されないように、URL と検索パラメーターを一重引用符または二重引用符で囲む必要があります。この構文についても、例の中に示されています。
--silent
と jq
を使用しない場合、出力の内容は同じになりますが、書式は適用されません。
ストリーム系列のチュートリアル の stocks の例を既に試している場合は、以下の例にあるエンティティのほとんどが既に環境内に存在しています。これらのリソースをより見つけやすくするには、スキーマ、レコード、フィールドにタグ付け し、そのタグを、以下に示すように検索に使用します。
セットアップ¶
Catalog API に対する API 呼び出しには、以下が必要になります。
- 使用する環境内の スキーマレジストリ クラスター用の API エンドポイントの URL。以下の例では、
<SCHEMA-REGISTRY-URL>
となっています。この URL を Cloud Console で確認するには、使用する環境の Schema Registry タブに移動するか、使用する環境に移動してccloud ccloud schema-registry cluster describe
と入力して Confluent Cloud のコマンドラインにログオンします。(こちら に便利な CLI コマンドリストがあります。) - 使用する環境内の スキーマレジストリ 用の API キーとシークレット。(必要に応じて「Confluent Cloud スキーマレジストリ の API キーを作成する」を参照してください。)スキーマサブジェクトは、環境ごとの スキーマレジストリ クラスター内の環境レベルで存在します。そのため、使用する Kafka クラスターが含まれている環境を選択します。以下の例では、この部分は <API-KEY>:<API-SECRET> となっています。このように、curl コマンドではコロン区切りのペアとして入力します。
タグの定義の作成¶
curl -u <API-KEY>:<API-SECRET> \
--header 'Content-Type: application/json' \
--data '[ { "entityTypes" : [ "sr_schema", "sr_record", "sr_field", "sr_subject_version" ],"name" : "<TAG_NAME>","description" : "Test API call"} ]' \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs
たとえば、よく使用されるプレハブタグの 1 つ(PII、Sensitive、Private、Public)を作成するには、API 呼び出しでタグ名を指定します。次のコマンドを使用すると、PII タグが作成されます。
curl -u <API-KEY>:<API-SECRET> \
--header 'Content-Type: application/json' \
--data '[ { "entityTypes" : [ "sr_schema", "sr_record", "sr_field", "sr_subject_version" ],"name" : "PII","description" : "Personally Identifiable Information"} ]' \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs
購入リストに在庫のシンボルのタグを付加できるように、PCI
というカスタムタグを作成するには、curl --silent
を使用し、パイプで jq
に渡します。
curl --silent -u <API-KEY>:<API-SECRET> \
--header 'Content-Type: application/json' \
--data '[ { "entityTypes" : [ "sr_schema", "sr_record", "sr_field", "sr_subject_version" ],"name" : "PCI","description" : "Payment Card Industry Data Security Standard"} ]' \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs | jq .
出力は以下のようになります。
"category": "CLASSIFICATION",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1631914851910,
"updateTime": 1631914851910,
"version": 1,
"name": "PCI",
"description": "Payment Card Industry Data Security Standard",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"sr_field",
"sr_schema",
"sr_record"
"sr_subject_version"
]
購入リストに在庫のシンボルのタグを付加できるように、stocks_buy
というカスタムタグを作成するには、curl --silent
を使用し、パイプで jq
に渡します。
curl --silent -u <API-KEY>:<API-SECRET> \
--header 'Content-Type: application/json' \
--data '[ { "entityTypes" : [ "sr_schema", "sr_record", "sr_field", "sr_subject_version" ],"name" : "stocks_buy","description" : "stock symbols on buy list"} ]' \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs | jq .
出力は以下のようになります。
"category": "CLASSIFICATION",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1631914483922,
"updateTime": 1631914483922,
"version": 1,
"name": "stocks_buy",
"description": "stock symbols on buy list",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"sr_field",
"sr_schema",
"sr_record"
"sr_subject_version"
]
もう 1 つ、my_stocks
というカスタムタグを作成します。
curl --silent -u <API-KEY>:<API-SECRET> \
--header 'Content-Type: application/json' \
--data '[ { "entityTypes" : [ "sr_schema", "sr_record", "sr_field", "sr_subject_version" ],"name" : "my_stocks","description" : "stocks I am tracking"} ]' \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs | jq .
https://confluent.cloud にログオンし、Cloud Console をチェックして、新しいタグが表示されることを確認します。作業対象の環境に移動して、Schema Registry タブをクリックし、下にスクロールして Tags を見つけます。

View and manage tags をクリックすると、すべてのタグが表示されます。

属性(キー、値ペア)を追加して、タグの定義を更新します。¶
次の呼び出しにより、いくつかの新しい属性で PCI
タグが更新されます。
curl --silent -u <API-KEY>:<API-SECRET> --request PUT \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs \
--header 'Content-Type: application/json' \
--data '[{ "entityTypes" : [ "sr_record", "sr_field" ],
"name" : "PCI", "description" : "Payment Card Industry Data Security Standard" ,
"attributeDefs" : [ { "name" : "key", "cardinality" : "SINGLE", "typeName" : "string" },
{ "name" : "region", "isOptional" : "true", "cardinality" : "SINGLE", "typeName" : "string" },
{ "name" : "keytype", "isOptional" : "true", "cardinality" : "SINGLE", "typeName" : "string" } ] }]' | jq .
出力は以下のようになります。
"category": "CLASSIFICATION",
"name": "PCI",
"description": "Payment Card Industry Data Security Standard",
"attributeDefs": [
{
"name": "key",
"typeName": "string",
"isOptional": false,
"cardinality": "SINGLE",
"valuesMinCount": -1,
"valuesMaxCount": -1,
"isUnique": false,
"isIndexable": false,
"includeInNotification": false,
"searchWeight": -1
},
{
"name": "region",
"typeName": "string",
"isOptional": true,
"cardinality": "SINGLE",
"valuesMinCount": -1,
"valuesMaxCount": -1,
"isUnique": false,
"isIndexable": false,
"includeInNotification": false,
"searchWeight": -1
},
{
"name": "keytype",
"typeName": "string",
"isOptional": true,
"cardinality": "SINGLE",
"valuesMinCount": -1,
"valuesMaxCount": -1,
"isUnique": false,
"isIndexable": false,
"includeInNotification": false,
"searchWeight": -1
}
],
"superTypes": [],
"entityTypes": [
"sr_field",
"sr_record"
]
タグの定義の一覧表示¶
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs | jq .
出力は以下のようになります。
"category": "CLASSIFICATION",
"guid": "f94803c3-6aba-4b41-a003-2f8fc1957c29",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1631593629096,
"updateTime": 1631593629096,
"version": 1,
"name": "PII",
"description": "Personally identifiable information",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"cf_entity"
]
},
{
"category": "CLASSIFICATION",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1631914851910,
"updateTime": 1631914851910,
"version": 1,
"name": "PCI",
"description": "Payment Card Industry Data Security Standard",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"sr_field",
"sr_schema",
"sr_record",
"sr_subject_version"
]
},
{
"category": "CLASSIFICATION",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1631914483920,
"updateTime": 1631914483920,
"version": 1,
"name": "stocks_buy",
"description": "stock symbols on buy list",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"sr_field",
"sr_schema",
"sr_record",
"sr_subject_version"
]
},
...
タグの定義の取得¶
PII(個人を特定できる情報)タグの定義を取得します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs/PII | jq .
出力は以下のようになります。
"category": "CLASSIFICATION",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1631593629105,
"updateTime": 1631593629105,
"version": 1,
"name": "PII",
"description": "Personally identifiable information",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"cf_entity"
]
名前によるフィールドの検索¶
credit_card
という名前のフィールドを検索します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url '<SCHEMA-REGISTRY-URL>/catalog/v1/search/basic?type=sr_field&query=credit_card' | jq .
出力は以下のようになります。
"searchParameters": {
"includeDeleted": false,
"limit": 0,
"offset": 0
},
"types": [
"sr_field"
],
"entities": [
{
"typeName": "sr_field",
"attributes": {
"createTime": 1632516635687,
"qualifiedName": "lsrc-g2p81:.:100007:com.mycorp.mynamespace.sampleRecord.credit_card",
"name": "credit_card",
"context": ".",
"id": 100007,
"nameLower": "credit_card",
"tenant": "lsrc-g2p81"
},
"guid": "541fae87-7fe5-4cab-b509-0f76cbf47515",
"status": "ACTIVE",
"displayText": "credit_card",
"classificationNames": [
"credit_card",
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": [
タグによるフィールドの検索¶
PII
というタグの付いたフィールドを検索します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url '<SCHEMA-REGISTRY-URL>/catalog/v1/search/basic?type=sr_field&tag=PII' | jq .
出力は以下のようになります。
"searchParameters": {
"includeDeleted": false,
"limit": 0,
"offset": 0
},
"types": [
"sr_field"
],
"entities": [
{
"typeName": "sr_field",
"attributes": {
"createTime": 1614710010055,
"qualifiedName": "lsrc-g2p81:.:100001:ksql.StockTrade.userid",
"name": "userid",
"context": ".",
"id": 100001,
"nameLower": "userid",
"tenant": "lsrc-g2p81"
},
"guid": "99a87d47-f55c-4cff-ad36-cf870ebab382",
"status": "ACTIVE",
"displayText": "userid",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1614710010055,
"qualifiedName": "lsrc-g2p81:.:100001:ksql.StockTrade.account",
"name": "account",
"context": ".",
"id": 100001,
"nameLower": "account",
"tenant": "lsrc-g2p81"
},
"guid": "e8b96055-30ef-4203-adbc-30e28fa419c9",
"status": "ACTIVE",
"displayText": "account",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1614902469162,
"qualifiedName": "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.ACCOUNT",
"name": "ACCOUNT",
"context": ".",
"id": 100003,
"nameLower": "account",
"tenant": "lsrc-g2p81"
},
"guid": "152e502a-98ac-484b-86ef-b789d9eb8bf7",
"status": "ACTIVE",
"displayText": "ACCOUNT",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1627756849389,
"qualifiedName": "lsrc-g2p81:.:100004:Example.Employee.Name",
"name": "Name",
"context": ".",
"id": 100004,
"nameLower": "name",
"tenant": "lsrc-g2p81"
},
"guid": "93673886-cea1-4f8d-ad2b-3e4574e70ee1",
"status": "ACTIVE",
"displayText": "Name",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1627756849389,
"qualifiedName": "lsrc-g2p81:.:100004:Example.Employee.Age",
"name": "Age",
"context": ".",
"id": 100004,
"nameLower": "age",
"tenant": "lsrc-g2p81"
},
"guid": "5a94a4dd-e930-46d2-b548-82f91f55f38a",
"status": "ACTIVE",
"displayText": "Age",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1632516635687,
"qualifiedName": "lsrc-g2p81:.:100007:com.mycorp.mynamespace.sampleRecord.balance",
"name": "balance",
"context": ".",
"id": 100007,
"nameLower": "balance",
"tenant": "lsrc-g2p81"
},
"guid": "b5652a8c-4509-4477-a45f-8dc7a504707c",
"status": "ACTIVE",
"displayText": "balance",
"classificationNames": [
"credit_card",
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1632516635687,
"qualifiedName": "lsrc-g2p81:.:100007:com.mycorp.mynamespace.sampleRecord.last_name",
"name": "last_name",
"context": ".",
"id": 100007,
"nameLower": "last_name",
"tenant": "lsrc-g2p81"
},
"guid": "175a6542-5af9-43f1-a9c6-a83491db94d9",
"status": "ACTIVE",
"displayText": "last_name",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1632516635687,
"qualifiedName": "lsrc-g2p81:.:100007:com.mycorp.mynamespace.sampleRecord.credit_card",
"name": "credit_card",
"context": ".",
"id": 100007,
"nameLower": "credit_card",
"tenant": "lsrc-g2p81"
},
"guid": "541fae87-7fe5-4cab-b509-0f76cbf47515",
"status": "ACTIVE",
"displayText": "credit_card",
"classificationNames": [
"credit_card",
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1632516635687,
"qualifiedName": "lsrc-g2p81:.:100007:com.mycorp.mynamespace.sampleRecord.first_name",
"name": "first_name",
"context": ".",
"id": 100007,
"nameLower": "first_name",
"tenant": "lsrc-g2p81"
},
"guid": "ddc35b11-056e-4a41-8a5b-69d2366e6455",
"status": "ACTIVE",
"displayText": "first_name",
"classificationNames": [
"PII"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
名前によるスキーマレコードの検索¶
名前空間 ksql
で StockTrade
というレコード名を持つスキーマレコードを検索します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url '<SCHEMA-REGISTRY-URL>/catalog/v1/search/basic?type=sr_record&query=ksql.StockTrade' | jq .
出力は以下のようになります。
"searchParameters": {
"includeDeleted": false,
"limit": 0,
"offset": 0
},
"types": [
"sr_record"
],
"entities": [
{
"typeName": "sr_record",
"attributes": {
"createTime": 1614710010055,
"qualifiedName": "lsrc-g2p81:.:100001:ksql.StockTrade",
"name": "StockTrade",
"context": ".",
"id": 100001,
"nameLower": "stocktrade",
"tenant": "lsrc-g2p81"
},
"guid": "d757148e-28f6-465b-b7de-088732848ab5",
"status": "ACTIVE",
"displayText": "StockTrade",
"classificationNames": [
"my_stocks",
"Sensitive"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
タグによるスキーマの検索¶
my_stocks
というタグが付いたスキーマレコードを検索します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url '<SCHEMA-REGISTRY-URL>/catalog/v1/search/basic?type=sr_record&tag=my_stocks' | jq .
出力は以下のようになります。
"searchParameters": {
"includeDeleted": false,
"limit": 0,
"offset": 0
},
"types": [
"sr_record"
],
"entities": [
{
"typeName": "sr_record",
"attributes": {
"createTime": 1614902469162,
"qualifiedName": "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema",
"name": "KsqlDataSourceSchema",
"context": ".",
"id": 100003,
"nameLower": "ksqldatasourceschema",
"tenant": "lsrc-g2p81"
},
"guid": "dee2acf2-08e5-43af-a2de-927a06f17c33",
"status": "ACTIVE",
"displayText": "KsqlDataSourceSchema",
"classificationNames": [
"my_stocks"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_record",
"attributes": {
"createTime": 1614710010055,
"qualifiedName": "lsrc-g2p81:.:100001:ksql.StockTrade",
"name": "StockTrade",
"context": ".",
"id": 100001,
"nameLower": "stocktrade",
"tenant": "lsrc-g2p81"
},
"guid": "d757148e-28f6-465b-b7de-088732848ab5",
"status": "ACTIVE",
"displayText": "StockTrade",
"classificationNames": [
"my_stocks",
"Sensitive"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
Avro でのフィールドへのタグの付加¶
stocks_buy-value
スキーマを更新して、1 つのレコードのフィールドにタグを付加する必要があるとします。具体的には、stocks_buy-value
スキーマにレコード KsqlDataSourceSchema
が含まれていて、SYMBOL フィールドに stocks_buy
タグを付加する必要があります。
"entityName"
の指定に必要になるため、まず、タグを付加するフィールドの完全修飾名を取得する必要があります。これは、Cloud Console からは取得できません。スキーマのフィールドの完全修飾名を取得するには、フィールドの詳細情報を返す API 呼び出しを送信します。
たとえば、SYMBOL
という名前のフィールドを検索します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url '<SCHEMA-REGISTRY-URL>/catalog/v1/search/basic?type=sr_field&query=SYMBOL' | jq .
このコマンドの出力は次のようになります。stocks_buy-value
スキーマの KsqlDataSourceSchema
レコードの SYMBOL フィールドの完全修飾名が強調表示されています。
"searchParameters": {
"includeDeleted": false,
"limit": 0,
"offset": 0
},
"types": [
"sr_field"
],
"entities": [
{
"typeName": "sr_field",
"attributes": {
"createTime": 1614710010055,
"qualifiedName": "lsrc-g2p81:.:100001:ksql.StockTrade.symbol",
"name": "symbol",
"context": ".",
"id": 100001,
"nameLower": "symbol",
"tenant": "lsrc-g2p81"
},
"guid": "446a0d3f-b77e-4ce5-a0d2-628076cd4a13",
"status": "ACTIVE",
"displayText": "symbol",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1614902466440,
"qualifiedName": "lsrc-g2p81:.:100002:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL",
"name": "SYMBOL",
"context": ".",
"id": 100002,
"nameLower": "symbol",
"tenant": "lsrc-g2p81"
},
"guid": "8cfacbc2-8ae8-44c0-b860-e3161bdb012a",
"status": "ACTIVE",
"displayText": "SYMBOL",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_field",
"attributes": {
"createTime": 1614902469162,
"qualifiedName": "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL",
"name": "SYMBOL",
"context": ".",
"id": 100003,
"nameLower": "symbol",
"tenant": "lsrc-g2p81"
},
"guid": "16854b0c-580b-408a-9cb6-49e5505900cc",
"status": "ACTIVE",
"displayText": "SYMBOL",
"classificationNames": [
"stocks_buy"
],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
ここで、SYMBOL フィールドに stocks_buy
タグを付加します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request POST \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/entity/tags \
--header 'Content-Type: application/json' \
--data '[ { "entityType" : "sr_field",
"entityName" : "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL",
"typeName" : "stocks_buy"} ]' | jq .
出力は以下のようになります。
"typeName": "stocks_buy",
"entityStatus": "ACTIVE",
"entityType": "sr_field",
"entityName": "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL"
Cloud Console で確認するには、https://confluent.cloud にログオンし、タグを付加したスキーマおよびフィールドに移動します。SYMBOL フィールドに stocks_buy
タグが関連付けられたことを確認できます。

Cloud Console または API を使用して、同じフィールドにもう 1 つのタグ my_stocks
を追加します。API 呼び出しを使用する場合は、前述のように curl コマンドを送信します。ただし、stocks_buy
を my_stocks
に置き換えます。
フィールドからのタグの属性の取得¶
同じフィールド(stocks_buy-value
スキーマの KsqlDataSourceSchema
レコードの SYMBOL)のタグ属性を取得します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url '<SCHEMA-REGISTRY-URL>/catalog/v1/entity/type/sr_field/name/100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL/tags' | jq .
出力は以下のようになります。
"typeName": "my_stocks",
"entityGuid": "cf62db9b-caec-40dd-928d-6dd98f803b4e",
"entityStatus": "ACTIVE",
"propagate": true,
"removePropagationsOnEntityDelete": false,
"entityType": "sr_field",
"entityName": "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL"
},
{
"typeName": "stocks_buy",
"entityGuid": "cf62db9b-caec-40dd-928d-6dd98f803b4e",
"entityStatus": "ACTIVE",
"propagate": true,
"removePropagationsOnEntityDelete": false,
"entityType": "sr_field",
"entityName": "lsrc-g2p81:.:100003:io.confluent.ksql.avro_schemas.KsqlDataSourceSchema.SYMBOL"
スキーマのバージョンのタグ付け¶
まず、favorites
という新しいカスタムタグを作成します。
curl --silent -u <API-KEY>:<API-SECRET> \
--header 'Content-Type: application/json' \
--data '[ { "entityTypes" : [ "sr_schema", "sr_record", "sr_field", "sr_subject_version" ],"name" : "favorites","description" : "my favorite stocks"} ]' \
--url <SCHEMA-REGISTRY-URL>/catalog/v1/types/tagdefs' | jq .
出力は以下のようになります。
"category": "CLASSIFICATION",
"createdBy": "root",
"updatedBy": "root",
"createTime": 1632974329626,
"updateTime": 1632974329626,
"version": 1,
"name": "favorites",
"description": "my favorite stocks",
"typeVersion": "1.0",
"attributeDefs": [],
"superTypes": [],
"entityTypes": [
"sr_field",
"sr_schema",
"sr_record",
"sr_subject_version"
favorites
として操作してきた stocks_buy-value
スキーマの現在のスキーマバージョンにタグを付加します。次の例では、現在のバージョンが v2 であることが前提となっています。stocks_buy-value
のバージョンが v1 になっている場合は、API 呼び出しの v2
を v1
に置き換えます。
curl --silent -u <API-KEY>:<API-SECRET> \
--request POST \
--url <SCHEMA-REGISTRY-URL>/catalog/v2/entity/tags \
--header 'Content-Type: application/json' \
--data '[ { "entityType" : "sr_schema", "entityName" : "lsrc-g2p81:.:100003", "typeName" : "favorites" } ]' | jq .
出力は以下のようになります。
"typeName": "favorites",
"entityStatus": "ACTIVE",
"entityType": "sr_schema",
"entityName": "lsrc-g2p81:.:100003"
Cloud Console で stocks_buy-value
スキーマに移動し、タグを付加したバージョンに favorites
が関連付けられていることを確認します。

サブジェクトバージョンを指定したスキーマの取得¶
サブジェクト名のプレフィックスが stocks
になっている、バージョン 1 の値スキーマをすべて一覧表示します。
curl --silent -u <API-KEY>:<API-SECRET> \
--request GET \
--url 'https://<SCHEMA-REGISTRY-URL>/catalog/v1/search/attribute?type=sr_subject_version&attrName=name&attrValuePrefix=stocks' | jq .
出力は以下のようになります。
"searchParameters": {
"includeDeleted": false,
"limit": 0,
"offset": 0
},
"types": [
"sr_subject_version"
],
"entities": [
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614710010055,
"qualifiedName": "lsrc-g2p81:.:stocks-value:1",
"name": "stocks-value",
"context": ".",
"id": 100001,
"nameLower": "stocks-value",
"tenant": "lsrc-g2p81"
},
"guid": "ba600e7a-0093-41b3-8d68-38ba730323bc",
"status": "ACTIVE",
"displayText": "stocks-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614902357913,
"qualifiedName": "lsrc-g2p81:.:stocks_under_100-value:1",
"name": "stocks_under_100-value",
"context": ".",
"id": 100002,
"nameLower": "stocks_under_100-value",
"tenant": "lsrc-g2p81"
},
"guid": "7e2e652b-3b53-4461-b634-c8a58186b28d",
"status": "ACTIVE",
"displayText": "stocks_under_100-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614902369755,
"qualifiedName": "lsrc-g2p81:.:stocks_under_100-value:2",
"name": "stocks_under_100-value",
"context": ".",
"id": 100003,
"nameLower": "stocks_under_100-value",
"tenant": "lsrc-g2p81"
},
"guid": "799fde4c-a43b-4820-896c-e1f5fa2ba399",
"status": "ACTIVE",
"displayText": "stocks_under_100-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614902422050,
"qualifiedName": "lsrc-g2p81:.:stocks_buy-value:2",
"name": "stocks_buy-value",
"context": ".",
"id": 100003,
"nameLower": "stocks_buy-value",
"tenant": "lsrc-g2p81"
},
"guid": "59f3ced1-a303-4712-ae7a-f720b9261084",
"status": "ACTIVE",
"displayText": "stocks_buy-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614902418968,
"qualifiedName": "lsrc-g2p81:.:stocks_buy-value:1",
"name": "stocks_buy-value",
"context": ".",
"id": 100002,
"nameLower": "stocks_buy-value",
"tenant": "lsrc-g2p81"
},
"guid": "785f7f6f-5b7b-4695-bea7-d9b0a6df1947",
"status": "ACTIVE",
"displayText": "stocks_buy-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614902469162,
"qualifiedName": "lsrc-g2p81:.:stocks_sell-value:2",
"name": "stocks_sell-value",
"context": ".",
"id": 100003,
"nameLower": "stocks_sell-value",
"tenant": "lsrc-g2p81"
},
"guid": "4abf45bd-46e9-4ec5-a959-e95a6010b166",
"status": "ACTIVE",
"displayText": "stocks_sell-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
},
{
"typeName": "sr_subject_version",
"attributes": {
"createTime": 1614902466440,
"qualifiedName": "lsrc-g2p81:.:stocks_sell-value:1",
"name": "stocks_sell-value",
"context": ".",
"id": 100002,
"nameLower": "stocks_sell-value",
"tenant": "lsrc-g2p81"
},
"guid": "bfea548e-a99f-48f1-b310-e99f25e908c4",
"status": "ACTIVE",
"displayText": "stocks_sell-value",
"classificationNames": [],
"meaningNames": [],
"meanings": [],
"isIncomplete": false,
"labels": []
}