Memulai dengan Schema Registry - AWS Glue

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

Memulai dengan Schema Registry

Bagian berikut memberikan gambaran umum dan memandu Anda dalam menyiapkan dan menggunakan Registri Skema. Untuk informasi tentang konsep dan komponen Registri Skema, lihat Registri Skema AWS Glue.

Instalasi SerDe Perpustakaan

catatan

Prasyarat: Sebelum menyelesaikan langkah-langkah berikut, Anda harus memiliki sebuah klaster Amazon Managed Streaming for Apache Kafka (Amazon MSK) atau Apache Kafka yang berjalan. Produsen dan konsumen Anda harus berjalan pada Java 8 atau yang lebih tinggi.

SerDe Pustaka menyediakan kerangka kerja untuk serialisasi dan deserialisasi data.

Anda akan menginstal serializer sumber terbuka untuk aplikasi Anda yang menghasilkan data (secara kolektif “"-serializer"). Serializer menangani serialisasi, kompresi, dan interaksi dengan Registri Skema. Serializer secara otomatis mengekstrak skema dari catatan yang ditulis ke tujuan yang kompatibel dengan Registri Skema, seperti Amazon MSK. Demikian juga, Anda akan menginstal deserializer sumber terbuka pada aplikasi Anda yang mengkonsumsi data.

Untuk menginstal perpustakaan pada produsen dan konsumen:

  1. Di dalam file pom.xml baik dari produsen dan konsumen, tambahkan dependensi ini melalui kode di bawah ini:

    <dependency> <groupId>software.amazon.glue</groupId> <artifactId>schema-registry-serde</artifactId> <version>1.1.5</version> </dependency>

    Atau, Anda dapat mengkloning Repositori Github Registri Skema AWS Glue.

  2. Siapkan produsen Anda dengan properti yang diperlukan ini:

    props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); // Can replace StringSerializer.class.getName()) with any other key serializer that you may use props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, GlueSchemaRegistryKafkaSerializer.class.getName()); props.put(AWSSchemaRegistryConstants.AWS_REGION, "us-east-2"); properties.put(AWSSchemaRegistryConstants.DATA_FORMAT, "JSON"); // OR "AVRO"

    Jika tidak ada skema yang ada, maka pendaftaran otomatis harus Anda aktifkan (langkah berikutnya). Jika Anda memiliki skema yang ingin Anda terapkan, maka ganti "my-schema" dengan nama skema Anda. Selain itu, "registry-name" harus disediakan jika skema pendaftaran otomatis dimatikan. Jika skema dibuat menggunakan "default-registry", maka nama registri dapat dihilangkan.

  3. (Opsional) Mengatur salah satu properti produsen opsional ini. Untuk deskripsi properti terperinci, lihat ReadMe file.

    props.put(AWSSchemaRegistryConstants.SCHEMA_AUTO_REGISTRATION_SETTING, "true"); // If not passed, uses "false" props.put(AWSSchemaRegistryConstants.SCHEMA_NAME, "my-schema"); // If not passed, uses transport name (topic name in case of Kafka, or stream name in case of Kinesis Data Streams) props.put(AWSSchemaRegistryConstants.REGISTRY_NAME, "my-registry"); // If not passed, uses "default-registry" props.put(AWSSchemaRegistryConstants.CACHE_TIME_TO_LIVE_MILLIS, "86400000"); // If not passed, uses 86400000 (24 Hours) props.put(AWSSchemaRegistryConstants.CACHE_SIZE, "10"); // default value is 200 props.put(AWSSchemaRegistryConstants.COMPATIBILITY_SETTING, Compatibility.FULL); // Pass a compatibility mode. If not passed, uses Compatibility.BACKWARD props.put(AWSSchemaRegistryConstants.DESCRIPTION, "This registry is used for several purposes."); // If not passed, constructs a description props.put(AWSSchemaRegistryConstants.COMPRESSION_TYPE, AWSSchemaRegistryConstants.COMPRESSION.ZLIB); // If not passed, records are sent uncompressed

    Pendaftaran otomatis mendaftarkan versi skema dengan menggunakan registri default ("default-registry"). Jika SCHEMA_NAME tidak ditentukan dalam langkah sebelumnya, maka nama topik disimpulkan sebagai SCHEMA_NAME.

    Lihat Pembuatan versi dan kompatibilitas skema untuk informasi lebih lanjut tentang mode kompatibilitas.

  4. Siapkan konsumen Anda dengan properti yang diperlukan berikut ini:

    props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, GlueSchemaRegistryKafkaDeserializer.class.getName()); props.put(AWSSchemaRegistryConstants.AWS_REGION, "us-east-2"); // Pass an Wilayah AWS props.put(AWSSchemaRegistryConstants.AVRO_RECORD_TYPE, AvroRecordType.GENERIC_RECORD.getName()); // Only required for AVRO data format
  5. (Opsional) Mengatur properti konsumen opsional ini. Untuk deskripsi properti terperinci, lihat ReadMe file.

    properties.put(AWSSchemaRegistryConstants.CACHE_TIME_TO_LIVE_MILLIS, "86400000"); // If not passed, uses 86400000 props.put(AWSSchemaRegistryConstants.CACHE_SIZE, "10"); // default value is 200 props.put(AWSSchemaRegistryConstants.SECONDARY_DESERIALIZER, "com.amazonaws.services.schemaregistry.deserializers.external.ThirdPartyDeserializer"); // For migration fall back scenario

