Penilaian Tencent Cloud Data Warehouse ClickHouse: Adakah "supercar" di era data besar berfungsi dengan baik?
Sekiranya anda seorang pembangun belakang, DBA atau penganalisis data yang menghadapi sejumlah besar data, anda pasti pernah mendengarnya
ClickHouse
Nama besar.
Dalam bidang data besar sumber terbuka, perkara ini hanyalah kewujudan mitos: prestasi tersendiri menghancurkan pangkalan data tradisional puluhan kali, dan puluhan bilion analisis data bertindak balas dalam beberapa saat. Orang yang telah menggunakannya mengatakan bahawa melihatnya menjalankan pertanyaan adalah seperti menonton supercar meletup di jalan.
Walau bagaimanapun, "perkhidmatan sukar" dari ClickHouse sumber terbuka juga terkenal di industri ini: operasi dan penyelenggaraan sangat rumit, parameter konfigurasi terlalu banyak, dan pengembangan kluster yang diedarkan runtuh dengan sedikit kecerobohan. Ini juga tidak menggalakkan banyak PKS.
Untuk menyelesaikan masalah ini, Tencent Cloud melancarkan
Pangkalan Data Awan ClickHouse(CDCH)
。 Secara terang-terangan, pakar Tencent membantu kami menyelesaikan semua kerja kotor di bawah ClickHouse sumber terbuka dan memasukkannya ke dalam perkhidmatan awan di luar kotak.
Hari ini, dari perspektif pemaju sebenar, kami akan melakukan penilaian mendalam yang komprehensif mengenai ClickHouse Tencent Cloud. Jangan terlibat dalam senarai manual rasmi, hanya bercakap mengenai barang kering, titik sakit, dan bahasa biasa.
1. Mengapa ClickHouse begitu pantas? (Sains Xiaobai)
Sebelum menilai produk Tencent Cloud, mari kita luangkan satu minit untuk membincangkan logik asas ClickHouse yang berjalan pantas?
Pangkalan data hubungan tradisional (seperti MySQL) adalah
Penyimpanan baris
。 Sekiranya anda ingin memeriksa usia rata-rata semua pengguna, MySQL mesti memasukkan keseluruhan baris data setiap pengguna (nama, kata laluan, alamat, umur...) Baca semuanya dari cakera keras, dan kemudian keluarkan usia. Ini seperti membeli kubis Cina, saya harus mengunjungi seluruh pasar sayur, dan IO (membaca dan menulis cakera keras) langsung meletup.
Dan ClickHouse adalah tipikal
Penyimpanan lajur
。
Ia memisahkan lajur "nama" dan "usia" secara berasingan. Adakah anda mahu mengira usia purata? Baiklah, ia terus membaca data dalam lajur "umur", dan bahkan tidak menyentuh lajur lain.
Ditambah dengan CPU
SIMD (pelbagai aliran data arahan tunggal)
Set arahan diperas secara melampau, menyedari pengiraan selari pada tahap fizikal. Senibina ini dilahirkan untuk
OLAP (pemprosesan analisis dalam talian)
, Analisis log besar-besaran dan laporan BI.
2. Penilaian Tencent Cloud ClickHouse: Apa yang telah membantu kita menyelesaikannya?
Oleh kerana sumber terbuka sudah sangat kuat, mengapa menggunakan Tencent Cloud? Kami membuka sekumpulan kluster di konsol dan mengalaminya secara mendalam. Prestasi dimensi berikut adalah yang paling mengagumkan:
1. Kesukaran operasi dan penyelenggaraan: dari "mod neraka" hingga "bodoh satu klik"
Sesiapa yang telah memainkan ClickHouse sumber terbuka tahu bahawa ClickHouse yang diedarkan sangat bergantung pada ZooKeeper untuk penyegerakan metadata dan sinergi yang konsisten. Apabila jumlah data
Apabila melampau, ZooKeeper sering menjatuhkan rantai. Setelah tersekat, seluruh kelompok ClickHouse lumpuh.
Penyelesaian Tencent Cloud: Tencent Cloud menyediakan seni bina yang dikendalikan sepenuhnya, dan ZooKeeper dioptimumkan dan diasingkan secara mendalam di bahagian bawah.
Pengalaman sebenar: Untuk membuat kluster di konsol, anda hanya perlu memilih konfigurasi (beberapa teras, beberapa G, beberapa nod), dan keseluruhan kluster yang diedarkan akan dibina dalam beberapa minit. Dengan konfigurasi asas yang kompleks seperti penyegerakan salinan dan peraturan pemecahan, Tencent Cloud akan membantu anda melakukan Amalan Terbaik semasa memulakan. Anda tidak perlu melihat beratus-ratus baris fail konfigurasi XML, yang telah menyelamatkan banyak rambut rakan sekelas operasi dan penyelenggaraan.
2. Perluasan dan fleksibiliti: akhirnya tidak perlu terlambat untuk memindahkan data
Beban sejarah terbesar ClickHouse sumber terbuka adalah
Tidak menyokong pengecutan sebenar
。 Kerana ia adalah seni bina "gandingan pengkomputeran dan penyimpanan", setelah cakera keras penuh untuk menambahkan mesin, anda perlu mengubah fail konfigurasi secara manual, dan menulis skrip untuk memindahkan data fizikal (Bahagian) pada mesin lama ke mesin baru, Prosesnya setanding dengan menukar mesin di udara, data hilang jika anda tidak berhati-hati.
Penyelesaian Tencent Cloud: Tencent Cloud menyedari pemisahan pengkomputeran dan penyimpanan pengkomputeran yang fleksibel (disokong oleh beberapa versi).
Pengalaman sebenar: Apabila jumlah data ujian kami melambung tinggi, klik "Ubah Konfigurasi" di konsol untuk menambahkan nod secara langsung atau mengembangkan cakera awan secara dalam talian. Selama keseluruhan proses, keseimbangan data secara automatik dijadwalkan oleh latar belakang Tencent Cloud, dan pertanyaan di peringkat perniagaan hampir tidak terjejas. Ini sahaja bernilai tambang.
3. Konsol dan visualisasi: akhirnya mempunyai "papan pemuka" yang baik
ClickHouse sumber terbuka hanya mempunyai pelanggan baris perintah sejuk (pelanggan clickhouse) secara lalai. Ingin melihat berapa banyak CPU kluster semasa? Pertanyaan mana yang memenuhi memori? Maaf, saya mesti memeriksa jadual sistem sendiri
Sistem. processes
, Atau bina satu set Prometheus Grafana sendiri.
Penyelesaian Tencent Cloud: Tencent Cloud dilengkapi dengan DMC perkhidmatan pemantauan pasaran dan pengurusan data yang sangat lengkap.
Pengalaman sebenar: Log masuk ke konsol, throughput kluster, kelewatan membaca dan menulis, dan pekerjaan cakera jelas sekali. Yang terbaik adalah fungsi analisis pertanyaan perlahan. Sekiranya SQL berjalan selama 10 saat tanpa hasil, konsol akan langsung menangkapnya dan menunjukkan rancangan pelaksanaan terperinci, memberitahu anda Join mana yang tersekat. Ini hanyalah artifak bagi pembangun untuk menyesuaikan SQL.
3. Adegan pertempuran sebenar: Apa yang paling sesuai untuk Tencent Cloud ClickHouse?
Dalam penilaian perniagaan sebenar kami, ClickHouse menunjukkan kelebihan yang luar biasa dalam tiga senario berikut:
Senario 1: Analisis log dan audit besar-besaran (membunuh ELK)
Saya biasa melakukan analisis log sebelum ini, semua orang sudah biasa
Dengan ELK(Elasticsearch Logstash Kibana). Tetapi Elasticsearch memakan memori dan mempunyai kadar pengembangan yang tinggi (log asal 100G mungkin menjadi 200G ketika disimpan).
Rekod ClickHouse: Masukkan berbilion log tingkah laku pengguna yang sama ke dalam ClickHouse. Dengan nisbah mampatan data ultra tinggi 1:5 atau bahkan 1:10, ruang cakera keras yang dihuni kurang dari satu pertiga ES. Dan untuk memeriksa pelbagai data agregat (seperti mengira trend ralat antara muka bulan lalu),ClickHouse beberapa kali lebih pantas daripada ES.
Senario 2: Iklan dan operasi halus (pemilihan orang ramai)
Pelajar operasi sering perlu bertanya: "Bantu saya melingkari pengguna Beijing yang telah log masuk ke Aplikasi, mengisi semula lebih dari 100 yuan, dan berumur antara 18-25 tahun dalam 7 hari terakhir."
Rekod ClickHouse: Analisis corong pelbagai dimensi berdasarkan tag (Bitmap) ini adalah keistimewaan ClickHouse. Dengan menggunakan fungsi canggih bawaan seperti bitmapAnd dan bitmapOr, puluhan bilion orang akan dilingkari, dan hasilnya akan tersedia dalam beberapa saat. Pelajar operasi tidak perlu lagi menyelesaikan keperluan dan menunggu data diperoleh pada keesokan harinya.
Keempat, "bahagian belakang duit syiling" Tencent Cloud ClickHouse: lubang yang mesti dielakkan oleh pemula
Walaupun Tencent Cloud membungkusnya dengan baik, ClickHouse adalah ClickHouse, dan "sifat fizikal" yang mendasari menentukan bahawa ia bukan ubat mujarab. Apabila pemula menggunakannya, jangan gunakannya sebagai MySQL, ladang ranjau berikut mesti dilewati:
Jangan sekali-kali melakukan throughput kecil dengan komplikasi tinggi. Tulis: ClickHouse suka "makan berlebihan dalam jumlah besar" dan tidak suka "makan lebih sedikit dan lebih banyak makanan". Sekiranya anda menulis 1000 kali sesaat dan hanya menulis 1 data pada satu masa, latar belakang ClickHouse akan menggabungkan data (Merge) dengan panik, dan tidak lama lagi akan melaporkan bahawa kesalahan fatal dari bahagian pengurusan Too menyebabkan kluster berhenti. Cadangan orang sebenar: Anda mesti melakukan cache tempatan (Buffer) di peringkat perniagaan, atau mengumpulkan kumpulan melalui Kafka, dan menulis sekurang-kurangnya 10,000 item dalam setiap kumpulan.
Ia tidak bagus untuk pertanyaan titik definisi tinggi serentak tinggi: ClickHouse adalah binatang separa. Anda membiarkannya mengira jumlah 1 bilion data, dan 0,5 saat untuk anda. Tetapi jika anda ingin membuat aplikasi dengan puluhan ribu serentak, biarkan ia memeriksa maklumat asas pengguna tertentu (SELECT * FROM table WHERE id = 123) berdasarkan ID pengguna, ia akan mengisi CPU. Cadangan orang sebenar: Untuk perkhidmatan pemeriksaan titik serentak tinggi seperti ini, gunakan Redis atau MySQL dengan jujur.
Keupayaan pertanyaan serentak yang sangat terhad (Max
Concurrent Queries): Had pertanyaan serentak lalai ClickHouse adalah 100. Kerana SQL yang kompleks akan menggerakkan semua teras CPU di belakang dan mengisinya sepenuhnya. Sekiranya 100 orang mengemukakan pertanyaan laporan yang rumit pada masa yang sama, kluster akan tersekat secara langsung. Ia sesuai untuk penganalisis data, operasi, dan papan tanda dalaman, dan tidak sesuai untuk panggilan serentak besar secara langsung kepada berjuta-juta pengguna aktif di sisi C.
5. Ringkasan dan cadangan pemilihan
Setelah penilaian mendalam, perasaan keseluruhan Tencent Cloud ClickHouse(CDCH) adalah:
Kekurangan tidak menyembunyikan Yu, kekurangan terletak pada gen sumber terbuka, dan Yu diproses di Tencent.
Ia mewarisi prestasi pertanyaan utama ClickHouse sumber terbuka yang membuat adrenalin melambung tinggi. Pada masa yang sama, melalui kaedah hosting asli awan, tiga gunung yang paling dikritik "operasi dan penyelenggaraan yang sukar, pengembangan yang sukar, dan pemantauan yang sukar" telah dikeluarkan sepenuhnya.
Akhirnya, berikan cadangan pemilihan satu ayat:
Sekiranya jumlah data perniagaan anda telah melebihi puluhan juta atau bahkan ratusan juta, MySQL tradisional memerlukan beberapa minit untuk menjalankan laporan, dan anda tidak mempunyai anggaran tambahan untuk menaikkan pasukan operasi dan penyelenggaraan data besar yang berdedikasi, maka,
Pergi terus ke Tencent Cloud ClickHouse
。 Ia dapat menggunakan perkakasan dan kos buruh yang sangat rendah untuk membawa syarikat anda mengalami "perasaan menolak" era data besar terlebih dahulu.

