Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Senadyan kasunyatan manawa saiki ana akeh data meh ing endi wae, database analitis isih cukup eksotis. Padha kurang dikenal lan malah luwih elek bisa digunakake kanthi efektif. Akeh sing terus "mangan kaktus" nganggo MySQL utawa PostgreSQL, sing dirancang kanggo skenario liyane, nandhang sangsara karo NoSQL, utawa overpay kanggo solusi komersial. ClickHouse ngganti aturan game lan nyuda batesan kanggo mlebu ing jagad analitis DBMS.

Laporan saka BackEnd Conf 2018 lan diterbitake kanthi ijin saka speaker.


Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)
Sapa aku lan kenapa aku ngomong babagan ClickHouse? Aku direktur pembangunan ing LifeStreet, kang nggunakake ClickHouse. Uga, aku dadi pangadeg Altinity. Iku mitra Yandex sing promosi ClickHouse lan mbantu Yandex nggawe ClickHouse luwih sukses. Uga siap nuduhake kawruh babagan ClickHouse.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan aku dudu sadulure Petya Zaitsev. Aku kerep takon babagan iki. Ora, kita dudu sedulur.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

"Kabeh wong ngerti" sing ClickHouse:

  • Banter banget,
  • nyaman banget
  • Digunakake ing Yandex.

A little kurang dikenal ing kang perusahaan lan carane digunakake.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Aku bakal pitutur marang kowe kok, ngendi lan carane ClickHouse digunakake, kajaba Yandex.

Aku bakal pitutur marang kowe carane tugas tartamtu ditanggulangi kanthi bantuan ClickHouse ing perusahaan sing beda-beda, apa alat ClickHouse sing bisa digunakake kanggo tugas sampeyan, lan carane digunakake ing perusahaan sing beda-beda.

Aku njupuk telung conto sing nuduhake ClickHouse saka macem-macem sudut. Aku iku bakal menarik.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Pitakonan pisanan yaiku: "Napa kita butuh ClickHouse?". Iku misale jek dadi pitakonan sing cukup ketok, nanging ana luwih saka siji jawaban.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • Wangsulan pisanan yaiku kanggo kinerja. ClickHouse cepet banget. Analytics ing ClickHouse uga cepet banget. Asring bisa digunakake ing endi wae sing alon banget utawa ala banget.
  • Wangsulan kapindho yaiku biaya. Lan pisanan kabeh, biaya skala. Contone, Vertica minangka basis data sing apik banget. Kerjane banget yen sampeyan ora duwe akeh terabyte data. Nanging nalika nerangake atusan terabyte utawa petabyte, biaya lisensi lan dhukungan dadi jumlah sing cukup signifikan. Lan larang. Lan ClickHouse gratis.
  • Wangsulan katelu yaiku biaya operasi. Iki minangka pendekatan sing rada beda. RedShift minangka analog sing apik. Ing RedShift, sampeyan bisa nggawe keputusan kanthi cepet. Bakal bisa digunakake kanthi apik, nanging ing wektu sing padha, saben jam, saben dina, lan saben wulan, sampeyan bakal mbayar Amazon kanthi larang, amarga iki minangka layanan sing larang banget. Google BigQuery uga. Yen ana wong sing nggunakake, dheweke ngerti manawa sampeyan bisa nindakake sawetara panjaluk lan entuk tagihan atusan dolar kanthi dadakan.

ClickHouse ora duwe masalah kasebut.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Where ClickHouse digunakake saiki? Saliyane Yandex, ClickHouse digunakake ing macem-macem bisnis lan perusahaan.

  • Kaping pisanan, iki analytics aplikasi web, yaiku kasus panggunaan sing teka saka Yandex.
  • Akeh perusahaan AdTech nggunakake ClickHouse.
  • Akeh perusahaan sing kudu nganalisa log transaksi saka macem-macem sumber.
  • Sawetara perusahaan nggunakake ClickHouse kanggo ngawasi log keamanan. Dheweke ngunggah menyang ClickHouse, nggawe laporan, lan entuk asil sing dibutuhake.
  • Perusahaan wiwit nggunakake ing analisis finansial, yaiku bisnis gedhe sing mboko sithik uga nyedhaki ClickHouse.
  • cloudflare. Yen ana sing ngetutake ClickHouse, mesthine dheweke wis krungu jeneng perusahaan iki. Iki minangka salah sawijining kontributor penting saka masyarakat. Lan padha duwe instalasi ClickHouse banget serius. Contone, dheweke nggawe Mesin Kafka kanggo ClickHouse.
  • Perusahaan telekomunikasi wiwit nggunakake. Sawetara perusahaan nggunakake ClickHouse minangka bukti konsep utawa wis ana ing produksi.
  • Siji perusahaan nggunakake ClickHouse kanggo ngawasi proses produksi. Dheweke nyoba microcircuits, nulis akeh paramèter, ana udakara 2 karakteristik. Banjur padha nganalisa apa game kasebut apik utawa ala.
  • Analisis blockchain. Ana perusahaan Rusia kaya Bloxy.info. Iki minangka analisis jaringan ethereum. Dheweke uga nindakake iki ing ClickHouse.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan ukuran ora masalah. Ana akeh perusahaan sing nggunakake siji server cilik. Lan dheweke ngidini dheweke ngrampungake masalah kasebut. Lan luwih akeh perusahaan nggunakake kluster gedhe saka akeh server utawa puluhan server.

