

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat skema
<a name="schema-registry-gs4"></a>

Anda dapat membuat sebuah skema menggunakan API AWS Glue atau konsol AWS Glue. 

**AWS Glue API**  
Anda dapat menggunakan langkah-langkah ini untuk melakukan tugas ini menggunakan API AWS Glue.

Untuk menambahkan sebuah skema baru, gunakan API [CreateSchema tindakan (Python: create\_schema)](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-CreateSchema).

Menentukan sebuah struktur `RegistryId` untuk menunjukkan registri untuk skema tersebut. Atau, menghilangkan `RegistryId` untuk menggunakan registri default.

Menentukan `SchemaName` yang terdiri dari huruf, angka, tanda hubung, atau garis bawah, dan `DataFormat` sebagai **AVRO** atau **JSON**. `DataFormat` setelah ditetapkan pada skema tidak dapat diubah.

Menentukan mode `Compatibility`:
+ *Backward (disarankan)* — Konsumen dapat membaca versi saat ini dan sebelumnya.
+ *Backward all* — Konsumen dapat membaca versi terkini dan semua versi sebelumnya.
+ *Forward* — Konsumen dapat membaca baik versi saat ini dan versi berikutnya.
+ *Forward all* — Konsumen dapat membaca baik versi saat ini dan semua versi berikutnya.
+ *Full* — Kombinasi dari Backward dan Forward.
+ *Full all* — Kombinasi dari Backward all dan Forward all.
+ *None* — Tidak ada pemeriksaan kompatibilitas yang dilakukan.
+ *Disabled* — Mencegah versioning apapun untuk skema ini.

Opsional, tentukan `Tags` untuk skema Anda. 

Tentukan a `SchemaDefinition` untuk menentukan skema dalam format data Avro, JSON, atau Protobuf. Lihat contoh-contohnya.

Untuk format data Avro:

```
aws glue create-schema --registry-id RegistryName="registryName1" --schema-name testschema --compatibility NONE --data-format AVRO --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
```

```
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1" --schema-name testschema --compatibility NONE --data-format AVRO  --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
```

Untuk format data JSON:

```
aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
```

```
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
```

Untuk format data Protobuf:

```
aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
```

```
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
```

**AWS Glue konsol**  
Untuk menambahkan sebuah skema baru menggunakan konsol AWS Glue:

1. Masuk ke Konsol AWS Manajemen dan buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue\).

1. Di panel navigasi, pada **Katalog data**, pilih **Skema**.

1. Pilih **Tambahkan skema**.

1. Masukkan **Nama skema**, terdiri dari huruf, angka, tanda hubung, garis bawah, tanda dolar, atau tanda hash. Nama ini tidak dapat diubah.

1. Pilih **Registri** di mana skema akan disimpan dari menu drop-down. Registri induk tidak dapat diubah setelah dibuat.

1. Biarkan **Format data** sebagai *Apache Avro* atau *JSON*. Format ini berlaku untuk semua versi skema ini.

1. Pilih **Mode kompatibilitas**.
   + *Backward (disarankan)* — Penerima dapat membaca versi saat ini dan sebelumnya.
   + *Backward all* — Penerima dapat membaca versi terkini dan semua versi sebelumnya.
   + *Forward* — Pengirim dapat menulis baik versi terkini dan versi sebelumnya.
   + *Forward all* — Pengirim dapat menulis versi terkini dan semua versi sebelumnya.
   + *Full* — Kombinasi dari Backward dan Forward.
   + *Full all* — Kombinasi dari Backward All dan Forward All.
   + *None* — Tidak ada pemeriksaan kompatibilitas yang dilakukan.
   + *Disabled* — Mencegah versioning apapun untuk skema ini.

1. Masukkan **Deskripsi** opsional untuk registri yang terdiri hingga 250 karakter.  
![Contoh membuat sebuah skema.](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/schema_reg_create_schema.png)

1. Opsional, terapkan satu atau beberapa tag untuk skema Anda. Pilih **Tambahkan tag** dan tentukan **Kunci tag** dan **Nilai tag** opsional.

1. Pada kotak **Versi skema pertama**, masukkan atau tempel skema awal Anda.

   Untuk format Avro, lihat [Bekerja dengan format data Avro](#schema-registry-avro)

   Untuk format JSON, lihat [Bekerja dengan format data JSON](#schema-registry-json)

1. Opsional, pilih **Tambahkan metadata** untuk menambahkan metadata versi untuk membuat anotasi atau mengklasifikasikan versi skema Anda.

1. Pilih **Buat skema dan versi**.

![Contoh membuat sebuah skema.](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/schema_reg_create_schema2.png)


Skema dibuat dan muncul dalam daftar pada **Skema**.

## Bekerja dengan format data Avro
<a name="schema-registry-avro"></a>

Avro menyediakan layanan serialisasi data dan pertukaran data. Avro menyimpan definisi data dalam format JSON sehingga mudah untuk dibaca dan ditafsirkan. Data itu sendiri disimpan dalam format biner.

Untuk informasi tentang cara mendefinisikan skema Apache Avro, lihat [Spesifikasi Apache Avro](http://avro.apache.org/docs/current/spec.html).

## Bekerja dengan format data JSON
<a name="schema-registry-json"></a>

Data dapat diserialisasi dengan format JSON. [Format Skema JSON](https://json-schema.org/) mendefinisikan standar untuk format Skema JSON.