Menggunakan AWS CLI untuk API Registri Skema AWS Glue

Untuk menggunakan AWS CLI untuk API Registri Skema AWS Glue, pastikan untuk memperbarui AWS CLI ke versi terbaru.

Membuat registri

Anda dapat menggunakan registri default atau membuat banyak registri baru yang diperlukan dengan menggunakan API AWS Glue atau konsol AWS Glue.

API AWS Glue

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

Untuk menambahkan sebuah registri baru, gunakan API CreateRegistry tindakan (Python: create_registry). Menentukan RegistryName sebagai nama registri yang akan dibuat, dengan panjang maksimal 255 karakter, hanya berisi huruf, angka, tanda hubung, garis bawah, tanda dolar, atau tanda hash.

Tentukan Description sebagai string yang panjangnya tidak lebih dari 2048 byte, cocok dengan pola string multi-baris alamat URI.

Opsional, menentukan satu atau beberapa Tags untuk registri Anda, sebagai sebuah susunan peta pasangan nilai kunci.

aws glue create-registry --registry-name registryName1 --description description

Ketika registri Anda sudah dibuat, Amazon Resource Name (ARN) ditetapkan untuknya, yang dapat Anda lihat di RegistryArn dari respons API. Setelah Anda membuat sebuah registri, buatlah satu atau beberapa skema untuk registri tersebut.

Konsol AWS Glue

Untuk menambahkan sebuah registri baru di konsol AWS Glue:

  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Di panel navigasi, pada Katalog data, pilih Registri Skema.

  3. Pilih Tambah registri.

  4. Masukkan sebuah Nama Registri untuk registri tersebut, yang terdiri dari huruf, angka, tanda hubung, atau garis bawah. Nama ini tidak dapat diubah.

  5. Masukkan Deskripsi (opsional) untuk registri.

  6. Opsional, terapkan satu atau beberapa tag ke registri Anda. Pilih Tambahkan tag dan tentukan Kunci tag dan Nilai tag opsional.

  7. Pilih Tambah registri.

Contoh membuat sebuah registri.

Ketika registri Anda dibuat, Amazon Resource Name (ARN) ditetappkan padanya, yang dapat Anda lihat dengan memilih registri dari daftar di Registri Skema. Setelah Anda membuat sebuah registri, buatlah satu atau beberapa skema untuk registri tersebut.

Berurusan dengan catatan tertentu (JAVA POJO) untuk JSON

Anda dapat menggunakan sebuah plain old Java object (POJO) dan memberikan objek tersebut sebagai catatan. Ini mirip dengan maksud dari catatan spesifik di AVRO. mbknor-jackson-jsonschemaDapat menghasilkan skema JSON untuk POJO yang dilewati. Perpustakaan ini juga dapat memasukkan informasi tambahan dalam skema JSON.

Perpustakaan Registri Skema AWS Glue menggunakan bidang "ClassName" yang dimasukkan dalam skema untuk memberikan nama kelas terklasifikasi sepenuhnya. Bidang "ClassName" digunakan oleh deserializer untuk melakukan deserialisasi ke objek dari kelas itu.

