ClickHouse — enjin analitik masa nyata dalam tindanan platform
Stack 4buildsite merangkumi ClickHouse — pangkalan data berlajur yang dibina khusus untuk analitik berjumlah besar. Inilah asas yang kami gunakan untuk membangunkan modul statistik trafik dan jualan platform (dalam pembangunan): data kekal milik anda, dan laman anda tidak menanggung beban pengiraan laporan — begitulah seni bina ini direka.
Apa itu ClickHouse dan mengapa kami menggunakannya
ClickHouse ialah pangkalan data OLAP (analitik dalam talian) berlajur, dicipta di Yandex untuk Yandex.Metrica — salah satu sistem analitik web terbesar di dunia — dan dijadikan sumber terbuka pada 2016 di bawah lesen Apache 2.0. Ia dibina untuk satu perkara sahaja, yang dilakukannya dengan sangat baik: agregasi atas data yang sangat besar. Dalam seni bina 4buildsite, ClickHouse ialah enjin yang dipilih untuk lapisan statistik: setiap lawatan, klik dan pesanan menjadi peristiwa yang boleh dianalisis.
Rahsianya ialah storan berlajur: daripada membaca setiap “baris” penuh, ClickHouse hanya membaca lajur yang diperlukan oleh laporan dan memprosesnya dalam blok besar yang divektorkan. Itulah sebabnya soalan seperti “berapa ramai pengunjung saya semalam, mengikut halaman, mengikut sumber” dijawab dengan pantas walaupun merentasi berjuta-juta peristiwa — sesuatu yang sukar dilakukan oleh pangkalan data klasik berorientasikan baris.
Ia bukan teknologi niche: Cloudflare menggunakannya untuk menganalisis trafik HTTP pada skala global, dan Uber, eBay serta Spotify menggunakannya untuk analitik dan pemprosesan log pada volum yang amat besar. Di 4buildsite, enjin yang sama menjadi sebahagian daripada stack platform — tanpa anda perlu mengupah pasukan kejuruteraan data.
Statistik masa nyata — bagaimana modul ini direka
Modul statistik platform sedang dibangunkan, dan seni binanya mudah: peristiwa trafik dikumpulkan secara tak segerak dan ditulis ke ClickHouse, sepenuhnya berasingan daripada pelayan yang menghantar halaman anda. Tiada skrip penjejakan pihak ketiga yang berat — pengumpulan adalah minimum dan first-party.
Laporan dalam panel.4buildsite.net akan dikira terus dalam ClickHouse: trafik halaman, sumber pengunjung, penukaran, jualan setiap produk. Agregasi yang kerap dikira terlebih dahulu melalui materialized view pada setiap penulisan, jadi papan pemuka tidak memulakan pengiraan berat setiap kali anda melihatnya.
- Trafik langsung: lawatan, halaman, sumber dan peranti — boleh dipertanyakan selepas dikumpulkan
- Jualan setiap produk, pesanan dan penukaran untuk kedai anda, diagregatkan secara berterusan
- Sejarah berbulan-bulan dan bertahun-tahun pada kos rendah — pemampatan berlajur mengecilkan storan beberapa kali ganda berbanding data mentah
- Pengumpulan tak segerak, pelaporan berjalan pada sistem berasingan daripada laman
PostgreSQL + ClickHouse: mengapa kami menggunakan kedua-duanya
Stack platform menggabungkan dua pangkalan data kerana kedua-duanya melakukan perkara yang berbeza secara asas. PostgreSQL ialah lejar transaksi (OLTP): pesanan, pembayaran, stok, akaun pengguna — operasi yang mesti betul sepenuhnya satu demi satu, dengan jaminan transaksi. ClickHouse ialah bilik analisis (OLAP): berjuta-juta peristiwa dibaca sekali gus untuk menjawab soalan anda tentang trafik dan jualan.
Jika laporan berat dijalankan pada pangkalan data yang sama yang memproses pesanan, setiap laporan akan bersaing dengan pelanggan yang sedang membayar pada ketika itu. Pemisahan OLTP/OLAP menghapuskan konflik ini: pesanan pelanggan tidak pernah menunggu laporan anda, dan laporan anda tidak pernah menunggu pesanan orang lain. Setiap enjin melakukan tepat apa yang ia dibina untuknya.
- PostgreSQL: pesanan, pembayaran Stripe, stok, pelanggan — ketepatan transaksi
- ClickHouse: peristiwa trafik, laporan, statistik — agregasi pada volum besar
- Reka bentuk ini mereplikasi data transaksi yang berkaitan ke dalam ClickHouse sebagai peristiwa, supaya laporan jualan tidak pernah menyentuh pangkalan data yang melayani kedai anda
Analitik first-party yang mesra privasi — menggantikan Google Analytics
Prinsip modul statistik: data laman anda kekal pada infrastruktur platform. Ia tidak dihantar kepada Google atau rangkaian pengiklanan lain, tidak dijual, dan tidak digabungkan dengan profil pengguna luar. Ini analitik first-party dalam erti kata sebenar: data tentang pengunjung anda adalah milik anda.
Memandangkan pendekatan ini tidak menggunakan kuki penjejakan pihak ketiga, pematuhan GDPR menjadi jauh lebih mudah. Konteksnya penting: pada 2022, pihak berkuasa perlindungan data di Austria, Perancis dan Itali mengisytiharkan penggunaan Google Analytics tidak mematuhi GDPR berkaitan pemindahan data ke AS. Dengan analitik first-party yang dihoskan di Eropah, seluruh kategori risiko itu hilang sejak awal.
Terdapat juga manfaat praktikal secara langsung: laporan yang dikira dalam ClickHouse tidak disampel, tidak seperti laporan standard dalam alat analitik percuma. Angka lengkap.
Laporan kedai dan marketplace — apa yang akan disediakan modul ini
Bagi kedai dalam talian, ClickHouse bermakna jawapan kepada soalan yang penting: produk mana yang laku, sumber mana yang membawa pelanggan yang benar-benar membeli, di mana troli ditinggalkan. Bagi marketplace berbilang vendor, agregasi yang sama akan dijalankan merentasi semua pesanan: volum bagi setiap vendor, komisen, produk teratas bagi setiap kategori — tanpa eksport manual dan tanpa hamparan.
Dan pada skala besar, pemampatan kekal berkesan. Pemampatan berlajur mengecilkan data beberapa kali ganda berbanding format mentah, jadi anda menyimpan sejarah bertahun-tahun pada kos storan yang rendah. Apabila trafik meningkat daripada beribu kepada berjuta peristiwa, enjin ini terus mengendalikan agregasi — ia direka untuk berbilion baris sejak awal, bukan ditambah kemudian.
Kelebihan dan kekurangan
Kelebihan
- Agregasi atas berjuta-juta peristiwa — agregat yang kerap dikira terlebih dahulu.
- Analitik berjalan pada sistem yang berasingan daripada yang melayani halaman.
- Data trafik anda kekal milik anda, pada infrastruktur platform — tiada pemindahan kepada Google atau rangkaian iklan.
- Tiada kuki penjejakan pihak ketiga — pematuhan GDPR lebih mudah.
- Pemampatan berlajur yang kukuh — sejarah bertahun-tahun pada kos storan rendah.
- Sumber terbuka (Apache 2.0), tiada lesen mengikut volum — kos tidak melonjak apabila trafik meningkat.
Had
- Bukan pangkalan data transaksi — mengemas kini atau memadam baris individu ialah operasi berat; itulah sebabnya pesanan dan pembayaran berada dalam PostgreSQL.
- Dioptimumkan untuk penulisan kelompok besar; banyak sisipan kecil yang kerap memerlukan pengelompokan — platform mengendalikannya, tetapi ia adalah had enjin yang nyata.
- JOIN yang kompleks kurang fleksibel berbanding PostgreSQL — skema peristiwa mesti direka untuk analitik sejak awal.
- Mencari satu baris (point lookup) lebih perlahan berbanding pangkalan data OLTP berindeks — ia tidak menggantikan pangkalan data utama kedai.
Rumusan ringkas
ClickHouse ialah pilihan yang tepat untuk analitik pada volum besar: statistik trafik dan jualan masa nyata, dengan data anda sendiri, tanpa menambah beban pada laman anda. Untuk pesanan, pembayaran dan stok, PostgreSQL kekal digunakan — sebab itulah stack 4buildsite menggabungkan kedua-duanya, masing-masing pada tugas terbaiknya. Modul statistik yang dibina di atas ClickHouse sedang dalam pembangunan.
Jadual spesifikasi
| Keupayaan | Had / ambang | Kegunaan lazim | |
|---|---|---|---|
| Agregasi analitik | Agregasi atas berjuta-juta peristiwa (berlajur + divektorkan) | Perlahan pada carian satu baris — bukan untuk bacaan titik OLTP | Laporan trafik dan jualan (modul statistik, dalam pembangunan) |
| Pengambilan peristiwa | Volum tinggi, ditulis secara kelompok | Sisipan kecil yang kerap memerlukan pengelompokan / async insert | Mengumpul pageview, klik, pesanan |
| Storan & pemampatan | Pemampatan berlajur (LZ4/ZSTD), beberapa kali ganda di bawah volum mentah | Data yang sangat rawak termampat kurang | Sejarah peristiwa berbulan-bulan dan bertahun-tahun, pada kos rendah |
| Kemas kini & pemadaman | Mutasi tak segerak untuk pembetulan sekali-sekala | Tidak sesuai untuk UPDATE satu baris yang kerap | Pemadaman GDPR (data seorang pengguna, atas permintaan) |
| Materialized view | Agregat dikira terlebih dahulu pada setiap penulisan | Agregat mesti ditakrifkan lebih awal, bagi setiap laporan | Papan pemuka: jualan setiap hari, produk, sumber |
| Masa nyata | Peristiwa boleh dipertanyakan selepas ia berlaku | Bukan sistem penstriman masa nyata | Statistik trafik dan penukaran langsung |
ClickHouse lwn PostgreSQL lwn Google Analytics / BigQuery — untuk analitik
| Kriteria | ClickHouse (4buildsite) | PostgreSQL (untuk analitik) | Google Analytics / BigQuery |
|---|---|---|---|
| Kelajuan agregasi pada volum besar | Agregasi atas berjuta-juta baris | Merosot ketara atas berpuluh juta baris (storan baris) | BigQuery berskala besar; GA4 mempunyai laporan standard yang dikira terlebih dahulu, tanpa pertanyaan bebas |
| Pemilikan data / GDPR | Data anda, pada infrastruktur platform, di Eropah | Data anda, pada pelayan anda | Data berada di Google; pemindahan GA ke AS diputuskan tidak mematuhi GDPR oleh pihak berkuasa EU pada 2022 |
| Kuki & persetujuan | Tiada kuki penjejakan pihak ketiga | Bergantung pada pelaksanaan anda sendiri | Memerlukan sepanduk persetujuan untuk penjejakan |
| Masa nyata | Data boleh dipertanyakan selepas dikumpulkan | Boleh dilakukan, tetapi laporan berat membebankan pangkalan data transaksi | Laporan standard GA4 boleh lewat beberapa jam; penstriman BigQuery dikenakan kos tambahan |
| Kos pada volum besar | Sumber terbuka — kos hanyalah infrastruktur, termasuk dalam langganan | Meningkat dengan indeks, vacuum dan perkakasan pada volum tinggi | BigQuery mengenakan bayaran mengikut volum yang ditanya; tier perusahaan GA mahal |
| Kesan pada kelajuan laman | Pengumpulan tak segerak, pelaporan pada sistem berasingan | Laporan boleh bersaing dengan pesanan pada pangkalan data yang sama | Skrip pihak ketiga (gtag.js) pada halaman — JavaScript tambahan dan permintaan luaran |
Soalan lazim
Adakah ClickHouse memperlahankan laman atau kedai saya?
Tidak. ClickHouse berjalan pada sistem yang berasingan daripada yang melayani halaman anda — begitulah seni bina ini direka. Peristiwa trafik dihantar secara tak segerak, dan laporan tidak menyentuh pangkalan data kedai.
Mengapa tidak guna sahaja Google Analytics?
Tiga sebab. Data kekal milik anda, pada infrastruktur platform, bukan di Google. Anda tidak memerlukan kuki penjejakan pihak ketiga, jadi pematuhan GDPR lebih mudah — pada 2022, pihak berkuasa di Austria, Perancis dan Itali memutuskan GA tidak mematuhi GDPR. Dan laporan lengkap, tidak disampel.
Apakah perbezaan antara ClickHouse dan PostgreSQL — mengapa kedua-duanya?
PostgreSQL ialah pangkalan data transaksi (OLTP): ia memproses pesanan, pembayaran dan stok satu demi satu, dengan jaminan ketepatan. ClickHouse ialah pangkalan data analitik (OLAP): ia membaca berjuta-juta peristiwa sekali gus untuk laporan.
Adakah data trafik saya selamat dan mematuhi GDPR?
Ya — melalui reka bentuk. Statistik adalah first-party: ia berada pada infrastruktur platform, di Eropah, dan tidak pernah dijual atau dikongsi dengan rangkaian pengiklanan. Pendekatan ini tidak menggunakan kuki penjejakan pihak ketiga, dan data pengguna boleh dipadam atas permintaan, mengikut GDPR.
Setakat mana “masa nyata” statistik ini?
Sesuatu peristiwa — lawatan, klik, pesanan — kelihatan dalam laporan selepas ia berlaku. Agregasi untuk tempoh panjang (berbulan-bulan, bertahun-tahun) juga dijawab oleh ClickHouse, kerana ia dibina tepat untuk jenis pertanyaan ini.
Adakah saya perlu menyediakan apa-apa untuk mendapatkan statistik pada laman saya?
Anda tidak perlu. Modul statistik sedang dibangunkan dan dibina sebagai sebahagian daripada platform: setelah ia dilancarkan dalam panel admin, pengumpulan bermula secara automatik untuk laman yang diterbitkan — tiada skrip untuk dipasang dan tiada akaun luaran.