Anda dapat mengonfigurasi kebijakan batasan untuk skema guna menentukan apakah akan memeriksa keberadaan tabel, konsistensi antara skema tabel, dan konsistensi tipe data bidang saat menulis data ke tabel. Kebijakan batasan yang didukung untuk skema bervariasi tergantung pada metode penulisan data yang digunakan. Topik ini menjelaskan kebijakan batasan untuk skema di LindormTSDB dan cara menerapkannya.
Skema model deret waktu Lindorm
LindormTSDB mengabstraksi konsep tabel deret waktu berdasarkan informasi model data bisnis dalam skenario deret waktu. Saat mengembangkan aplikasi berbasis LindormTSDB, Anda dapat mengakses tabel deret waktu dengan cara serupa seperti mengakses tabel relasional di database relasional tradisional.
Namun, model deret waktu berbeda dari model data relasional. Model deret waktu lebih mirip model data semi-terstruktur, yang mendukung kueri data berdasarkan struktur tertentu dan memungkinkan kolom ditambahkan atau dikurangi secara dinamis dalam manajemen kinerja aplikasi (APM), IoT, atau skenario industri tradisional. Struktur model data semi-terstruktur ini berbeda dari struktur tabular model data yang terkait dengan database relasional. Dalam skenario bisnis nyata, model data yang dihasilkan oleh perangkat sering berubah karena perangkat terus ditingkatkan, diperbarui, atau direvisi. Sebagai contoh, jumlah bidang yang dihasilkan oleh perangkat bertambah, dan tipe bidang berubah.
LindormTSDB menyediakan pernyataan ALTER TABLE untuk memungkinkan Anda mengubah tabel deret waktu. Namun, dalam beberapa skenario deret waktu, jika batasan pada skema tabel seketat batasan pada skema tabel di database relasional, pengembangan aplikasi dapat menjadi lebih sulit.
Untuk itu, LindormTSDB menyediakan kebijakan yang lebih fleksibel bagi pengguna untuk menerapkan batasan pada skema tabel.
Batasan skema
Dalam kebanyakan kasus, batasan skema berlaku saat data ditulis ke tabel. Batasan skema dapat menentukan apakah bidang yang ditulis konsisten dengan bidang yang terkandung dalam skema tabel yang telah ditentukan sebelumnya, apakah tipe data bidang yang ditulis konsisten atau kompatibel dengan tipe data yang telah ditentukan sebelumnya, atau apakah tabel tempat data ditulis ada. Di database relasional tradisional, batasan ketat diterapkan.
Berdasarkan batasan skema di LindormTSDB, sistem melakukan operasi verifikasi berikut:
Memverifikasi apakah tabel tujuan tempat data ditulis ada.
Memverifikasi apakah kolom TAG atau FIELD tempat data ditulis telah ditentukan sebelumnya.
Memverifikasi apakah tipe data yang ditulis konsisten dengan tipe data yang telah ditentukan sebelumnya.
Memverifikasi apakah tipe data bidang yang dikembalikan konsisten dengan tipe data yang ditentukan saat tabel dibuat.
Kebijakan batasan skema yang didukung
LindormTSDB menyediakan tiga jenis kebijakan batasan skema: batasan kuat, batasan lemah, dan tanpa batasan. Anda dapat memilih kebijakan sesuai dengan kebutuhan bisnis Anda.
Batasan Kuat
LindormTSDB secara ketat memverifikasi nama tabel tempat data ditulis, nama bidang data yang ditulis, dan tipe data yang ditulis berdasarkan skema tabel yang telah ditentukan sebelumnya. Proses ini mirip dengan proses verifikasi di database relasional tradisional. Kesalahan dilaporkan jika nama tabel, nama bidang, atau tipe data tidak konsisten dengan yang telah ditentukan dalam skema tabel.
Batasan Lemah
Saat tabel tempat data ditulis tidak ada, LindormTSDB tidak melaporkan kesalahan. Sebaliknya, LindormTSDB secara otomatis membuat tabel.
Saat tag atau bidang ditambahkan ke data yang ditulis, LindormTSDB tidak melaporkan kesalahan. Sebaliknya, LindormTSDB secara otomatis menambahkan kolom TAG atau FIELD ke tabel deret waktu.
Jika tipe data bidang tempat data ditulis berubah, penulisan data gagal karena LindormTSDB mendeteksi bahwa tipe data bidang tidak konsisten dengan tipe data yang telah ditentukan sebelumnya. Dalam hal ini, Anda harus mengeksekusi pernyataan ALTER TABLE untuk secara manual memodifikasi tipe data bidang.
CatatanSaat kebijakan batasan lemah digunakan, beberapa operasi verifikasi tetap dilakukan. Sebagai contoh, jika Anda mencoba menulis nilai non-string ke kolom TAG atau menulis data tipe non-timestamp ke kolom timestamp, verifikasi gagal.
Tanpa Batasan
Tidak ada batasan yang diterapkan. Jika Anda menggunakan kebijakan ini, tidak ada kesalahan yang dilaporkan saat tabel tempat Anda ingin menulis data tidak ada. Anda dapat memanggil antarmuka yang kompatibel dengan Time Series Database (TSDB) untuk menanyakan data yang telah ditulis. Jika Anda secara manual membuat tabel saat tabel tempat Anda ingin menulis data tidak ada, Anda dapat mengeksekusi pernyataan SQL untuk menanyakan data yang telah ditulis. Namun, tidak ada kesalahan yang dilaporkan untuk tipe data bidang yang tidak konsisten.
CatatanKebijakan tanpa batasan disimpan oleh sistem untuk memastikan kompatibilitas dengan TSDB. Untuk informasi lebih lanjut, lihat Ikhtisar Pengembangan Aplikasi.
Pilih kebijakan batasan skema berdasarkan metode penulisan data
Di LindormTSDB, kebijakan batasan skema yang digunakan saat data ditulis sangat erat kaitannya dengan metode yang digunakan untuk menulis data. Tabel berikut menjelaskan kebijakan batasan skema yang sesuai dengan metode penulisan data yang berbeda.
Metode penulisan data | Kebijakan batasan skema | Contoh kode yang digunakan untuk mengubah kebijakan batasan skema |
Hanya batasan kuat yang didukung. | T/A | |
Kebijakan batasan yang didukung:
| | |
Hanya batasan kuat yang didukung. | T/A | |
Kebijakan batasan yang didukung:
| | |
Kebijakan batasan yang didukung:
| | |
Hanya tanpa batasan yang didukung. | T/A |