Example class : @JsonSchemaDescription("This is a car") @JsonSchemaTitle("Simple Car Schema") @Builder @AllArgsConstructor @EqualsAndHashCode // Fully qualified class name to be added to an additionally injected property // called className for deserializer to determine which class to deserialize // the bytes into @JsonSchemaInject( strings = {@JsonSchemaString(path = "className", value = "com.amazonaws.services.schemaregistry.integrationtests.generators.Car")} ) // List of annotations to help infer JSON Schema are defined by https://github.com/mbknor/mbknor-jackson-jsonSchema public class Car { @JsonProperty(required = true) private String make; @JsonProperty(required = true) private String model; @JsonSchemaDefault("true") @JsonProperty public boolean used; @JsonSchemaInject(ints = {@JsonSchemaInt(path = "multipleOf", value = 1000)}) @Max(200000) @JsonProperty private int miles; @Min(2000) @JsonProperty private int year; @JsonProperty private Date purchaseDate; @JsonProperty @JsonFormat(shape = JsonFormat.Shape.NUMBER) private Date listedDate; @JsonProperty private String[] owners; @JsonProperty private Collection<Float> serviceChecks; // Empty constructor is required by Jackson to deserialize bytes // into an Object of this class public Car() {} }

Membuat skema

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

API AWS Glue

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).

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;}"
Konsol AWS Glue

Untuk menambahkan sebuah skema baru menggunakan konsol AWS Glue:

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

  2. Di panel navigasi, pada Katalog data, pilih Skema.

  3. Pilih Tambahkan skema.

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

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

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

  7. 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.

  8. Masukkan Deskripsi opsional untuk registri yang terdiri hingga 250 karakter.

    Contoh membuat sebuah skema.
  9. Opsional, terapkan satu atau beberapa tag untuk skema Anda. Pilih Tambahkan tag dan tentukan Kunci tag dan Nilai tag opsional.

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

    Untuk format Avro, lihat Bekerja dengan format data Avro

    Untuk format JSON, lihat Bekerja dengan format data JSON

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

  12. Pilih Buat skema dan versi.

Contoh membuat sebuah skema.

Skema dibuat dan muncul dalam daftar pada Skema.

Bekerja dengan format data Avro

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.

Bekerja dengan format data JSON

Data dapat diserialisasi dengan format JSON. Format Skema JSON mendefinisikan standar untuk format Skema JSON.

Memperbarui skema atau registri

Setelah dibuat Anda dapat mengedit skema Anda, versi skema, atau registri Anda.

Memperbarui registri

Anda dapat memperbarui sebuah registri dengan menggunakan API AWS Glue atau konsol AWS Glue. Nama registri yang sudah ada tidak dapat Anda edit. Anda dapat mengedit deskripsi untuk sebuah registri.

API AWS Glue

Untuk memperbarui registri yang sudah ada, gunakan API UpdateRegistry tindakan (Python: update_registry).

Menentukan sebuah struktur RegistryId untuk menunjukkan registri yang ingin Anda perbarui. Berikan sebuah Description untuk mengubah deskripsi untuk sebuah registri.

aws glue update-registry --description updatedDescription --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1"
Konsol AWS Glue

Untuk memperbarui sebuah registri menggunakan konsol AWS Glue:

  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Di panel navigasi, pada Katalog data, pilih Registri Skema.

  3. Pilih sebuah registri dari daftar registri, dengan mencentang kotaknya.

  4. Di menu Tindakan, pilih Edit registri.

Memperbarui skema

Anda dapat memperbarui pengaturan deskripsi atau kompatibilitas untuk sebuah skema.

Untuk memperbarui skema yang sudah ada, gunakan API UpdateSchema tindakan (Python: update_schema).

Menentukan sebuah struktur SchemaId untuk menunjukkan skema yang ingin Anda perbarui. Salah satu dari VersionNumber atau Compatibility harus disediakan.

Contoh kode 11:

aws glue update-schema --description testDescription --schema-id SchemaName="testSchema1",RegistryName="registryName1" --schema-version-number LatestVersion=true --compatibility NONE
aws glue update-schema --description testDescription --schema-id SchemaArn="arn:aws:glue:us-east-2:901234567890:schema/registryName1/testSchema1" --schema-version-number LatestVersion=true --compatibility NONE

Menambahkan versi skema

Ketika Anda menambahkan sebuah versi skema, Anda akan perlu untuk membandingkan versi untuk memastikan skema baru akan diterima.

Untuk menambahkan versi baru ke sebuah skema yang ada, gunakan API RegisterSchemaVersion tindakan (Python: register_schema_version).

