Data semi-terstruktur memiliki beberapa pengorganisasian tetapi tidak dapat dengan mudah dimasukkan ke dalam tabel. JSON, XML, YAML, dan header email semuanya termasuk dalam kategori ini. Data tersebut memiliki tag atau kunci yang menjelaskan strukturnya, tetapi strukturnya dapat bervariasi dari satu catatan ke catatan lainnya. Satu objek JSON mungkin memiliki bidang yang tidak dimiliki oleh objek JSON lainnya. Satu dokumen XML mungkin menyusun elemen secara berbeda dari dokumen XML berikutnya. Skema bersifat fleksibel, terkadang disebut skema-on-read. Anda menerapkan struktur saat Anda melakukan kueri data, bukan saat Anda menyimpannya.
Data semi-terstruktur umum ditemukan dalam aplikasi modern. API mengembalikan JSON. File log menggunakan pasangan kunci-nilai. File konfigurasi menggunakan YAML. Basis data dokumen NoSQL menyimpan JSON secara native. Fleksibilitas ini berguna ketika model data berkembang atau bervariasi. Namun, ini juga menjadi tantangan untuk analisis. Meng querying data semi-terstruktur membutuhkan alat dan teknik yang berbeda daripada meng querying tabel. Anda perlu menavigasi struktur bersarang, menangani bidang yang hilang, dan meratakan array. Mesin SQL telah beradaptasi. PostgreSQL, MySQL, dan Snowflake semuanya mendukung fungsi JSON. Anda dapat meng querying di dalam dokumen JSON tanpa mengekstraknya terlebih dahulu. Pengaburan antara data terstruktur dan semi-terstruktur ini membuat perbedaan tersebut menjadi kurang relevan. Pertanyaan penting bukanlah apakah data tersebut semi-terstruktur, melainkan apakah Anda dapat meng queryingnya secara efektif.
Format semi-terstruktur
- JSON — pasangan kunci-nilai, array, objek bersarang
- XML — elemen bertag, hierarkis
- YAML — konfigurasi yang mudah dibaca manusia
- CSV — dipisahkan dengan pembatas tetapi tanpa informasi tipe data
- Berkas log — peristiwa yang diberi cap waktu dengan bidang variabel.
Data semi-terstruktur adalah jalan tengah. Data ini memiliki struktur yang cukup untuk bermanfaat dan fleksibilitas yang cukup untuk menjadi berantakan.
Comments (2)
Leave a comment