Pengembangan tipe data JSON baru yang kuat untuk ClickHouse
(clickhouse.com)Pengantar
- JSON telah menjadi format standar untuk menangani data semi-terstruktur dan tidak terstruktur dalam sistem data modern.
- ClickHouse menyadari pentingnya JSON dan mengatasi beberapa tantangan untuk memanfaatkan JSON secara efektif dalam skala besar.
Tantangan
-
Tantangan 1: Penyimpanan berorientasi kolom yang sesungguhnya
Untuk memproses data JSON seefisien tipe kolom lainnya, path JSON harus disimpan dengan cara yang berorientasi kolom. -
Tantangan 2: Data yang berubah secara dinamis dan masalah integrasi tipe
Integritas data harus dipertahankan dengan memungkinkan penyimpanan tipe data yang berbeda untuk path JSON. -
Tantangan 3: Mencegah ledakan file data kolom di disk
Jika ada banyak kunci JSON unik, perlu ada batasan pada pembuatan kolom untuk mencegah ledakan file kolom. -
Tantangan 4: Penyimpanan padat
Jika ada banyak kunci JSON yang unik tetapi jarang muncul, penyimpanan harus menghindari duplikasi NULL atau nilai default.
Tipe data JSON baru
- ClickHouse memperkenalkan tipe data JSON baru untuk pemrosesan data JSON berperforma tinggi.
- Tipe ini mendukung data yang berubah secara dinamis sambil mempertahankan kompresi data yang tinggi dan performa kueri.
- Performa dapat disesuaikan dengan memberikan hint untuk parsing JSON.
Building block 1 - tipe Variant
- Tipe Variant memungkinkan penyimpanan nilai dengan tipe data yang berbeda secara efisien dalam kolom tabel yang sama.
- Integritas data dipertahankan dengan menggunakan subkolom terpisah untuk setiap tipe data.
Building block 2 - tipe Dynamic
- Tipe Dynamic memperluas tipe Variant agar dapat menyimpan beragam tipe data tanpa perlu menentukan tipenya terlebih dahulu.
- Jumlah tipe yang disimpan dibatasi untuk mencegah ledakan file kolom.
Tipe JSON ClickHouse
- Berdasarkan tipe Variant dan Dynamic, tipe JSON baru diimplementasikan untuk menyelesaikan semua tantangan tersebut.
- Data dapat disimpan tanpa bergantung pada struktur objek JSON, dan nilai dapat dibaca dengan menggunakan path JSON sebagai subkolom.
Ringkasan GN⁺
- Tipe data JSON baru dari ClickHouse berfokus pada penyelesaian masalah performa JSON dalam analisis data skala besar.
- Tipe ini mendukung beragam tipe data serta memberikan performa dan skalabilitas yang tinggi.
- Selain JSON, ini juga meletakkan dasar untuk mendukung tipe semi-terstruktur lain seperti XML dan YAML.
- Ini berguna bagi developer yang menggunakan ClickHouse dan memberikan keuntungan dalam kompresi data serta performa kueri.
1 komentar
Komentar Hacker News
Keputusan menggunakan ClickHouse di PostHog adalah salah satu pilihan terbaik. Mereka bisa membangun lebih banyak produk dengan set data yang sama sambil tetap menskalakan performa
Menarik apakah menambahkan data type ke JSON masih membuatnya tetap layak disebut JSON
Senang melihat fitur ini di ClickHouse
Saat mengevaluasi ClickHouse, Apache Pinot juga layak dipertimbangkan
Tertarik dengan data yang berubah secara dinamis
Sudah lama menunggu dukungan JSON di ClickHouse, dan tipe baru serta dynamic columns akan sangat berguna
ClickHouse adalah alat yang hebat
Saat mencoba ClickHouse beberapa minggu lalu, file diberi nama berdasarkan nama kolom, sehingga nama file yang panjang dan slash menyebabkan error di file system
ClickHouse belum cukup banyak digunakan