CREATE SCHEMA_REGISTRY

Syntax

CREATE SCHEMA_REGISTRY schema_registry_name
WITH (schema_registry_parameter = value [, ... ]);

Description

Schema registries are useful for storing and managing the many schemas that may define a user's data streams. These schemas are necessary for a system to marshal and unmarshal records and ensure the native data format matches the intended format. After you create a schema registry, look at how to UPDATE STORE to attach the schema registry to a store. The newly-created schema registry is accessible to the creator as well as anyone who has been given permissions.

Only a role with CREATE_SCHEMA_REGISTRY privilege can create a schema registry.

Notes

  • A schema registry is required for working with Avro data.

  • Currently supported schema registries are Confluent Cloud and Confluent Platform.

  • Known limitation: Confluent Schema Registry must use the default TopicNameStrategy for creating subject names.

Arguments

schema_registry_name

Specifies the name of the new schema registry. If the name is case sensitive you must wrap it in double quotes; otherwise the system uses the lower case name.

WITH (schema_registry_parameter = value [, …​ ])

This clause specifies schema registry parameters; see schema registry parameters below for more information.

Schema Registry Parameters

Parameter Name
Description

type

Type of schema registry.

Required: Yes Type: SCHEMA_REGISTRY_TYPE Valid values: CONFLUENT, CONFLUENT_CLOUD

access_region

Region in which the schema registry resides.

uris

List of comma-separated host:port URIs to connect to the schema registry.

Required: Yes, unless specified in properties.file Type: String Valid values: Valid URI that corresponds with the schema registry.

properties.file

Optional. The file path to a .yaml file containing other schema registry parameters.

Required: No Default value: None Type: String Valid values: File path in current user's filesystem

Confluent Cloud Schema Registry Specific Parameters

Parameter Name
Description

confluent_cloud.key

Credentials key for the Confluent Cloud schema registry.

Required: No Default: None Type: String Valid values: The key corresponding with the credential key pair associated with the schema registry.

confluent_cloud.secret

Credentials secret for the Confluent Cloud schema registry.

Required: No Default: None Type: String Valid values: The secret corresponding with the credential key pair associated with the schema registry.

Confluent Platform Schema Registry Specific Parameters

Parameter Name
Description

confluent.username

Login username for the Confluent Platform schema registry. Required: No Default: None Type: String

confluent.password

Login password for the Confluent Platform schema registry. Required: No Default: None Type: String

tls.client.cert_file

File path to client certificate for mutual TLS authentication in PEM format. Required: No Default: None Type: String

tls.client.key_file

File path to client certificate key for mutual TLS authentication in PEM format. Required: No Default: None Type: String

Examples

Create a Confluent Cloud Schema Registry

The following example statement creates a new CONFLUENT_CLOUD schema registry named ConfluentCloudSR:

<no-db>/<no-store># CREATE SCHEMA_REGISTRY "ConfluentCloudSR" WITH (
    'type' = CONFLUENT_CLOUD,
    'access_region' = "AWS us-east-1",
    'uris' = 'https://abcd-efghi.us-east-2.aws.confluent.cloud',
    'confluent_cloud.key' = 'fake_key',
    'confluent_cloud.secret' = 'fake_secret'
);
+-----------------+------------------+------------+------------------------------------------+
|  Type           |  Name            |  Command   |  Summary                                 |
+=================+==================+============+==========================================+
| schema registry | ConfluentCloudSR | CREATE     | schema registry "ConfluentCloudSR" was   |
|                 |                  |            | successfully created                     |
+-----------------+------------------+------------+------------------------------------------+

Create a Confluent Platform Schema Registry

The following example statement creates a new CONFLUENT schema registry named ConfluentPlatformSR:

<no-db>/<no-store># CREATE SCHEMA_REGISTRY "ConfluentPlatformSR" WITH (
    'type' = CONFLUENT,
    'access_region' = "AWS us-east-1",
    'uris' = 'https://url.to.schema.registry.listener:8081',
    'confluent.username' = 'fake_username',
    'confluent.password' = 'fake_password',
    'tls.client.cert_file' = '@/path/to/tls/client_cert_file',
    'tls.client.key_file' = '@/path/to/tls_key'
);
+-----------------+---------------------+------------+------------------------------------------+
|  Type           |  Name               |  Command   |  Summary                                 |
+=================+=====================+============+==========================================+
| schema registry | ConfluentPlatformSR | CREATE     | schema registry "ConfluentPlatformSR"    |
|                 |                     |            | was successfully created                 |
+-----------------+---------------------+------------+------------------------------------------+

Create a schema registry with credentials from a file

The following creates a new CONFLUENT_CLOUD schema registry named ConfluentCloudSR:

$ cat /User/user1/schema_registry/cc/properties.yaml
access_region: "AWS us-east-2"
uris: "https://abcd-efghi.us-east-2.aws.confluent.cloud"
confluent_cloud.key: "SR_KEY"
confluent_cloud.secret: "SR_SECRET"
CREATE SCHEMA_REGISTRY "ConfluentCloudSR" WITH (
    'type' = CONFLUENT_CLOUD,
    'properties.file' = '@/User/user1/schema_registry/cc/properties.yaml'
);

Last updated