Lan yen sampeyan ndeleng cathetan, banjur:

  • Yandex: 500+ server, padha nyimpen 25 milyar cathetan saben dina ing kana.
  • LifeStreet: 60 server, kira-kira 75 milyar cathetan saben dina. Ana luwih sithik server, luwih akeh cathetan tinimbang ing Yandex.
  • CloudFlare: 36 server, padha nyimpen 200 milyar cathetan saben dina. Dheweke duwe server sing luwih sithik lan nyimpen data luwih akeh.
  • Bloomberg: 102 server, udakara triliun entri saben dina. nduwèni cathetan.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Secara geografis, iki uga akeh. Peta iki nuduhake peta panas ing ngendi ClickHouse digunakake ing donya. Rusia, China, Amerika katon jelas ing kene. Ana sawetara negara Eropah. Lan ana 4 klompok.

Iki minangka analisis komparatif, ora perlu nggoleki angka mutlak. Iki minangka analisis pengunjung sing maca materi basa Inggris ing situs web Altinity, amarga ora ana sing nganggo basa Rusia ing kana. Lan Rusia, Ukraina, Belarus, yaiku bagean saka komunitas sing nganggo basa Rusia, iki minangka pangguna sing paling akeh. Banjur teka AS lan Kanada. China wis akeh banget. Nem sasi kepungkur meh ora ana China, saiki China wis nyusul Eropa lan terus berkembang. Eropah lawas uga ora adoh konco, lan pimpinan ing nggunakake ClickHouse punika, aneh, Prancis.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Yagene aku ngomong kabeh iki? Kanggo nuduhake yen ClickHouse dadi solusi standar kanggo analisis data gedhe lan wis digunakake ing akeh panggonan. Yen sampeyan nggunakake, sampeyan ana ing tren sing bener. Yen sampeyan durung nggunakake, sampeyan ora bisa wedi yen sampeyan bakal ditinggal dhewe lan ora ana sing nulungi, amarga wis akeh sing nindakake iki.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Iki minangka conto panggunaan ClickHouse nyata ing sawetara perusahaan.

  • Conto pisanan yaiku jaringan iklan: migrasi saka Vertica menyang ClickHouse. Lan aku ngerti sawetara perusahaan sing wis transisi saka Vertica utawa ing proses transisi.
  • Conto kapindho yaiku panyimpenan transaksi ing ClickHouse. Iki minangka conto sing dibangun ing antipatterns. Kabeh sing ora kudu ditindakake ing ClickHouse kanthi saran saka pangembang wis rampung ing kene. Lan wis rampung kanthi efektif supaya bisa digunakake. Lan kerjane luwih apik tinimbang solusi transaksional sing khas.
  • Conto katelu yaiku komputasi sing disebarake ing ClickHouse. Ana pitakonan babagan carane ClickHouse bisa digabungake menyang ekosistem Hadoop. Aku bakal nuduhake conto carane perusahaan nindakake sing padha karo peta ngurangi wadhah ing ClickHouse, nglacak lokalisasi data, lan liya-liyane, kanggo ngetung tugas sing ora pati penting.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • LifeStreet minangka perusahaan Ad Tech sing duwe kabeh teknologi sing kasedhiya karo jaringan iklan.
  • Dheweke melu optimasi iklan, penawaran terprogram.
  • Kathah data: udakara 10 milyar acara saben dina. Ing wektu sing padha, acara ing kana bisa dipérang dadi sawetara sub-acara.
  • Ana akeh klien data iki, lan iki ora mung wong, luwih akeh - iki macem-macem algoritma sing melu penawaran program.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Perusahaan wis teka dalan dawa lan eri. Lan aku ngomong babagan ing HighLoad. Pisanan, LifeStreet pindhah saka MySQL (kanthi mandheg ing Oracle) menyang Vertica. Lan sampeyan bisa nemokake crita babagan iki.

Lan kabeh iku apik banget, nanging cepet dadi cetha yen data wis akeh lan Vertica larang. Mula, macem-macem alternatif digoleki. Sawetara wong kasebut kadhaptar ing kene. Lan nyatane, kita nindakake bukti konsep utawa kadhangkala tes kinerja meh kabeh database sing kasedhiya ing pasar wiwit taun 13 nganti 16 lan kira-kira cocog karo fungsine. Lan aku uga ngomong babagan sawetara ing HighLoad.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Tugas kasebut yaiku migrasi saka Vertica ing wiwitan, amarga data saya tambah akeh. Lan padha tansaya exponentially liwat taun. Banjur padha pindhah menyang rak, nanging tetep. Lan prédhiksi wutah iki, syarat bisnis kanggo jumlah data sing ana sawetara jinis analytics sing kudu ditindakake, jelas yen petabytes bakal dibahas. Lan mbayar petabytes wis larang banget, mula kita golek alternatif menyang ngendi.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

arep menyang ngendi? Lan kanggo dangu iku ora cetha ngendi kanggo pindhah, amarga ing tangan siji ana database komersial, padha katon apik. Sawetara bisa meh uga Vertica, sawetara luwih elek. Nanging kabeh larang, ora ana sing luwih murah lan luwih apik ora bisa ditemokake.

Ing sisih liya, ana solusi open source, sing ora akeh banget, yaiku kanggo analytics, bisa diitung nganggo driji. Lan padha free utawa mirah, nanging alon. Lan asring kekurangan fungsi sing dibutuhake lan migunani.

Lan ora ana apa-apa kanggo nggabungake sing apik sing ana ing database komersial lan kabeh gratis sing ana ing open source.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Ora ana apa-apa nganti, kanthi ora sengaja, Yandex narik ClickHouse, kaya pesulap saka topi, kaya terwelu. Lan iku kaputusan sing ora dikarepke, padha isih takon pitakonan: "Napa?", Nanging Nanging.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan langsung ing mangsa panas 2016, kita wiwit ndeleng apa ClickHouse. Lan ternyata kadhangkala bisa luwih cepet tinimbang Vertica. Kita nyoba macem-macem skenario babagan panjaluk sing beda. Lan yen pitakon mung nggunakake siji tabel, yaiku, tanpa gabung (gabung), banjur ClickHouse kaping pindho luwih cepet tinimbang Vertica.

