Modul Schema Design dalam Data Management Service (DMS) mengelola perubahan skema dari tahap desain hingga publikasi. Gunakan modul ini untuk menetapkan aturan validasi, mengatur ambang batas risiko, dan mengonfigurasi proses persetujuan agar setiap perubahan skema memenuhi standar tim Anda sebelum mencapai lingkungan produksi.
Cara kerja
Tiket desain skema melewati dua tahap:
Save changes — DMS memvalidasi header tabel, bidang, dan indeks terhadap aturan desain Anda sebelum menyimpan.
Apply changes — DMS menghitung tingkat risiko berdasarkan aturan identifikasi risiko Anda, lalu mengarahkan tiket melalui proses persetujuan yang sesuai.
Ketika satu tiket mencakup beberapa instans—misalnya, mendesain di lingkungan pengujian dan mempublikasikan ke produksi—basic configuration items, aturan desain, dan aturan identifikasi risiko diterapkan pada base database (lingkungan pengujian). Namun, proses persetujuan menggunakan aturan keamanan yang dikonfigurasi untuk lingkungan produksi.
Konsep utama
Proses R&D
Proses R&D menentukan siklus hidup lengkap tiket desain skema dan merupakan item konfigurasi paling penting dalam modul Schema Design.
Satu proses terdiri dari dua jenis node:
| Jenis node | Deskripsi |
|---|---|
| Design | Menentukan lingkungan tempat perubahan skema didesain. Dihasilkan secara default dan tidak dapat dihapus. |
| Publish | Mempublikasikan perubahan skema setelah desain. Anda dapat menambahkan beberapa node Publish. |
Setiap node memiliki parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Node name | Nama hingga 10 karakter. |
| Database environment | Lingkungan tempat node dijalankan. |
| Execution strategy | Immediately: dijalankan segera setelah node disetujui. Periodically: dijalankan pada waktu terjadwal. Jika node disetujui sebelum waktu terjadwal, eksekusi tetap mengikuti jadwal. Jika disetujui setelah jadwal, node dibatalkan dan tidak dijalankan. |
| Can go back | Apakah node Publish dapat kembali ke node Design. |
| Can skip | Apakah node saat ini dapat dilewati. |
| Anchor | Menandai node sebagai titik henti. Setelah node anchor dipublikasikan, node berikutnya diblokir dan tiket masuk ke status Published. |
| Actions | Operasi yang tersedia pada node Publish, termasuk menghapus node tersebut. |
Untuk secara otomatis memajukan tiket ke status Ended setelah publikasi, tetapkan node terakhir dalam proses R&D sebagai anchor, lalu aktifkan Advance ticket to the Ended state when published.
Checkpoint
DMS mengevaluasi perubahan skema pada dua tahap, masing-masing dengan serangkaian checkpoint:
Saving changes — memvalidasi struktur sebelum menyimpan:
Save Changes and Validate Header
Save Changes and Validate Field
Save Changes and Validate Index
Applying changes — mengidentifikasi risiko dan menetapkan persetujuan:
Table Creation Risk Control
Field Change Risk Control
Index Change Risk Control
SQL Execution Risk Control
Approval Rule Validation
Empat checkpoint pertama menghitung tingkat risiko untuk perubahan Data Definition Language (DDL). Checkpoint Approval Rule Validation mengarahkan tiket ke proses persetujuan yang sesuai berdasarkan tingkat risiko tersebut.
Jika Approval Rule Validation tidak dikonfigurasi, DMS menggunakan fallback ke Default approval template for schema design yang ditetapkan dalam basic configuration items.
Faktor dan aksi
Aturan keamanan ditulis sebagai pernyataan Domain-Specific Language (DSL) menggunakan faktor dan aksi.
Faktor adalah variabel bawaan yang memberikan konteks tentang perubahan—misalnya, tipe tabel, ukuran tabel, atau lingkungan. Nama faktor menggunakan awalan @fac. diikuti nama tampilannya.
Faktor berikut tersedia untuk checkpoint Schema Design:
| Faktor | Deskripsi |
|---|---|
@fac.table_kind | Tipe tabel yang diubah. Nilai: new (baru dibuat), old (sudah ada). |
@fac.column_kind | Tipe bidang yang diubah. Nilai: new (baru dibuat), old (sudah ada). |
@fac.xxxx_old | Nilai saat ini dari bidang atau indeks yang sudah ada, digunakan untuk perbandingan. |
@fac.column_is_primary | Apakah bidang tersebut merupakan primary key. Nilai: true, false. |
@fac.column_type_support_default | Apakah tipe data bidang mendukung nilai default. Nilai: true (misalnya, CHAR), false (misalnya, TEXT). |
@fac.index_kind | Tipe indeks yang diubah. Nilai: new, old. |
@fac.index_column_count | Jumlah bidang dalam indeks. |
@fac.change_type | Tipe operasi DDL. Nilai: new (tambah), modify, delete. |
@fac.altered_table_size | Ukuran tabel yang diubah, dalam MB. |
@fac.online_execute | Apakah perubahan dapat dijalankan di lingkungan online. Nilai: true, false. |
@fac.change_risk_level | Tingkat risiko yang dihitung. Nilai: high, middle, low. |
@fac.env_type | Nama tampilan tipe lingkungan, seperti DEV atau PRODUCT. Lihat Ubah tipe lingkungan suatu instans. |
Actions adalah operasi yang dilakukan DMS ketika kondisi aturan terpenuhi. Nama aksi menggunakan awalan @act. diikuti nama tampilannya.
Aksi berikut tersedia untuk checkpoint Schema Design:
| Aksi | Deskripsi |
|---|---|
@act.block_submit | Memblokir pengiriman perubahan skema dan menampilkan pesan error. Digunakan dalam proses save changes. Format: @act.block_submit 'Alasan'. |
@act.show_warning | Menampilkan peringatan tanpa memblokir pengiriman. Digunakan dalam proses save changes. Format: @act.show_warning 'Pesan'. |
@act.mark_middle_risk | Menandai perubahan skema sebagai risiko menengah. Digunakan dalam identifikasi risiko. Format: @act.mark_middle_risk 'Alasan'. |
@act.mark_high_risk | Menandai perubahan skema sebagai risiko tinggi. Digunakan dalam identifikasi risiko. Format: @act.mark_high_risk 'Alasan'. |
@act.forbid_submit_publish | Menolak tiket. Digunakan dalam validasi aturan persetujuan. Format: @act.forbid_submit_publish 'Alasan'. |
@act.do_not_approve | Menentukan ID templat persetujuan. Untuk informasi lebih lanjut, lihat Konfigurasi proses persetujuan. |
@act.choose_approve_template | — |
@act.choose_approve_template_with_reason | — |
Templat aturan keamanan
DMS menyediakan templat aturan keamanan yang telah ditentukan sebelumnya untuk setiap checkpoint. Aktifkan langsung atau sesuaikan agar sesuai dengan kebutuhan Anda.
Templat dikelompokkan berdasarkan cakupannya:
Aturan penamaan dan struktur (diterapkan pada checkpoint validasi header dan bidang)
Nama tabel tidak boleh mengandung kata kunci tertentu
Panjang nama tabel dibatasi
Tabel baru harus memiliki deskripsi
Tabel baru harus menggunakan nama huruf kecil
Tabel baru harus memiliki primary key
Tabel baru harus memiliki unique key
Tabel baru harus memiliki bidang tertentu
Nama bidang tidak boleh mengandung kata kunci tertentu
Bidang baru harus memiliki deskripsi
Nama bidang harus menggunakan huruf besar atau kecil
Batasan bidang (diterapkan pada checkpoint validasi bidang)
Bidang non-null yang ditambahkan ke tabel yang sudah ada harus memiliki nilai default
Bidang yang sudah ada dan diubah dari nullable menjadi non-null harus memiliki nilai default
Bidang primary key harus bertipe
INTEGERSemua bidang dalam tabel baru harus diberi nilai
Panjang bidang
CHARdibatasiPanjang bidang
VARCHARdibatasi
Aturan indeks (diterapkan pada checkpoint validasi indeks)
Nama indeks tidak boleh mengandung kata kunci tertentu
Nama indeks harus menggunakan huruf besar atau kecil
Indeks baru harus berupa unique index
Indeks baru harus berupa normal index
Indeks baru harus bertipe
FULLTEXTIndeks baru harus bertipe
SPATIALJumlah bidang primary key dibatasi
Jumlah bidang dalam indeks dibatasi
Jumlah indeks per tabel dibatasi; peringatan dikirim saat ambang batas tercapai
Risk identification rules (diterapkan pada checkpoint kontrol risiko)
Jumlah shard tabel dalam tabel logis dibatasi
Jumlah primary key per tabel dibatasi
Jumlah indeks per tabel dibatasi
Bidang tertentu tidak boleh dihapus
Tipe data bidang untuk bidang baru dibatasi
Bidang tidak boleh diganti namanya menjadi nama tertentu
Bidang tidak boleh diubah menjadi tipe data tertentu
Primary key tidak boleh dihapus
Indeks tidak boleh dihapus
Primary key tidak boleh diubah menjadi indeks biasa
Kolom primary key tidak boleh mengandung bidang tertentu
Indeks normal tidak boleh diubah
Tipe indeks baru dibatasi
Instans tidak boleh merupakan core instance
Tabel tidak boleh menggunakan mesin penyimpanan tertentu
Tabel dikunci ketika ukurannya melebihi batas yang ditentukan
Aturan routing persetujuan (diterapkan pada checkpoint Approval Rule Validation)
Perubahan DDL pada skema database diblokir
Perubahan DDL pada skema database produksi diblokir
Perubahan DDL di lingkungan pengujian tidak memerlukan persetujuan
Proses persetujuan berbeda diterapkan untuk tingkat risiko berbeda di lingkungan produksi
Item konfigurasi lainnya
| Item Konfigurasi | Deskripsi |
|---|---|
| Field type configuration | Tipe data yang didukung untuk bidang yang baru ditambahkan. |
| Index type configuration | Tipe data yang didukung untuk indeks yang baru ditambahkan. |
| Table creation template | Templat yang telah memuat sebelumnya bidang dan indeks yang telah dikonfigurasi saat membuat tabel. Opsional—gunakan hanya jika tim Anda memerlukan struktur tabel standar. |
| Table character sets | Set karakter yang tersedia saat membuat tabel, seperti utf8 dan utf8mb4. |
| Prohibit modifying the original field data type | Mencegah perubahan tipe data bidang yang sudah ada saat memodifikasi tabel. |
| Prohibit deleting original fields | Mencegah penghapusan bidang yang sudah ada saat memodifikasi tabel. Menghapus bidang berisiko tinggi—aktifkan pengaturan ini kecuali Anda memiliki alasan khusus untuk tidak melakukannya. |
| Prohibit renaming original fields | Mencegah penggantian nama bidang yang sudah ada saat memodifikasi tabel. Mengganti nama bidang berisiko tinggi—aktifkan pengaturan ini kecuali Anda memiliki alasan khusus untuk tidak melakukannya. |
| Enable non-peer publishing | Secara default, perubahan pada suatu tabel hanya dapat dipublikasikan ke tabel dengan nama yang sama di database lain. Aktifkan opsi ini untuk mempublikasikan perubahan ke tabel apa pun. |
Penerbitan non-peer membawa risiko tinggi. Aktifkan hanya untuk kebutuhan khusus.
Ubah templat persetujuan default
Masuk ke Konsol DMS V5.0.
Arahkan pointer ke ikon
di pojok kiri atas dan pilih All Features > Security and Specifications (DBS) > Security Rules.Dalam mode normal, pilih Security and Specifications (DBS) > Security Rules di bilah navigasi atas.
-
Arahkan pointer ke ikon
di pojok kiri atas dan pilih . CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih di bilah navigasi atas.
-
Arahkan pointer ke ikon
di pojok kiri atas dan pilih . CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih di bilah navigasi atas.
Temukan set aturan keamanan yang akan diubah dan klik Edit di kolom Actions.
Di panel navigasi kiri halaman Details, klik tab Schema Design.
Klik Basic Configuration Items.
Temukan Default approval template for schema design dan klik Edit di kolom Actions.
Pada kotak dialog Change Configuration Item, klik Switch Approval Template.
Temukan templat yang akan diterapkan dan klik Select di kolom Actions.
Untuk melewati persetujuan tiket, klik Reset to Free of Approval.
Klik Submit.
Buat aturan keamanan
Masuk ke Konsol DMS V5.0.
Arahkan pointer ke ikon
di pojok kiri atas dan pilih All Features > Security and Specifications (DBS) > Security Rules.Dalam mode normal, pilih Security and Specifications (DBS) > Security Rules di bilah navigasi atas.
Temukan set aturan keamanan yang akan diubah dan klik Edit di kolom Actions.
Di panel navigasi kiri halaman Details, klik tab Schema Design.
Klik Create Rule di samping Actions.
Pada kotak dialog Create Rule - Schema Design, atur parameter berikut:
Parameter Wajib Deskripsi Checkpoints Ya Checkpoint untuk aturan ini. Lihat Checkpoint. Template database Tidak Templat bawaan sebagai dasar aturan. Setelah memilih checkpoint, klik Load from Template Database untuk menelusuri templat yang tersedia. Lihat Templat aturan keamanan. Rule name Ya Nama kustom untuk aturan. Diisi otomatis saat memuat dari templat. Rule DSL Ya Pernyataan DSL yang menentukan logika aturan. Diisi otomatis saat memuat dari templat. Klik Submit.
Temukan aturan yang baru dibuat (secara default berstatus Disabled) dan klik Enable di kolom Actions.
Pada pesan konfirmasi, klik OK.