Menentukan sebuah struktur SchemaId untuk menunjukkan skema yang Anda ingin tambah versinya, dan sebuah SchemaDefinition untuk menentukan skemanya.

Contoh kode 12:

aws glue register-schema-version --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}" --schema-id SchemaArn="arn:aws:glue:us-east-1:901234567890:schema/registryName/testschema"
aws glue register-schema-version --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}" --schema-id SchemaName="testschema",RegistryName="testregistry"
  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Di panel navigasi, pada Katalog data, pilih Skema.

  3. Pilih skema dari daftar skema, dengan mencentang kotaknya.

  4. Pilih satu atau beberapa skema dari daftar, dengan mencentang kotak.

  5. Pada menu Tindakan, pilih Daftarkan versi baru.

  6. Pada kotak Versi baru, masukkan atau tempel skema baru Anda.

  7. Pilih Bandingkan dengan versi sebelumnya untuk melihat perbedaan dengan versi skema sebelumnya.

  8. Opsional, pilih Tambahkan metadata untuk menambahkan metadata versi untuk membuat anotasi atau mengklasifikasikan versi skema Anda. Masukkan Kunci dan Nilai opsional.

  9. Pilih Versi Registri.

Menambahkan sebuah versi skema.

Versi skema muncul pada daftar versi. Jika versi mengubah mode kompatibilitas, maka versi akan ditandai sebagai sebuah pos pemeriksaan.

Contoh perbandingan versi skema

Ketika Anda memilih untuk Bandingkan dengan versi sebelumnya, maka Anda akan melihat versi sebelumnya dan versi baru ditampilkan bersama-sama. Informasi yang diubah akan disorot sebagai berikut:

  • Kuning: menunjukkan ada perubahan informasi.

  • Hijau: menunjukkan ada penambahan konten dalam versi terbaru.

  • Merah: menunjukkan ada penghapusan konten dalam versi terbaru.

Anda juga dapat membandingkan dengan versi yang sebelumnya.

Contoh perbandingan sebuah versi skema.

Menghapus skema atau registri

Menghapus sebuah skema, versi skema, atau registri adalah tindakan permanen yang tidak dapat dibatalkan.

Menghapus skema

Anda mungkin ingin menghapus sebuah skema ketika itu akan tidak lagi digunakan dalam sebuah registri, dengan menggunakan AWS Management Console, atau API DeleteSchema tindakan (Python: delete_schema).

Menghapus satu atau beberapa skema adalah tindakan permanen yang tidak dapat dibatalkan. Pastikan bahwa skema atau skema-skema itu tidak lagi diperlukan.

Untuk menghapus sebuah skema dari registri, panggil API DeleteSchema tindakan (Python: delete_schema), dengan menentukan struktur SchemaId untuk mengidentifikasi skema.

Sebagai contoh:

aws glue delete-schema --schema-id SchemaArn="arn:aws:glue:us-east-2:901234567890:schema/registryName1/schemaname"
aws glue delete-schema --schema-id SchemaName="TestSchema6-deleteschemabyname",RegistryName="default-registry"
Konsol AWS Glue

Untuk menghapus sebuah skema dari konsol AWS Glue:

  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Di panel navigasi, pada Katalog data, pilih Registri Skema.

  3. Pilih registri yang berisi skema Anda dari daftar registri.

  4. Pilih satu atau beberapa skema dari daftar, dengan mencentang kotak.

  5. Di menu Tindakan, pilih Hapus skema.

  6. Masukkan teks Delete di bidang untuk mengonfirmasi penghapusan.

  7. Pilih Hapus.

Skema yang Anda tentukan akan dihapus dari registri.

Menghapus versi skema

Karena skema terakumulasi dalam registri, Anda mungkin ingin menghapus versi skema yang tidak diinginkan menggunakan AWS Management Console, atau API DeleteSchemaVersions tindakan (Python: delete_schema_versions). Menghapus satu atau beberapa versi skema adalah tindakan permanen yang tidak dapat dibatalkan. Pastikan bahwa versi skema tersebut tidak diperlukan lagi.

Ketika menghapus versi skema, perhatikan batasan-batasan berikut:

  • Anda tidak dapat menghapus versi yang dikenai pemeriksaan.

  • Rentang versi berdekatan tidak boleh lebih dari 25.

  • Versi skema terbaru tidak boleh dalam status tertunda.