Aku ora kesed lan ndeleng tes Yandex dina liyane. Ing kono padha: ClickHouse kaping pindho luwih cepet tinimbang Vertica, mula dheweke kerep ngomong babagan iki.

Nanging yen ana gabung ing pitakon, mula kabeh ora jelas banget. Lan ClickHouse bisa kaping pindho luwih alon tinimbang Vertica. Lan yen sampeyan rada mbenerake panjaluk kasebut lan nulis maneh, mula padha kira-kira. Ora ala. Lan gratis.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan sawise nampa asil tes, lan ndeleng saka macem-macem sudut, LifeStreet pindhah menyang ClickHouse.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Iki taun 16, aku ngelingake sampeyan. Kaya guyonan tikus sing nangis lan nyucuk dhewe, nanging terus mangan kaktus. Lan iki diterangake kanthi rinci, ana video babagan iki, lsp.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Mula, aku ora bakal ngomong kanthi rinci, aku mung bakal ngomong babagan asil lan sawetara perkara sing menarik sing durung dakcritakake.

Hasile yaiku:

  • Migrasi sing sukses lan luwih saka setahun sistem kasebut wis digunakake ing produksi.
  • Produktivitas lan keluwesan wis tambah. Saka 10 milyar rekaman sing bisa disimpen saben dina banjur kanggo wektu sing cendhak, LifeStreet saiki nyimpen 75 milyar rekaman saben dina lan bisa nindakake iki sajrone 3 wulan utawa luwih. Yen sampeyan ngetung ing puncak, mula iki nganti yuta acara per detik. Luwih saka yuta pitakon SQL saben dina teka ing sistem iki, biasane saka macem-macem robot.
  • Senadyan kasunyatan sing luwih server digunakake kanggo ClickHouse saka Vertica, padha uga disimpen ing hardware, amarga SAS disk rodo larang digunakake ing Vertica. ClickHouse nggunakake SATA. Lan kenapa? Amarga ing sisipan Vertica sinkron. Lan sinkronisasi mbutuhake disk ora alon banget, lan uga jaringan ora alon banget, yaiku operasi sing rada larang. Lan ing sisipan ClickHouse ora sinkron. Menapa malih, sampeyan bisa tansah nulis kabeh sacara lokal, ora ana biaya tambahan kanggo iki, supaya data bisa dilebokake menyang ClickHouse luwih cepet tinimbang menyang Vertika, sanajan ing drive sing luwih alon. Lan maca meh padha. Maca ing SATA, yen ana ing RAID, banjur kabeh iki cukup cepet.
  • Ora diwatesi dening lisensi, yaiku 3 petabyte data ing 60 server (20 server minangka siji replika) lan 6 triliun cathetan ing fakta lan agregasi. Ora ana barang kaya iki sing bisa ditindakake ing Vertica.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Aku saiki nguripake bab praktis ing conto iki.

  • Sing pertama yaiku skema sing efisien. Kathah gumantung ing skema.
  • Kapindho yaiku generasi SQL sing efisien.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Pitakonan OLAP khas yaiku pilih. Sawetara kolom pindhah menyang klompok, sawetara kolom menyang fungsi agregat. Ana ing ngendi, sing bisa diwakili minangka irisan kubus. Kabeh klompok bisa dianggep minangka proyeksi. Lan mulane diarani analisis data multivariat.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan asring iki dimodelake ing wangun skema bintang, nalika ana kasunyatan tengah lan karakteristik kasunyatan iki ing sisih pinggir, ing sadawane sinar.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan ing syarat-syarat desain fisik, carane mathuk ing meja, padha biasane nindakake perwakilan normal. Sampeyan bisa denormalize, nanging larang ing disk lan ora efisien banget kanggo pitakon. Mulane, biasane nggawe perwakilan normal, yaiku tabel fakta lan akeh, tabel dimensi.

Nanging ora bisa uga ing ClickHouse. Ana rong alasan:

  • Kapisan amarga ClickHouse ora duwe gabungan sing apik, yaiku ana sing gabung, nanging ora apik. Nalika ala.
  • Kapindho iku tabel ora dianyari. Biasane ing piring kasebut, sing ana ing sekitar sirkuit bintang, ana sing kudu diganti. Contone, jeneng pelanggan, jeneng perusahaan, lsp. Lan ora bisa.

Lan ana cara metu saka iki ing ClickHouse. malah loro:

  • Kapisan yaiku nggunakake kamus. Kamus Eksternal yaiku sing mbantu 99% ngatasi masalah karo skema bintang, nganyari lan liya-liyane.
  • Kapindho yaiku nggunakake array. Array uga mbantu nyingkirake gabungan lan masalah normalisasi.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • Ora perlu gabung.
  • Bisa dianyari. Wiwit Maret 2018, ana kesempatan sing ora didokumentasikake (sampeyan ora bakal nemokake iki ing dokumentasi) kanggo nganyari kamus sebagian, yaiku entri sing wis diganti. Praktis, kaya meja.
  • Tansah ing memori, supaya gabung karo karya kamus luwih cepet saka yen ana meja sing ing disk lan iku durung kasunyatan sing ana ing cache, paling kamungkinan ora.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • Sampeyan uga ora perlu gabung.
  • Iki minangka perwakilan 1 nganti akeh sing kompak.
  • Lan ing mratelakake panemume, arrays digawe kanggo geeks. Iki minangka fungsi lambda lan liya-liyane.

Iki ora kanggo tembung abang. Iki minangka fungsi sing kuat banget sing ngidini sampeyan nindakake akeh perkara kanthi cara sing prasaja lan elegan.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Conto khas sing mbantu ngatasi array. Conto iki prasaja lan cukup cetha:

  • Telusuri kanthi tag. Yen sampeyan duwe hashtag ing kana lan pengin golek sawetara kiriman kanthi hashtag.
  • Telusuri miturut pasangan kunci-nilai. Ana uga sawetara atribut sing nduweni nilai.
  • Nyimpen dhaptar kunci sing kudu sampeyan terjemahake menyang liyane.

Kabeh tugas iki bisa ditanggulangi tanpa susunan. Tag bisa dilebokake ing sawetara baris lan dipilih kanthi ekspresi biasa utawa ing tabel sing kapisah, nanging sampeyan kudu gabung.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan ing ClickHouse, sampeyan ora perlu nindakake apa-apa, cukup kanggo njlèntrèhaké array string kanggo hashtags utawa nggawe struktur nested kanggo sistem nilai kunci.

Struktur nested bisa uga dudu jeneng sing paling apik. Iki rong susunan sing duwe bagean umum ing jeneng lan sawetara ciri sing gegandhengan.

Lan gampang banget kanggo nggoleki kanthi tag. Nduwe fungsi has, sing mriksa manawa array ngemot unsur. Saben uwong, nemokake kabeh entri sing ana hubungane karo konferensi kita.

Panelusuran miturut subid rada rumit. Pisanan kita kudu nemokake indeks kunci, banjur njupuk unsur karo indeks iki lan mriksa yen nilai iki apa kita kudu. Nanging, iku banget prasaja lan kompak.

Ekspresi reguler sing pengin ditulis yen sampeyan nyimpen kabeh ing siji baris, mula, mula kikuk. Lan, kaloro, kerjane luwih suwe tinimbang rong susunan.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Conto liyane. Sampeyan duwe larik ngendi sampeyan nyimpen ID. Lan sampeyan bisa nerjemahake menyang jeneng. Fungsi arrayMap. Iki minangka fungsi lambda sing khas. Sampeyan ngliwati ekspresi lambda ing kana. Lan dheweke narik nilai jeneng kanggo saben ID saka kamus.

Panelusuran bisa ditindakake kanthi cara sing padha. Fungsi predikat dilewati sing mriksa apa sing cocog karo unsur kasebut.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Bab kasebut nyederhanakake sirkuit lan ngrampungake akeh masalah.

Nanging masalah sabanjure sing kita adhepi, lan sing dakkarepake, yaiku pitakon sing efisien.

  • ClickHouse ora duwe perencana pitakon. Pancen ora.
  • Nanging, pitakon rumit isih kudu direncanakake. Ing kasus apa?
  • Yen ana pirang-pirang gabungan ing pitakon, sampeyan mbungkusake ing subselects. Lan urutan sing dileksanakake iku penting.
  • Lan kaloro - yen panyuwunan disebarake. Amarga ing pitakonan sing disebarake, mung subselect paling jero sing dieksekusi disebarake, lan kabeh liyane diterusake menyang siji server sing disambungake lan dieksekusi ing kana. Mulane, yen sampeyan wis nyebar pitakon kanthi akeh gabung (gabung), sampeyan kudu milih pesenan.

Lan sanajan ing kasus sing luwih gampang, kadhangkala uga perlu kanggo nindakake pakaryan panjadwal lan nulis ulang pitakon sethithik.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Punika conto. Ing sisih kiwa ana pitakon sing nuduhake 5 negara paling dhuwur. Lan butuh 2,5 detik, miturut pendapatku. Lan ing sisih tengen, pitakonan sing padha, nanging rada ditulis maneh. Tinimbang nglumpukake kanthi senar, kita wiwit nglumpukake kanthi kunci (int). Lan luwih cepet. Banjur kita nyambungake kamus menyang asil. Tinimbang 2,5 detik, panyuwunan njupuk 1,5 detik. Iki apik.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Conto sing padha karo saringan nulis ulang. Punika panjalukan kanggo Rusia. Iku mlaku kanggo 5 detik. Yen kita nulis maneh ing kuwi cara sing kita mbandhingaké maneh ora senar, nanging nomer karo sawetara pesawat saka tombol sing ana hubungane karo Rusia, iku bakal luwih cepet.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Ana akeh trik kasebut. Lan ngidini sampeyan nyepetake pitakon sing sampeyan pikir wis mlaku kanthi cepet, utawa, sebaliknya, mlaku alon-alon. Padha bisa digawe malah luwih cepet.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • Karya maksimal ing mode disebarake.
  • Ngurutake miturut jinis minimal, kaya sing daktindakake kanthi ints.
  • Yen ana gabungan (gabung), kamus, mula luwih becik ditindakake minangka pilihan pungkasan, yen sampeyan wis duwe data paling ora dikelompokake, mula operasi gabung utawa panggilan kamus bakal diarani luwih sithik lan bakal luwih cepet. .
  • Ngganti saringan.

Ana teknik liyane, lan ora mung sing aku wis nuduhake. Lan kabeh mau kadhangkala bisa nyepetake eksekusi pitakon kanthi signifikan.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Ayo pindhah menyang conto sabanjure. Perusahaan X saka AS. Dheweke lagi ngopo?

Ana tugas:

  • Link offline transaksi iklan.
  • Modeling model naleni beda.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Apa skenarione?

Pengunjung biasa teka ing situs kasebut, umpamane, kaping 20 saben sasi saka iklan sing beda-beda, utawa kaya sing kadhangkala teka tanpa iklan, amarga dheweke ngelingi situs iki. Katon ing sawetara produk, sijine ing kranjang, njupuk metu saka basket. Lan, ing pungkasan, ana sing tuku.