Menentukan struktur SchemaId untuk mengidentifikasi skema, dan menentukan Versions sebagai rentang versi yang akan dihapus. Untuk informasi lebih lanjut tentang menentukan versi atau rentang versi, lihat DeleteRegistry tindakan (Python: delete_registry). Versi skema yang Anda tentukan akan dihapus dari registri.

Memanggil API ListSchemaVersions tindakan (Python: list_schema_versions) setelah panggilan ini akan mencantumkan status versi yang dihapus.

Sebagai contoh:

aws glue delete-schema-versions --schema-id SchemaName="TestSchema6",RegistryName="default-registry" --versions "1-1"
aws glue delete-schema-versions --schema-id SchemaArn="arn:aws:glue:us-east-2:901234567890:schema/default-registry/TestSchema6-NON-Existent" --versions "1-1"
  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Di panel navigasi, pada Katalog data, pilih Registri Skema.

  3. Pilih registri yang berisi skema Anda dari daftar registri.

  4. Pilih satu atau beberapa skema dari daftar, dengan mencentang kotak.

  5. Di menu Tindakan, pilih Hapus skema.

  6. Masukkan teks Delete di bidang untuk mengonfirmasi penghapusan.

  7. Pilih Hapus.

Versi skema yang Anda tentukan akan dihapus dari registri.

Menghapus registri

Anda mungkin ingin menghapus sebuah registri ketika skema yang ada di dalamnya tidak lagi diatur berdasarkan registri itu. Anda harus menetapkan kembali skema tersebut ke registri yang lain.

Menghapus satu atau beberapa registri adalah tindakan permanen yang tidak dapat dibatalkan. Pastikan bahwa registri atau registri-registri tersebut tidak lagi diperlukan.

Registri default dapat dihapus menggunakan AWS CLI.

API AWS Glue

Untuk menghapus registri secara keseluruhan termasuk skema dan semua versinya, panggil API DeleteRegistry tindakan (Python: delete_registry). Menentukan sebuah struktur RegistryId untuk mengidentifikasi registri.

Sebagai contoh:

aws glue delete-registry --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1"
aws glue delete-registry --registry-id RegistryName="TestRegistry-deletebyname"

Untuk mendapatkan status operasi hapus, Anda dapat memanggil API GetRegistry setelah panggilan asinkron.

Konsol AWS Glue

Untuk menghapus sebuah registri dari konsol AWS Glue:

  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Di panel navigasi, pada Katalog data, pilih Registri Skema.

  3. Pilih sebuah registri dari daftar, dengan mencentang kotaknya.

  4. Di menu Tindakan, pilih Hapus registri.

  5. Masukkan teks Delete di bidang untuk mengonfirmasi penghapusan.

  6. Pilih Hapus.

Registri yang Anda pilih akan dihapus dari AWS Glue.

Contoh IAM untuk serializer

catatan

Kebijakan terkelola AWS memberikan izin yang diperlukan untuk kasus penggunaan umum. Untuk informasi tentang menggunakan kebijakan terkelola untuk mengelola Registri Skema, lihat AWS kebijakan terkelola (standar) untuk AWS Glue.

Untuk serializer, Anda harus membuat sebuah kebijakan yang paling tidak serupa dengan yang di bawah ini untuk memberikan Anda kemampuan untuk menemukan schemaVersionId untuk definisi skema yang diberikan. Catatan, Anda harus memiliki izin baca pada registri agar dapat membaca skema dalam registri tersebut. Anda dapat membatasi registri yang dapat dibaca dengan menggunakan klausul Resource.

Contoh kode 13:

{ "Sid" : "GetSchemaByDefinition", "Effect" : "Allow", "Action" : [ "glue:GetSchemaByDefinition" ], "Resource" : ["arn:aws:glue:us-east-2:012345678:registry/registryname-1", "arn:aws:glue:us-east-2:012345678:schema/registryname-1/schemaname-1", "arn:aws:glue:us-east-2:012345678:schema/registryname-1/schemaname-2" ] }

Selanjutnya, Anda juga dapat memungkinkan produsen untuk membuat skema dan versi baru dengan memasukkan metode tambahan berikut. Catatan, Anda harus dapat memeriksa registri agar dapat menambahkan/menghapus/mengembangkan skema di dalamnya. Anda dapat membatasi registri yang dapat diperiksa dengan menggunakan klausul Resource.

Contoh kode 14:

{ "Sid" : "RegisterSchemaWithMetadata", "Effect" : "Allow", "Action" : [ "glue:GetSchemaByDefinition", "glue:CreateSchema", "glue:RegisterSchemaVersion", "glue:PutSchemaVersionMetadata", ], "Resource" : ["arn:aws:glue:aws-region:123456789012:registry/registryname-1", "arn:aws:glue:aws-region:123456789012:schema/registryname-1/schemaname-1", "arn:aws:glue:aws-region:123456789012:schema/registryname-1/schemaname-2" ] }

Contoh IAM untuk deserializer

Untuk deserializer (sisi konsumen), Anda harus membuat kebijakan yang serupa dengan yang di bawah ini untuk memungkinkan deserializer mengambil skema dari Registri Skema untuk melakukan deserialisasi. Catatan, Anda harus dapat memeriksa registri agar dapat mengambil skema di dalamnya.

Contoh kode 15:

{ "Sid" : "GetSchemaVersion", "Effect" : "Allow", "Action" : [ "glue:GetSchemaVersion" ], "Resource" : ["*"] }

Konektivitas pribadi menggunakan AWS PrivateLink

Anda dapat menggunakan AWS PrivateLink untuk menghubungkan VPC produsen data Anda ke AWS Glue dengan menentukan VPC endpoint antarmuka untuk AWS Glue. Ketika Anda menggunakan titik akhir antarmuka VPC, komunikasi antara VPC dan AWS Glue dilakukan sepenuhnya di jaringan AWS. Untuk informasi selengkapnya, lihat Menggunakan AWS Glue dengan Titik Akhir VPC.

Mengakses metrik Amazon CloudWatch

CloudWatch Metrik Amazon tersedia sebagai bagian dari CloudWatch tingkat gratis. Anda dapat mengakses metrik ini di CloudWatch Konsol. Metrik tingkat API meliputi CreateSchema (Sukses dan Latensi),, (Sukses dan Latensi) GetSchemaByDefinition, (Sukses dan Latensi), GetSchemaVersion (Sukses dan Latensi), RegisterSchemaVersion (Sukses dan Latensi). PutSchemaVersionMetadata Metrik tingkat sumber daya termasuk Registry. ThrottledByLimit, SchemaVersion. ThrottledByLimit, SchemaVersion .Ukuran.

Contoh AWS CloudFormation template untuk Schema Registry

Berikut ini adalah contoh templat untuk membuat sumber daya Registri Skema di AWS CloudFormation. Untuk membuat tumpukan ini di akun Anda, salin templat di atas ke dalam file SampleTemplate.yaml, dan jalankan perintah berikut:

aws cloudformation create-stack --stack-name ABCSchemaRegistryStack --template-body "'cat SampleTemplate.yaml'"

Contoh ini menggunakan AWS::Glue::Registry untuk membuat registri, AWS::Glue::Schema untuk membuat skema, AWS::Glue::SchemaVersion untuk membuat versi skema, dan AWS::Glue::SchemaVersionMetadata untuk mengisi metadata versi skema.

Description: "A sample CloudFormation template for creating Schema Registry resources." Resources: ABCRegistry: Type: "AWS::Glue::Registry" Properties: Name: "ABCSchemaRegistry" Description: "ABC Corp. Schema Registry" Tags: - Key: "Project" Value: "Foo" ABCSchema: Type: "AWS::Glue::Schema" Properties: Registry: Arn: !Ref ABCRegistry Name: "TestSchema" Compatibility: "NONE" DataFormat: "AVRO" SchemaDefinition: > {"namespace":"foo.avro","type":"record","name":"user","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":"int"}]} Tags: - Key: "Project" Value: "Foo" SecondSchemaVersion: Type: "AWS::Glue::SchemaVersion" Properties: Schema: SchemaArn: !Ref ABCSchema SchemaDefinition: > {"namespace":"foo.avro","type":"record","name":"user","fields":[{"name":"status","type":"string", "default":"ON"}, {"name":"name","type":"string"},{"name":"favorite_number","type":"int"}]} FirstSchemaVersionMetadata: Type: "AWS::Glue::SchemaVersionMetadata" Properties: SchemaVersionId: !GetAtt ABCSchema.InitialSchemaVersionId Key: "Application" Value: "Kinesis" SecondSchemaVersionMetadata: Type: "AWS::Glue::SchemaVersionMetadata" Properties: SchemaVersionId: !Ref SecondSchemaVersion Key: "Application" Value: "Kinesis"