Pitakonan sing cukup: "Sapa sing kudu mbayar iklan, yen perlu?" lan "Apa iklan sing dipengaruhi dheweke, yen ana?". Yaiku, kenapa dheweke tuku lan kepiye supaya wong kaya wong iki tuku uga?

Kanggo ngatasi masalah iki, sampeyan kudu nyambungake acara sing kedadeyan ing situs web kanthi cara sing bener, yaiku, piye wae mbangun sambungan ing antarane. Banjur dikirim kanggo analisis menyang DWH. Lan adhedhasar analisis iki, mbangun model sapa lan iklan apa sing bakal ditampilake.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Transaksi iklan minangka sakumpulan acara pangguna sing gegandhengan sing diwiwiti saka nuduhake iklan, banjur ana kedadeyan, banjur bisa uga tuku, lan bisa uga ana tumbas ing tuku. Contone, yen iki minangka aplikasi seluler utawa game seluler, mula biasane instalasi aplikasi kasebut ditindakake kanthi gratis, lan yen ana sing ditindakake, mula dhuwit bisa uga dibutuhake. Lan luwih akeh wong nggunakake aplikasi kasebut, luwih akeh regane. Nanging kanggo iki sampeyan kudu nyambungake kabeh.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Ana akeh model naleni.

Sing paling populer yaiku:

  • Interaksi Terakhir, ing ngendi interaksi minangka klik utawa kesan.
  • Interaksi pisanan, yaiku bab pisanan sing nggawa wong menyang situs kasebut.
  • Kombinasi linear - kabeh padha.
  • Atenuasi.
  • Lan sateruse.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan carane kabeh iku bisa ing Panggonan pisanan? Ana Runtime lan Cassandra. Cassandra digunakake minangka panyimpenan transaksi, yaiku kabeh transaksi sing gegandhengan disimpen ing kono. Lan nalika sawetara acara teka ing Runtime, contone, nuduhake sawetara kaca utawa liyane, banjur panjalukan digawe kanggo Cassandra - ana wong kuwi utawa ora. Banjur transaksi sing ana hubungane karo dheweke dipikolehi. Lan sambungan digawe.

Lan yen ana begja yen panjaluk duwe id transaksi, mula gampang. Nanging biasane ora luck. Mulane, perlu kanggo nemokake transaksi pungkasan utawa transaksi karo klik pungkasan, etc.

Lan iku kabeh bisa uga banget anggere naleni kanggo klik pungkasan. Amarga ana, ngomong, 10 yuta klik saben dina, 300 yuta saben sasi, yen kita nyetel jendhela kanggo sasi. Lan wiwit ing Cassandra kudu kabeh ing memori kanggo mbukak cepet, amarga Runtime kudu nanggapi cepet, iku njupuk bab 10-15 server.

Lan nalika padha wanted kanggo nyambungake transaksi menyang tampilan, langsung dadi ora nyenengake. Lan kenapa? Bisa dideleng yen 30 kaping luwih acara kudu disimpen. Lan, kanthi mangkono, sampeyan butuh server kaping 30 luwih akeh. Lan ternyata iki minangka tokoh astronomi. Kanggo njaga nganti 500 server supaya bisa ngubungake, sanajan ana server sing luwih sithik ing Runtime, mula iki minangka salah sawijining tokoh sing salah. Lan padha wiwit mikir apa sing kudu dilakoni.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan kita tindak menyang ClickHouse. Lan carane nindakake ing ClickHouse? Sepisanan, misale jek iki minangka set anti-pola.

  • Transaksi mundak akeh, kita pancing munggah liyane lan liyane acara kanggo iku, IE iku mutable, lan ClickHouse ora bisa banget uga karo obyek mutable.
  • Nalika pengunjung teka, kita kudu narik transaksi kanthi kunci, kanthi id kunjungan. Iki uga minangka pitakon titik, dheweke ora nindakake ing ClickHouse. Biasane ClickHouse duwe…scan gedhe, nanging ing kene kita kudu njupuk sawetara cathetan. Uga antipattern.
  • Kajaba iku, transaksi kasebut ana ing json, nanging dheweke ora pengin nulis maneh, mula dheweke pengin nyimpen json kanthi cara sing ora terstruktur, lan yen perlu, narik apa wae. Lan iki uga antipattern.

Yaiku, sakumpulan antipattern.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Nanging, ternyata nggawe sistem sing bisa digunakake kanthi apik.

Apa sing ditindakake? ClickHouse muncul, ing ngendi log dibuwang, dipérang dadi cathetan. Layanan sing digandhengake katon sing nampa log saka ClickHouse. Sawise iku, saben entri, kanthi id kunjungan, aku nampa transaksi sing bisa uga durung diproses lan ditambahake snapshot, yaiku transaksi sing wis nyambung, yaiku asil karya sadurunge. Aku wis nggawe logika, milih transaksi sing bener, nyambungake acara anyar. Log maneh. Log bali menyang ClickHouse, yaiku sistem sing terus-terusan. Kajaba iku, aku menyang DWH kanggo nganalisa ing kana.

Ing wangun iki ora bisa digunakake kanthi apik. Lan kanggo nggawe luwih gampang kanggo ClickHouse, nalika ana panjalukan kanthi id kunjungan, padha nglumpukake panjalukan kasebut dadi blok 1-000 id kunjungan lan narik kabeh transaksi kanggo 2-000 wong. Lan banjur kabeh bisa.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Yen sampeyan ndeleng ing ClickHouse, mung ana 3 tabel utama sing nyedhiyakake kabeh iki.

Tabel pisanan sing log diunggah, lan log diunggah meh tanpa diproses.

Tabel kapindho. Liwat tampilan sing diwujudake, saka log kasebut, kedadeyan sing durung ana hubungane, yaiku, sing ora ana hubungane. Lan liwat tampilan materialized, transaksi ditarik metu saka log iki kanggo nggawe gambar asli. Yaiku, tampilan materialized khusus nggawe gambar asli, yaiku kahanan akumulasi transaksi pungkasan.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Punika teks sing ditulis ing SQL. Aku kaya kanggo komentar ing sawetara bab penting ing.

Sing penting pisanan yaiku kemampuan kanggo narik kolom lan kolom saka json ing ClickHouse. Yaiku, ClickHouse duwe sawetara cara kanggo nggarap json. Padha banget, banget primitif.

visitParamExtractInt ngidini sampeyan ngekstrak atribut saka json, yaiku hit pisanan bisa digunakake. Lan kanthi cara iki sampeyan bisa narik id transaksi utawa ngunjungi id. wektu iki.

Kapindho, lapangan material sing angel digunakake ing kene. Iki artine apa? Iki tegese sampeyan ora bisa nglebokake ing meja, yaiku ora dilebokake, diwilang lan disimpen nalika dilebokake. Nalika nempel, ClickHouse nindakake pakaryan kanggo sampeyan. Lan apa sing sampeyan butuhake mengko wis ditarik metu saka json.

Ing kasus iki, tampilan materialized kanggo baris mentah. Lan tabel pisanan kanthi log praktis mentah mung digunakake. Lan apa sing ditindakake? Kaping pisanan, ngganti pangurutan, yaiku ngurutake saiki kanthi id kunjungan, amarga kita kudu cepet narik transaksi kasebut kanggo wong tartamtu.

Sing penting nomer loro yaiku index_granularity. Yen sampeyan wis ndeleng MergeTree, biasane 8 minangka index_granularity standar. Opo iki? Iki minangka parameter sparseness indeks. Ing ClickHouse indeks jarang, ora tau ngindeks saben entri. Iku nindakake iki saben 192 8. Lan iki apik nalika akeh data dibutuhake kanggo diwilang, nanging ala nalika sethitik, amarga ana overhead gedhe. Lan yen kita ngurangi granularity indeks, banjur kita ngurangi overhead. Ora bisa dikurangi dadi siji, amarga memori ora cukup. Indeks tansah disimpen ing memori.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Snapshot uga nggunakake sawetara fitur ClickHouse liyane sing menarik.

Pisanan, iku AggregatingMergeTree. Lan AggregatingMergeTree nyimpen argMax, yaiku kahanan transaksi sing cocog karo cap wektu pungkasan. Transaksi digawe kabeh wektu kanggo pengunjung tartamtu. Lan ing negara paling pungkasan saka transaksi iki, kita nambah acara lan kita duwe negara anyar. Iku tekan ClickHouse maneh. Lan liwat argMax ing tampilan materialized iki, kita bisa tansah njaluk negara saiki.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • Ikatan kasebut "dipisahake" saka Runtime.
  • Nganti 3 milyar transaksi saben wulan disimpen lan diproses. Iki minangka urutan gedhene luwih saka ing Cassandra, yaiku ing sistem transaksional sing khas.
  • Kluster server ClickHouse 2x5. 5 server lan saben server duwe replika. Iki malah kurang saka ing Cassandra kanggo nindakake atribusi adhedhasar klik, lan ing kene kita duwe kesan adhedhasar. Yaiku, tinimbang nambah jumlah server kaping 30, dheweke bisa nyuda.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan conto pungkasan yaiku perusahaan finansial Y, sing nganalisa korélasi owah-owahan ing rega saham.

Lan tugas kasebut yaiku:

  • Ana kira-kira 5 saham.
  • Kutipan saben 100 milliseconds dikenal.
  • Data wis dikumpulake luwih saka 10 taun. Ketoke, kanggo sawetara perusahaan luwih, kanggo sawetara kurang.
  • Ana kira-kira 100 milyar baris total.

Lan perlu kanggo ngetung korélasi saka owah-owahan.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Ing ngisor iki ana rong saham lan kuotasi. Yen siji munggah lan liyane munggah, banjur iki korélasi positif, yaiku siji munggah lan liyane munggah. Yen siji munggah, kaya ing pungkasan grafik, lan liyane mudhun, banjur iki korélasi negatif, yaiku nalika siji munggah, liyane tiba.

Nganalisis owah-owahan bebarengan iki, siji bisa nggawe prediksi ing pasar finansial.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Nanging tugase angel. Apa sing ditindakake kanggo iki? Kita duwe 100 milyar cathetan sing duwe: wektu, saham, lan rega. Kita kudu ngetung pisanan 100 milyar kaping beda mlaku saka algoritma rega. RunningDifference punika fungsi ing ClickHouse sing sequentially ngetung prabédan antarane loro strings.

Lan sawise iku, sampeyan kudu ngetung korélasi, lan korélasi kudu diwilang kanggo saben pasangan. Kanggo 5 saham, pasangan 000 yuta. Lan iki akeh, yaiku 12,5 kaping perlu kanggo ngetung fungsi korélasi kasebut.

Lan yen ana sing lali, banjur ͞x lan ͞y iku checkmate. pangarepan sampling. Tegese, perlu ora mung kanggo ngetung oyod lan jumlah, nanging uga siji jumlah liyane ing jumlah kasebut. A Bunch saka petungan kudu rampung 12,5 yuta kaping, lan malah diklompokaké dening jam. Kita uga duwe akeh jam. Lan sampeyan kudu nindakake ing 60 detik. Iku guyon.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Sampeyan kudu duwe wektu paling ora, amarga kabeh iki kerjane alon banget sadurunge ClickHouse teka.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Dheweke nyoba ngetung ing Hadoop, ing Spark, ing Greenplum. Lan kabeh iki alon banget utawa larang. Sing, iku bisa kanggo piye wae ngetung, nanging banjur larang.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Banjur ClickHouse teka lan dadi luwih apik.

Aku ngelingake yen kita duwe masalah karo lokalitas data, amarga korélasi ora bisa dilokalisasi. Kita ora bisa sijine sawetara data ing siji server, sawetara ing liyane lan ngetung, kita kudu kabeh data nang endi wae.

Apa sing ditindakake? Kaping pisanan, data kasebut dilokalisasi. Saben server nyimpen data babagan rega saham tartamtu. Lan padha ora tumpang tindih. Mulane, iku bisa kanggo ngetung logReturn ing podo karo lan independen, kabeh iki kedaden supaya adoh ing podo karo lan mbagekke.

Banjur kita mutusake kanggo nyuda data kasebut, nalika ora kelangan ekspresif. Ngurangi nggunakake larik, yaiku kanggo saben wektu, nggawe larik saham lan larik rega. Mulane, iku njupuk munggah akeh kurang spasi data. Lan padha luwih gampang kanggo nggarap. Iki operasi meh podo, IE kita sebagian maca ing podo karo lan banjur nulis menyang server.

Sawise iku, bisa ditiru. Huruf "r" tegese kita replikasi data iki. Tegese, kita duwe data sing padha ing kabeh telung server - iki array.

Banjur kanthi skrip khusus saka set iki 12,5 yuta korélasi sing kudu diitung, sampeyan bisa nggawe paket. Yaiku, 2 tugas kanthi 500 pasangan korelasi. Lan tugas iki kudu diwilang ing server ClickHouse tartamtu. Dheweke duwe kabeh data, amarga data kasebut padha lan bisa ngetung kanthi urut.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Sepisan maneh, iki sing katon. Kaping pisanan, kita duwe kabeh data ing struktur iki: wektu, saham, rega. Banjur kita ngetung logReturn, yaiku data saka struktur sing padha, nanging tinimbang rega kita wis duwe logReturn. Banjur padha redone, IE kita entuk wektu lan groupArray kanggo saham lan prices. Sreplicated. Lan sawise iku, kita nggawe akeh tugas lan menehi panganan menyang ClickHouse supaya bisa ngetung. Lan kerjane.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Ing bukti konsep, tugas kasebut minangka subtugas, yaiku, kurang data sing dijupuk. Lan mung telung server.

Iki rong tahapan pisanan: ngetung Log_return lan mbungkus ing array njupuk watara jam.

Lan pitungan korélasi kira-kira 50 jam. Nanging 50 jam ora cukup, amarga dheweke kerja nganti pirang-pirang minggu. Iku sukses gedhe. Lan yen sampeyan ngetung, banjur 70 kaping saben detik kabeh diitung ing kluster iki.

Nanging sing paling penting yaiku sistem iki praktis tanpa bottlenecks, yaiku, skala meh linear. Lan padha mriksa metu. Kasil nggedhekake.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

  • Skema sing bener yaiku setengah perang. Lan skema sing bener yaiku nggunakake kabeh teknologi ClickHouse sing dibutuhake.
  • Summing/AggregatingMergeTrees minangka teknologi sing ngidini sampeyan nglumpukake utawa nganggep snapshot negara minangka kasus khusus. Lan banget nyederhanakake akeh perkara.
  • Tampilan Materialized ngidini sampeyan ngliwati watesan indeks siji. Mungkin aku ora ngomong kanthi cetha, nanging nalika kita ngemot log, log mentah ana ing meja kanthi indeks siji, lan log atribut ana ing tabel, yaiku data sing padha, mung disaring, nanging indeks kasebut rampung. liyane. Iku misale jek dadi data sing padha, nanging beda ngurutake. Lan Views Materialized ngidini sampeyan, yen sampeyan butuh, kanggo ngliwati watesan ClickHouse kasebut.
  • Ngurangi granularitas indeks kanggo pitakon titik.
  • Lan nyebarake data kanthi cerdas, coba lokalisasi data ing server sabisa-bisa. Lan nyoba nggawe panjalukan uga nggunakake lokalisasi sabisa-bisa.

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

Lan nyimpulake pidato singkat iki, kita bisa ngomong yen ClickHouse saiki wis dikuwasani kanthi kuat ing wilayah loro database komersial lan database open source, yaiku, khusus kanggo analytics. Dheweke cocog banget karo lanskap iki. Lan apa maneh, alon-alon wiwit akeh wong liya, amarga yen sampeyan duwe ClickHouse, sampeyan ora butuh InfiniDB. Vertika bisa uga ora dibutuhake yen nggawe dhukungan SQL normal. Sekeca!

Teori lan praktik nggunakake ClickHouse ing aplikasi nyata. Alexander Zaitsev (2018)

-Matur nuwun kanggo laporan! Apik banget! Apa ana perbandingan karo Apache Phoenix?

Ora, aku durung krungu wong mbandhingake. Kita lan Yandex nyoba nglacak kabeh perbandingan ClickHouse karo database sing beda. Amarga yen dumadakan ana sing luwih cepet tinimbang ClickHouse, Lesha Milovidov ora bisa turu ing wayah wengi lan wiwit nyepetake kanthi cepet. Aku wis ora krungu saka comparison kuwi.

  • (Aleksey Milovidov) Apache Phoenix minangka mesin SQL sing didhukung dening Hbase. Hbase utamane kanggo skenario kerja nilai kunci. Ing kana, ing saben baris, bisa uga ana nomer kolom kanthi jeneng sing sewenang-wenang. Iki bisa ngandika bab sistem kayata Hbase, Cassandra. Lan pitakon analitis sing abot banget sing ora bisa digunakake kanthi normal. Utawa sampeyan bisa uga mikir yen bisa digunakake yen sampeyan durung duwe pengalaman karo ClickHouse.

  • Спасибо

    • sugeng sonten Aku wis cukup kasengsem ing topik iki, amarga aku duwe subsistem analitis. Nanging nalika ndeleng ClickHouse, aku rumangsa yen ClickHouse cocog banget kanggo analisis acara, bisa diowahi. Lan yen aku kudu nganalisa akeh data bisnis kanthi pirang-pirang tabel gedhe, banjur ClickHouse, sing aku ngerti, ora cocok banget kanggo aku? Utamané yen padha ngganti. Apa iki bener utawa ana conto sing bisa mbantah iki?

    • Iki bener. Lan iki bener ing basis data analitis paling khusus. Lagi ngarang kanggo kasunyatan sing ana siji utawa luwih tabel gedhe sing mutable, lan kanggo akeh cilik sing ngganti alon. Yaiku, ClickHouse ora kaya Oracle, ing ngendi sampeyan bisa nyelehake kabeh lan mbangun sawetara pitakon sing rumit banget. Kanggo nggunakake ClickHouse kanthi efektif, sampeyan kudu mbangun skema kanthi cara sing bisa digunakake kanthi apik ing ClickHouse. Yaiku, ngindhari normalisasi sing berlebihan, gunakake kamus, coba nggawe tautan sing luwih sithik. Lan yen skema kasebut dibangun kanthi cara iki, mula tugas bisnis sing padha bisa ditanggulangi ing ClickHouse luwih efisien tinimbang ing basis data relasional tradisional.

Matur nuwun kanggo laporan! Aku duwe pitakon babagan kasus finansial paling anyar. Dheweke duwe analytics. Iku perlu kanggo mbandhingaké carane padha munggah lan mudhun. Lan aku ngerti yen sampeyan mbangun sistem khusus kanggo analytics iki? Yen sesuk, umpamane, dheweke butuh laporan liyane babagan data iki, apa dheweke kudu mbangun maneh skema lan ngunggah data? Sing, kanggo nindakake sawetara jinis preprocessing kanggo njaluk panjalukan?

Mesthi, iki nggunakake ClickHouse kanggo tugas sing spesifik banget. Bisa luwih tradisional ditanggulangi ing Hadoop. Kanggo Hadoop, iki minangka tugas sing cocog. Nanging ing Hadoop alon banget. Lan tujuanku kanggo nduduhake yen ClickHouse bisa ngatasi tugas sing biasane ditanggulangi kanthi cara sing beda, nanging ing wektu sing padha nindakake luwih efisien. Iki dirancang kanggo tugas tartamtu. Cetha yen ana masalah karo bab sing padha, banjur bisa ditanggulangi kanthi cara sing padha.

Wis cetha. Sampeyan ngomong yen 50 jam diproses. Apa wiwit wiwitan, kapan sampeyan mbukak data utawa entuk asil?

Ya wis.

OK matur nuwun sanget.

Iki ana ing kluster 3 server.

salam! Matur nuwun kanggo laporan! Kabeh iku menarik banget. Aku ora bakal takon sethithik babagan fungsi kasebut, nanging babagan panggunaan ClickHouse babagan stabilitas. Sing, apa sampeyan duwe, apa sampeyan kudu mulihake? Kepiye carane ClickHouse tumindak ing kasus iki? Lan apa sampeyan uga duwe replika? Contone, kita nemoni masalah karo ClickHouse nalika isih metu saka watesan lan tiba.

Mesthi, ora ana sistem sing becik. Lan ClickHouse uga duwe masalah dhewe. Nanging sampeyan wis krungu bab Yandex.Metrica ora bisa digunakake kanggo dangu? Mbokmenawa ora. Wis bisa dipercaya wiwit 2012-2013 ing ClickHouse. Aku bisa ngomong padha bab pengalaman. Kita ora tau ngalami kegagalan lengkap. Sawetara perkara sebagean bisa kedadeyan, nanging ora nate kritis banget kanggo mengaruhi bisnis kasebut. Ora tau kedadeyan. ClickHouse cukup dipercaya lan ora nabrak kanthi acak. Sampeyan ora perlu kuwatir babagan iki. Iku dudu barang mentah. Iki wis dibuktekake dening akeh perusahaan.

Hello! Sampeyan ujar manawa sampeyan kudu langsung mikir babagan skema data. Apa yen kedadeyan? Dataku njeblug. Enem sasi liwat, lan aku ngerti yen ora bisa urip kaya iki, aku kudu ngunggah maneh data lan nindakake apa wae.

Iki mesthi gumantung ing sistem sampeyan. Ana sawetara cara kanggo nindakake iki kanthi meh ora mandheg. Contone, sampeyan bisa nggawe View Materialized kanggo nggawe struktur data sing beda yen bisa dipetakan kanthi unik. Yaiku, yen ngidini pemetaan nggunakake ClickHouse, yaiku extract sawetara perkara, ngganti kunci utama, ngganti partisi, banjur sampeyan bisa nggawe View Materialized. Nimpa data lawas ing kana, sing anyar bakal ditulis kanthi otomatis. Banjur mung ngalih menyang nggunakake View Materialized, banjur ngalih rekaman lan mateni meja lawas. Iki umume cara non-stop.

Спасибо.

Source: www.habr.com

Add a comment