Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Bisan pa sa kamatuoran nga adunay daghan na karon nga datos halos bisan asa, ang mga analytical databases kay exotic gihapon. Dili kaayo sila nailhan ug mas grabe pa nga magamit kini nga epektibo. Daghan ang nagpadayon sa "pagkaon sa cactus" sa MySQL o PostgreSQL, nga gidisenyo alang sa ubang mga senaryo, nag-antos sa NoSQL, o sobra nga bayad alang sa komersyal nga mga solusyon. Gibag-o sa ClickHouse ang mga lagda sa dula ug labi nga gipaubos ang threshold sa pagsulod sa kalibutan sa analytical DBMS.

Report gikan sa BackEnd Conf 2018 ug kini gimantala uban sa pagtugot sa mamumulong.


Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)
Kinsa ako ug nganong naghisgot ako bahin sa ClickHouse? Usa ako ka direktor sa pagpalambo sa LifeStreet, nga naggamit sa ClickHouse. Usab, ako ang nagtukod sa Altinity. Usa kini ka kasosyo sa Yandex nga nagpasiugda sa ClickHouse ug nagtabang sa Yandex nga mahimong mas malampuson ang ClickHouse. Andam usab sa pagpaambit sa kahibalo bahin sa ClickHouse.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug dili ako igsoon ni Petya Zaitsev. Kanunay kong gipangutana bahin niini. Dili, dili kami managsoon.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

"Nasayod ang tanan" nga ang ClickHouse:

  • Paspas kaayo,
  • Komportable kaayo
  • Gigamit sa Yandex.

Dili kaayo nahibal-an kung unsang mga kompanya ug kung giunsa kini gigamit.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Sultihan ko ikaw kung ngano, asa ug giunsa gigamit ang ClickHouse, gawas sa Yandex.

Sultihan ko ikaw kung giunsa pagsulbad ang piho nga mga buluhaton sa tabang sa ClickHouse sa lainlaing mga kompanya, kung unsang mga gamit sa ClickHouse ang imong magamit alang sa imong mga buluhaton, ug kung giunsa kini gigamit sa lainlaing mga kompanya.

Gipili nako ang tulo ka mga pananglitan nga nagpakita sa ClickHouse gikan sa lainlaing mga anggulo. Sa akong hunahuna kini mahimong makapaikag.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ang una nga pangutana mao: "Ngano nga kinahanglan naton ang ClickHouse?". Kini daw usa ka klaro nga pangutana, apan adunay labaw pa sa usa ka tubag niini.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Ang unang tubag kay para sa performance. Ang ClickHouse paspas kaayo. Ang analitika sa ClickHouse paspas usab kaayo. Kanunay kini nga magamit kung adunay lain nga hinay o daotan kaayo.
  • Ang ikaduha nga tubag mao ang gasto. Ug una sa tanan, ang gasto sa scaling. Pananglitan, ang Vertica usa ka maayo kaayo nga database. Maayo kaayo kini kung wala ka daghang terabytes nga datos. Apan kung moabut sa gatusan ka terabytes o petabytes, ang gasto sa usa ka lisensya ug suporta moadto sa usa ka igo nga kantidad. Ug kini mahal. Ug ang ClickHouse libre.
  • Ang ikatulo nga tubag mao ang gasto sa operasyon. Kini usa ka gamay nga lahi nga pamaagi. Ang RedShift usa ka maayo nga analog. Sa RedShift, dali ka makahimo og desisyon. Kini molihok nga maayo, apan sa parehas nga oras, matag oras, matag adlaw, ug matag bulan, bayran nimo ang Amazon nga mahal, tungod kay kini usa ka labi ka mahal nga serbisyo. Ang Google BigQuery usab. Kung adunay usa nga migamit niini, nan nahibal-an niya nga didto mahimo ka magpadagan sa daghang mga hangyo ug makakuha usa ka bayranan sa gatusan ka mga dolyar sa kalit.

Ang ClickHouse wala niini nga mga problema.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Asa gigamit karon ang ClickHouse? Gawas pa sa Yandex, ang ClickHouse gigamit sa usa ka hugpong sa lainlaing mga negosyo ug kompanya.

  • Una sa tanan, kini ang web application analytics, i.e. kini usa ka kaso sa paggamit nga gikan sa Yandex.
  • Daghang mga kompanya sa AdTech ang naggamit sa ClickHouse.
  • Daghang mga kompanya nga kinahanglan mag-analisar sa mga log sa transaksyon gikan sa lainlaing mga gigikanan.
  • Daghang mga kompanya ang naggamit sa ClickHouse aron mamonitor ang mga log sa seguridad. Gi-upload nila kini sa ClickHouse, naghimo og mga taho, ug nakuha ang mga resulta nga ilang gikinahanglan.
  • Ang mga kompanya nagsugod sa paggamit niini sa pinansyal nga pagtuki, i.e. anam-anam nga mga dagkong negosyo nagkaduol usab sa ClickHouse.
  • cloudflare. Kung adunay nagsunod sa ClickHouse, nan tingali nakadungog sila sa ngalan sa kini nga kompanya. Kini mao ang usa sa mga importanteng kontribusyon gikan sa komunidad. Ug sila adunay usa ka seryoso kaayo nga pag-instalar sa ClickHouse. Pananglitan, naghimo sila og Kafka Engine para sa ClickHouse.
  • Ang mga kompanya sa telekomunikasyon nagsugod sa paggamit. Daghang mga kompanya ang naggamit sa ClickHouse ingon pamatuod sa konsepto o naa na sa produksiyon.
  • Gigamit sa usa ka kompanya ang ClickHouse aron mamonitor ang mga proseso sa produksiyon. Gisulayan nila ang mga microcircuits, isulat ang usa ka hugpong sa mga parameter, adunay mga 2 nga mga kinaiya. Ug dayon ilang analisahon kung maayo ba o daotan ang dula.
  • Pag-analisar sa blockchain. Adunay usa ka kompanya sa Russia sama sa Bloxy.info. Kini usa ka pagtuki sa ethereum network. Gibuhat usab nila kini sa ClickHouse.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug ang gidak-on dili igsapayan. Adunay daghang mga kompanya nga naggamit sa usa ka gamay nga server. Ug gitugotan niya sila sa pagsulbad sa ilang mga problema. Ug labi pa nga mga kompanya ang naggamit daghang mga pungpong sa daghang mga server o dosena nga mga server.

Ug kung imong tan-awon ang mga rekord, nan:

  • Yandex: 500+ nga mga server, nagtipig sila og 25 bilyon nga mga rekord sa usa ka adlaw didto.
  • LifeStreet: 60 nga mga server, gibana-bana nga 75 bilyon nga mga rekord matag adlaw. Adunay gamay nga mga server, daghang mga rekord kaysa sa Yandex.
  • CloudFlare: 36 nga mga server, nagtipig sila og 200 bilyon nga mga rekord sa usa ka adlaw. Mas gamay pa ang ilang mga server ug nagtipig labi pa nga datos.
  • Bloomberg: 102 ka mga server, mga usa ka trilyon nga mga entry kada adlaw. Tag-iya sa rekord.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Sa geograpiya, daghan usab kini. Kini nga mapa dinhi nagpakita sa usa ka heatmap kung diin gigamit ang ClickHouse sa kalibutan. Ang Russia, China, America klaro kaayo dinhi. Adunay pipila ka mga nasod sa Uropa. Ug adunay 4 ka cluster.

Kini usa ka pagtandi nga pagtuki, dili kinahanglan nga mangita alang sa hingpit nga mga numero. Kini usa ka pagtuki sa mga bisita nga nagbasa sa mga materyal nga English-pinulongan sa website sa Altinity, tungod kay wala’y mga nagsultig Ruso didto. Ug ang Russia, Ukraine, Belarus, i.e. ang nagsultig Ruso nga bahin sa komunidad, kini ang labing daghang tiggamit. Unya moabut ang US ug Canada. Ang China nag-amping pag-ayo. Halos wala'y China didto unom ka bulan ang milabay, karon naapsan na sa China ang Europe ug nagpadayon sa pagtubo. Ang Old Europe dili usab halayo, ug ang nanguna sa paggamit sa ClickHouse mao, katingad-an, France.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Nganong gisulti ko kining tanan? Aron ipakita nga ang ClickHouse nahimong sumbanan nga solusyon alang sa dagkong pagtuki sa datos ug gigamit na sa daghang mga lugar. Kung gamiton nimo kini, naa ka sa husto nga uso. Kung wala pa nimo kini gigamit, nan dili ka mahadlok nga mabiyaan ka nga mag-inusara ug wala’y makatabang kanimo, tungod kay daghan na ang nagbuhat niini.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Kini ang mga pananglitan sa tinuod nga paggamit sa ClickHouse sa daghang mga kompanya.

  • Ang unang pananglitan mao ang ad network: paglalin gikan sa Vertica ngadto sa ClickHouse. Ug nahibal-an nako ang pipila ka mga kompanya nga nagbalhin gikan sa Vertica o naa sa proseso sa pagbalhin.
  • Ang ikaduhang pananglitan mao ang transactional storage sa ClickHouse. Kini usa ka pananglitan nga gitukod sa mga antipattern. Ang tanan nga dili angay buhaton sa ClickHouse sa tambag sa mga developer gihimo dinhi. Ug kini nahimo nga epektibo kaayo nga kini molihok. Ug kini molihok nga labi ka maayo kaysa sa kasagaran nga solusyon sa transaksyon.
  • Ang ikatulo nga pananglitan mao ang gipang-apod-apod nga kompyuter sa ClickHouse. Adunay usa ka pangutana kung giunsa ang ClickHouse ma-integrate sa Hadoop ecosystem. Ipakita nako ang usa ka pananglitan kung giunsa ang usa ka kompanya naghimo usa ka butang nga susama sa usa ka mapa nga pagkunhod sa sudlanan sa ClickHouse, pagsubay sa lokalisasyon sa datos, ug uban pa, aron makalkulo ang usa ka dili kaayo hinungdanon nga buluhaton.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Ang LifeStreet usa ka kompanya sa Ad Tech nga adunay tanan nga teknolohiya nga adunay usa ka network sa ad.
  • Nag-apil siya sa pag-optimize sa ad, programmatic bidding.
  • Daghang datos: mga 10 bilyon nga panghitabo kada adlaw. Sa parehas nga oras, ang mga panghitabo didto mahimong bahinon sa daghang mga sub-event.
  • Adunay daghang mga kliyente sa kini nga datos, ug kini dili lamang mga tawo, labi pa - kini lainlain nga mga algorithm nga nakigbahin sa programa nga pag-bid.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ang kompanya miabut sa usa ka taas ug tunok nga dalan. Ug ako naghisgot bahin niini sa HighLoad. Una, ang LifeStreet mibalhin gikan sa MySQL (nga adunay mubo nga paghunong sa Oracle) ngadto sa Vertica. Ug makit-an nimo ang usa ka istorya bahin niini.

Ug ang tanan maayo kaayo, apan kini dali nga nahimong tin-aw nga ang datos nagkadako ug ang Vertica mahal. Busa, lain-laing mga alternatibo ang gipangita. Ang uban niini gilista dinhi. Ug sa tinuud, naghimo kami og pruweba sa konsepto o usahay pagsulay sa pasundayag sa hapit tanan nga mga database nga magamit sa merkado gikan sa ika-13 hangtod sa ika-16 nga tuig ug gibanabana nga angay sa mga termino sa pagpaandar. Ug naghisgot usab ako bahin sa pipila niini sa HighLoad.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ang tahas mao ang paglalin gikan sa Vertica sa una, tungod kay ang datos mitubo. Ug sila mitubo nga exponentially sa mga tuig. Unya miadto sila sa estante, apan bisan pa niana. Ug ang pagtagna niini nga pagtubo, mga kinahanglanon sa negosyo alang sa gidaghanon sa mga datos diin ang usa ka matang sa pag-analisa kinahanglan nga buhaton, klaro nga ang mga petabytes sa dili madugay hisgutan. Ug ang pagbayad sa mga petabytes mahal na kaayo, mao nga nangita kami usa ka alternatibo kung asa moadto.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Asa paingon? Ug sa dugay nga panahon dili klaro kung asa moadto, tungod kay sa usa ka bahin adunay mga komersyal nga database, ingon sila nagtrabaho nga maayo. Ang uban nagtrabaho halos sama sa Vertica, ang uban mas grabe. Apan silang tanan mahal, walay mas barato ug mas maayo nga dili makit-an.

Sa laing bahin, adunay mga open source nga solusyon, nga dili kaayo daghan, i.e. alang sa analytics, kini maihap sa mga tudlo. Ug sila libre o barato, apan hinay. Ug sila sa kasagaran kulang sa gikinahanglan ug mapuslanon nga gamit.

Ug walay bisan unsa nga maghiusa sa maayo nga anaa sa komersyal nga mga database ug ang tanan nga libre nga anaa sa open source.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Wala'y bisan unsa hangtud, sa wala damha, gibira ni Yandex ang ClickHouse, sama sa usa ka salamangkero gikan sa usa ka kalo, sama sa usa ka koneho. Ug kini usa ka wala damha nga desisyon, gipangutana gihapon nila ang pangutana: "Ngano?", Apan bisan pa niana.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug dayon sa ting-init sa 2016, nagsugod kami sa pagtan-aw kung unsa ang ClickHouse. Ug kini nahimo nga usahay kini mahimong mas paspas kay sa Vertica. Among gisulayan ang lainlaing mga senaryo sa lainlaing mga hangyo. Ug kung ang pangutana migamit lamang sa usa ka lamesa, nga mao, nga walay bisan unsa nga pag-apil (pag-apil), nan ang ClickHouse doble ka paspas sa Vertica.

Dili kaayo tapolan ug mitan-aw sa mga pagsulay sa Yandex sa miaging adlaw. Parehas ra didto: Ang ClickHouse doble ka paspas sa Vertica, mao nga kanunay nila kini hisgutan.

Apan kung adunay mga pag-apil sa mga pangutana, nan ang tanan nahimo nga dili kaayo klaro. Ug ang ClickHouse mahimong doble nga hinay kaysa Vertica. Ug kung imong gitul-id gamay ang hangyo ug isulat kini pag-usab, nan kini halos managsama. Dili daotan. Ug libre.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug nakadawat sa mga resulta sa pagsulay, ug nagtan-aw niini gikan sa lainlaing mga anggulo, ang LifeStreet miadto sa ClickHouse.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Kini ang ika-16 nga tuig, gipahinumdoman ko ikaw. Morag komedya bahin sa mga ilaga nga naghilak ug nagtusok sa ilang kaugalingon, apan nagpadayon sa pagkaon sa cactus. Ug kini gihulagway sa detalye, adunay usa ka video bahin niini, ug uban pa.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Busa, dili ako maghisgot niini sa detalye, maghisgot lang ako bahin sa mga resulta ug pipila ka makapaikag nga mga butang nga wala nako hisgoti kaniadto.

Ang mga resulta mao ang:

  • Malampuson nga paglalin ug kapin sa usa ka tuig ang sistema nagtrabaho na sa produksiyon.
  • Ang pagka-produktibo ug pagka-flexible miuswag. Sa 10 ka bilyon nga mga rekord nga among makaya nga tipigan kada adlaw ug dayon sa mubo nga panahon, ang LifeStreet karon nagtipig ug 75 ka bilyon nga mga rekord kada adlaw ug mahimo kini sulod sa 3 ka bulan o labaw pa. Kung mag-ihap ka sa kinatas-an, nan kini hangtod sa usa ka milyon nga mga panghitabo matag segundo. Labaw sa usa ka milyon nga mga pangutana sa SQL sa usa ka adlaw moabut sa kini nga sistema, kasagaran gikan sa lainlaing mga robot.
  • Bisan pa sa kamatuoran nga daghang mga server ang gigamit alang sa ClickHouse kaysa sa Vertica, nagtipig usab sila sa hardware, tungod kay labi ka mahal nga mga disk sa SAS ang gigamit sa Vertica. Gigamit sa ClickHouse ang SATA. Ug ngano? Kay sa Vertica insert kay synchronous. Ug ang pag-synchronize nanginahanglan nga ang mga disk dili mohinay pag-ayo, ug usab nga ang network dili mohinay pag-ayo, nga mao, usa ka labi ka mahal nga operasyon. Ug sa ClickHouse insert kay asynchronous. Dugang pa, mahimo nimong isulat kanunay ang tanan sa lokal, wala’y dugang nga gasto alang niini, aron ang mga datos mahimong masulud sa ClickHouse nga labi ka paspas kaysa sa Vertika, bisan sa hinay nga mga pagmaneho. Ug ang pagbasa halos pareho ra. Ang pagbasa sa SATA, kung naa sila sa RAID, nan kini tanan igo nga paspas.
  • Dili limitado sa lisensya, ie 3 petabytes sa data sa 60 servers (20 servers mao ang usa ka replica) ug 6 trilyon nga mga rekord sa mga kamatuoran ug aggregations. Walay sama niini nga makaya sa Vertica.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Mibalik ko karon sa praktikal nga mga butang niini nga pananglitan.

  • Ang una mao ang usa ka epektibo nga laraw. Daghan ang nagdepende sa schema.
  • Ang ikaduha mao ang episyente nga henerasyon sa SQL.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ang kasagarang pangutana sa OLAP usa ka pilion. Pipila sa mga kolum moadto sa grupo pinaagi sa, pipila sa mga kolum moadto sa aggregate function. Adunay kung diin, nga mahimong irepresentar ingon usa ka hiwa sa usa ka cube. Ang tibuok grupo ni mahimong isipon isip projection. Ug mao nga gitawag kini nga multivariate data analysis.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug sa kasagaran kini gimodelo sa porma sa usa ka star-scheme, kung adunay usa ka sentro nga kamatuoran ug mga kinaiya niini nga kamatuoran ubay sa mga kilid, ubay sa mga silaw.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug sa mga termino sa pisikal nga disenyo, kung giunsa kini mohaum sa lamesa, kasagaran sila naghimo sa usa ka normal nga representasyon. Mahimo nimo nga denormalize, apan mahal kini sa disk ug dili kaayo episyente sa mga pangutana. Busa, kasagaran sila naghimo sa usa ka normal nga representasyon, i.e. usa ka fact table ug daghan, daghang dimensyon nga mga lamesa.

Apan dili kini maayo sa ClickHouse. Adunay duha ka rason:

  • Ang una tungod kay ang ClickHouse dili kaayo maayo nga pag-apil, i.e. adunay mga pag-apil, apan kini dili maayo. Samtang daotan.
  • Ang ikaduha mao nga ang mga lamesa wala gi-update. Kasagaran niini nga mga palid, nga anaa sa palibot sa star-circuit, adunay kinahanglan nga usbon. Pananglitan, ngalan sa kustomer, ngalan sa kompanya, ug uban pa. Ug dili kini molihok.

Ug adunay usa ka paagi gikan niini sa ClickHouse. bisan duha:

  • Ang una mao ang paggamit sa mga diksyonaryo. Ang External Dictionaries mao ang makatabang sa 99% nga masulbad ang problema sa star-schema, uban ang mga update ug uban pa.
  • Ang ikaduha mao ang paggamit sa mga arrays. Ang mga array makatabang usab sa pagtangtang sa mga pag-apil ug mga problema sa normalisasyon.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Walay pag-apil gikinahanglan.
  • Ma-upgrade. Sukad sa Marso 2018, usa ka dili dokumentado nga oportunidad ang nagpakita (dili nimo kini makit-an sa dokumentasyon) aron ma-update ang mga diksyonaryo nga partially, ie kadtong mga entry nga nabag-o. Sa praktikal, kini sama sa usa ka lamesa.
  • Kanunay sa panumduman, mao nga ang pag-apil sa usa ka diksyonaryo molihok nga mas paspas kaysa kung kini usa ka lamesa nga naa sa disk ug dili pa kini usa ka kamatuoran nga kini naa sa cache, lagmit dili.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Dili usab nimo kinahanglan nga moapil.
  • Kini usa ka compact 1-to-many nga representasyon.
  • Ug sa akong opinyon, ang mga arrays gihimo alang sa mga geeks. Kini ang mga gimbuhaton sa lambda ug uban pa.

Dili kini alang sa pula nga mga pulong. Kini usa ka kusgan kaayo nga pagpaandar nga nagtugot kanimo sa pagbuhat sa daghang mga butang sa usa ka yano ug elegante nga paagi.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Kasagaran nga mga pananglitan nga makatabang sa pagsulbad sa mga arrays. Kini nga mga pananglitan yano ug klaro nga igo:

  • Pangitaa pinaagi sa mga tag. Kung naa ka mga hashtags didto ug gusto nimo pangitaon ang pipila ka mga post pinaagi sa hashtag.
  • Pangita pinaagi sa key-value pairs. Adunay usab pipila ka mga hiyas nga adunay bili.
  • Pagtipig og mga lista sa mga yawe nga kinahanglan nimong hubaron ngadto sa laing butang.

Kining tanan nga mga buluhaton mahimong masulbad nga walay mga arrays. Ang mga tag mahimong ibutang sa pila ka linya ug mapili nga adunay regular nga ekspresyon o sa usa ka bulag nga lamesa, apan kinahanglan nimo nga buhaton ang pag-apil.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug sa ClickHouse, dili nimo kinahanglan buhaton ang bisan unsang butang, igo na nga ihulagway ang han-ay sa string alang sa mga hashtags o maghimo usa ka nested nga istruktura alang sa mga sistema nga hinungdanon nga kantidad.

Ang nested nga istruktura mahimong dili ang labing kaayo nga ngalan. Kini ang duha ka mga arrays nga adunay usa ka komon nga bahin sa ngalan ug pipila ka mga may kalabutan nga mga kinaiya.

Ug dali ra kaayo pangitaon pinaagi sa tag. Adunay usa ka function has, nga nagsusi nga ang array adunay usa ka elemento. Ang tanan, nakit-an ang tanan nga mga entri nga adunay kalabotan sa among komperensya.

Ang pagpangita pinaagi sa subid medyo mas komplikado. Kinahanglang una natong pangitaon ang indeks sa yawe, ug dayon kuhaa ang elemento niini nga indeks ug susiha nga kini nga bili mao ang atong gikinahanglan. Bisan pa, kini yano kaayo ug compact.

Ang regular nga ekspresyon nga gusto nimong isulat kung imong ibutang ang tanan sa usa ka linya, kini, una, clumsy. Ug, ikaduha, kini nagtrabaho labi pa sa duha ka mga arrays.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Laing pananglitan. Ikaw adunay usa ka laray diin imong gitipigan ang ID. Ug mahimo nimong hubaron kini sa mga ngalan. Kalihokan arrayMap. Kini usa ka tipikal nga function sa lambda. Gipasa nimo ang mga ekspresyon sa lambda didto. Ug gikuha niya ang kantidad sa ngalan sa matag ID gikan sa diksyonaryo.

Ang pagpangita mahimo sa parehas nga paagi. Gipasa ang usa ka function sa predicate nga nagsusi kung unsa ang katugma sa mga elemento.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Kini nga mga butang labi nga nagpasimple sa sirkito ug nagsulbad sa daghang mga problema.

Apan ang sunod nga problema nga among giatubang, ug nga gusto nakong hisgutan, mao ang episyente nga mga pangutana.

  • Ang ClickHouse walay tigplano sa pangutana. Dili gyud.
  • Bisan pa, ang komplikado nga mga pangutana kinahanglan pa nga planohon. Sa unsang mga kaso?
  • Kung adunay daghang mga pag-apil sa pangutana, ibutang nimo kini sa mga subselect. Ug ang pagkasunod-sunod diin sila gipatay hinungdanon.
  • Ug ang ikaduha - kung ang hangyo giapod-apod. Tungod kay sa usa ka gipang-apod-apod nga pangutana, ang kinasuloran nga subselect lamang ang gipatuman nga gipang-apod-apod, ug ang tanan nga butang gipasa sa usa ka server nga imong konektado ug gipatuman didto. Busa, kung nag-apod-apod ka sa mga pangutana nga adunay daghang mga pag-apil (pag-apil), nan kinahanglan nimo nga pilion ang order.

Ug bisan sa mas simple nga mga kaso, usahay gikinahanglan usab nga buhaton ang buluhaton sa scheduler ug isulat pag-usab ang mga pangutana og gamay.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ania ang usa ka pananglitan. Sa wala nga bahin mao ang pangutana nga nagpakita sa top 5 nga mga nasud. Ug kini nagkinahanglan og 2,5 segundos, sa akong opinyon. Ug sa tuo nga bahin, parehas nga pangutana, apan gamay nga gisulat pag-usab. Imbis nga paggrupo pinaagi sa hilo, nagsugod kami sa paggrupo pinaagi sa yawe (int). Ug kini mas paspas. Ug dayon gikonektar namo ang usa ka diksyonaryo sa resulta. Imbes nga 2,5 segundos, ang hangyo nagkinahanglan og 1,5 segundos. Maayo ni.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Usa ka susama nga pananglitan sa pagsulat pag-usab sa mga filter. Ania ang usa ka hangyo alang sa Russia. Nagdagan kini sulod sa 5 segundos. Kung atong isulat pag-usab kini sa paagi nga atong itandi pag-usab dili usa ka hilo, apan mga numero nga adunay pipila ka hugpong sa mga yawe nga may kalabutan sa Russia, nan kini mas paspas.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Adunay daghang ingon nga mga limbong. Ug gitugotan ka nila nga mapadali ang mga pangutana nga sa imong hunahuna kusog nga nagdagan, o, sa kasukwahi, hinay nga nagdagan. Mahimo kini nga mas paspas.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Maximum nga trabaho sa distributed mode.
  • Paghan-ay pinaagi sa minimum nga mga tipo, sama sa akong gibuhat pinaagi sa ints.
  • Kung adunay bisan unsang mga pag-apil (pag-apil), mga diksyonaryo, nan mas maayo nga buhaton kini ingon usa ka katapusan nga paagi, kung naa ka na mga datos nga labing menos partially grouped, nan ang pag-apil nga operasyon o pagtawag sa diksyonaryo tawgon nga dili kaayo oras ug kini mas paspas. .
  • Pag-ilis sa mga filter.

Adunay uban nga mga teknik, ug dili lamang ang akong gipakita. Ug silang tanan usahay makapadali sa pagpatuman sa mga pangutana.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Mopadayon kita sa sunod nga pananglitan. Kompanya X gikan sa USA. Unsay iyang gibuhat?

Adunay usa ka buluhaton:

  • Offline nga pag-link sa mga transaksyon sa advertising.
  • Pag-modelo sa lainlaing mga modelo sa pagbugkos.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Unsa ang senaryo?

Ang usa ka ordinaryo nga bisita moabut sa site, pananglitan, 20 ka beses sa usa ka bulan gikan sa lainlaing mga ad, o parehas nga usahay moabut nga wala’y bisan unsang mga ad, tungod kay nahinumduman niya kini nga site. Nagtan-aw sa pipila ka mga produkto, gibutang kini sa basket, gikuha kini gikan sa basket. Ug, sa katapusan, adunay gipalit.

Makatarunganon nga mga pangutana: "Kinsa ang kinahanglan magbayad alang sa advertising, kung gikinahanglan?" ug "Unsa nga advertising ang nakaimpluwensya kaniya, kung aduna man?". Sa ato pa, nganong nipalit man siya ug unsaon nga makapalit sab ang mga tawo nga sama niining tawhana?

Aron masulbad kini nga problema, kinahanglan nimo nga ikonektar ang mga panghitabo nga nahitabo sa website sa husto nga paagi, nga mao, sa usa ka paagi magtukod usa ka koneksyon tali kanila. Unya ipadala sila alang sa pagtuki sa DWH. Ug base sa kini nga pagtuki, paghimo og mga modelo kung kinsa ug unsa nga mga ad ang ipakita.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ang usa ka transaksyon sa ad usa ka hugpong sa mga may kalabutan nga mga panghitabo sa tiggamit nga nagsugod gikan sa pagpakita sa usa ka ad, unya adunay mahitabo, unya tingali usa ka pagpalit, ug dayon adunay mga gipamalit sulod sa usa ka pagpalit. Pananglitan, kung kini usa ka mobile application o usa ka mobile nga dula, kasagaran ang pag-install sa aplikasyon mahitabo nga libre, ug kung adunay usa ka butang nga nahimo didto, nan mahimo’g kinahanglan ang salapi alang niini. Ug kon mas daghan ang mogasto sa usa ka tawo sa aplikasyon, mas bililhon kini. Apan alang niini kinahanglan nimo nga ikonektar ang tanan.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Adunay daghang mga modelo nga nagbugkos.

Ang labing popular mao ang:

  • Katapusan nga Interaksyon, diin ang interaksyon usa ka pag-klik o impresyon.
  • Unang Interaksyon, i.e. ang unang butang nga nagdala sa usa ka tawo sa site.
  • Linear nga kombinasyon - tanan parehas.
  • Atenuasyon.
  • Ug uban pa

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug sa unsang paagi kining tanan nagtrabaho sa unang dapit? Adunay Runtime ug Cassandra. Gigamit si Cassandra isip pagtipig sa transaksyon, i.e. ang tanan nga may kalabutan nga mga transaksyon gitipigan niini. Ug kung adunay usa ka panghitabo nga moabut sa Runtime, pananglitan, nagpakita sa pipila ka panid o uban pa, unya usa ka hangyo ang gihimo kang Cassandra - naa bay ingon nga tawo o wala. Unya ang mga transaksyon nga may kalabutan niini nakuha. Ug ang koneksyon nahimo.

Ug kung swerte nga adunay transaction id ang hangyo, dali ra. Apan kasagaran walay swerte. Busa, gikinahanglan nga pangitaon ang kataposang transaksyon o ang transaksyon sa kataposang pag-klik, ug uban pa.

Ug kini tanan nagtrabaho pag-ayo basta ang pagbugkos hangtod sa katapusan nga pag-klik. Tungod kay adunay, ingnon ta, 10 milyon nga mga pag-klik matag adlaw, 300 milyon matag bulan, kung magbutang kami usa ka bintana sa usa ka bulan. Ug tungod kay sa Cassandra kini kinahanglan nga ang tanan sa panumduman aron sa pagdagan sa paspas, tungod kay ang Runtime kinahanglan sa pagtubag sa madali, kini nagkinahanglan mahitungod sa 10-15 servers.

Ug kung gusto nila nga i-link ang usa ka transaksyon sa display, nahimo dayon nga dili kaayo lingaw. Ug ngano? Makita nga 30 ka pilo nga dugang nga mga panghitabo ang kinahanglan nga tipigan. Ug, sumala niana, kinahanglan nimo ang 30 ka beses nga daghang mga server. Ug kini nahimo nga kini usa ka matang sa astronomical nga numero. Aron mapadayon ang hangtod sa 500 ka mga server aron mahimo ang pag-link, bisan pa sa kamatuoran nga adunay labi ka gamay nga mga server sa Runtime, nan kini usa ka matang sa sayup nga numero. Ug nagsugod sila sa paghunahuna kung unsa ang buhaton.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug miadto kami sa ClickHouse. Ug unsaon pagbuhat niini sa ClickHouse? Sa una nga pagtan-aw, ingon og kini usa ka hugpong sa mga anti-pattern.

  • Nagtubo ang transaksyon, nag-apil kami sa daghang mga panghitabo niini, i.e. kini mabag-o, ug ang ClickHouse dili kaayo molihok sa mga butang nga mabag-o.
  • Kung ang usa ka bisita moabut kanato, kinahanglan naton nga i-pull out ang iyang mga transaksyon pinaagi sa yawe, pinaagi sa iyang pagbisita id. Kini usa usab ka punto nga pangutana, dili nila kana buhaton sa ClickHouse. Kasagaran ang ClickHouse adunay daghang…scan, apan dinhi kinahanglan namon nga makakuha og pipila ka mga rekord. Usa usab ka antipattern.
  • Dugang pa, ang transaksyon naa sa json, apan dili nila gusto nga isulat kini pag-usab, mao nga gusto nila nga tipigan ang json sa dili istruktura nga paagi, ug kung gikinahanglan, pagbira sa usa ka butang gikan niini. Ug kini usa usab ka antipattern.

Kana mao, usa ka hugpong sa mga antipattern.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Apan bisan pa kini nahimo nga usa ka sistema nga nagtrabaho pag-ayo.

Unsa ang gibuhat? Ang ClickHouse nagpakita, diin ang mga troso gilabay, gibahin sa mga rekord. Ang usa ka gipahinungod nga serbisyo nagpakita nga nakadawat mga troso gikan sa ClickHouse. Pagkahuman niana, alang sa matag entry, pinaagi sa pagbisita id, nakadawat ako mga transaksyon nga mahimo’g wala pa maproseso ug dugang nga mga snapshot, i.e. ang mga transaksyon nga konektado na, nga mao ang sangputanan sa miaging trabaho. Gibuhat na nako ang lohika gikan kanila, gipili ang husto nga transaksyon, nagkonektar sa mga bag-ong panghitabo. Naka-log pag-usab. Ang log mibalik sa ClickHouse, i.e. kini usa ka kanunay nga cyclical nga sistema. Ug gawas pa, miadto ko sa DWH aron analisahon didto.

Sa kini nga porma nga kini wala kaayo molihok. Ug aron mas sayon ​​​​alang sa ClickHouse, kung adunay usa ka hangyo pinaagi sa pagbisita id, ilang gi-grupo kini nga mga hangyo sa mga bloke sa 1-000 nga pagbisita sa mga id ug gibira ang tanan nga mga transaksyon alang sa 2-000 nga mga tawo. Ug unya ang tanan nagtrabaho.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Kung tan-awon nimo ang sulod sa ClickHouse, nan adunay 3 ra ka punoan nga mga lamesa nga nagsilbi tanan niini.

Ang una nga lamesa diin ang mga troso gi-upload, ug ang mga troso gi-upload hapit nga wala’y pagproseso.

Ikaduhang lamesa. Pinaagi sa materyal nga pagtan-aw, gikan niini nga mga troso, ang mga panghitabo nga wala pa gipasangil, i.e., wala'y kalabutan, gipaak. Ug pinaagi sa materyal nga pagtan-aw, ang mga transaksyon gikuha gikan sa kini nga mga troso aron makahimo usa ka snapshot. Kana mao, ang usa ka espesyal nga materyal nga pagtan-aw nagtukod usa ka snapshot, nga mao ang katapusan nga natipon nga kahimtang sa transaksyon.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ania ang teksto nga gisulat sa SQL. Gusto kong mokomentaryo sa pipila ka importanteng mga butang niini.

Ang unang importante nga butang mao ang abilidad sa pagbitad sa mga kolum ug mga uma gikan sa json sa ClickHouse. Kana mao, ang ClickHouse adunay pipila ka mga pamaagi alang sa pagtrabaho sa json. Primitive kaayo sila.

Gitugotan ka sa visitParamExtractInt nga makuha ang mga hiyas gikan sa json, ie ang una nga hit nagtrabaho. Ug niining paagiha mahimo nimong makuha ang transaction id o pagbisita id. Niining higayona.

Ikaduha, ang usa ka malisud nga materyal nga uma gigamit dinhi. Unsay buot ipasabot niini? Kini nagpasabot nga dili nimo kini masulod sa lamesa, i.e. wala kini gisal-ot, kini gikalkula ug gitipigan sa pagsal-ot. Kung mag-paste, ang ClickHouse ang nagbuhat alang kanimo. Ug kung unsa ang imong kinahanglan sa ulahi gikuha na gikan sa json.

Sa kini nga kaso, ang materyal nga pagtan-aw alang sa hilaw nga mga laray. Ug ang una nga lamesa nga adunay halos hilaw nga mga troso gigamit ra. Ug unsay iyang gibuhat? Una, gibag-o niini ang paghan-ay, i.e. ang paghan-ay karon pinaagi sa pagbisita id, tungod kay kinahanglan naton nga dali nga makuha ang iyang transaksyon alang sa usa ka piho nga tawo.

Ang ikaduha nga importante nga butang mao ang index_granularity. Kung nakita nimo ang MergeTree, kasagaran kini 8 pinaagi sa default index_granularity. Unsa ni? Kini ang index sparseness parameter. Sa ClickHouse gamay ra ang indeks, wala gyud kini nag-indeks sa matag entry. Kini mao ang sa matag 192 8. Ug kini mao ang maayo sa diha nga ang usa ka daghan sa mga data nga gikinahanglan nga kalkulado, apan kini mao ang dili maayo sa diha nga ang usa ka gamay, tungod kay adunay usa ka dako nga overhead. Ug kung atong pakunhuran ang index granularity, nan atong pakunhuran ang overhead. Dili kini mahimo nga usa, tungod kay wala’y igo nga memorya. Ang indeks kanunay gitipigan sa memorya.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ang Snapshot naggamit usab ug uban pang makapaikag nga mga bahin sa ClickHouse.

Una, kini mao ang AggregatingMergeTree. Ug ang AggregatingMergeTree nagtipig sa argMax, i.e. kini ang kahimtang sa transaksyon nga katumbas sa katapusang timestamp. Ang mga transaksyon gihimo sa tanang panahon alang sa gihatag nga bisita. Ug sa katapusan nga kahimtang sa kini nga transaksyon, kami nagdugang usa ka panghitabo ug kami adunay usa ka bag-ong estado. Naigo kini pag-usab sa ClickHouse. Ug pinaagi sa argMax sa kini nga materyal nga pagtan-aw, kanunay naton makuha ang karon nga kahimtang.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Ang pagbugkos mao ang "decoupled" gikan sa Runtime.
  • Moabot sa 3 bilyon nga mga transaksyon matag bulan ang gitipigan ug giproseso. Kini mao ang usa ka han-ay sa magnitude nga labaw pa kay sa Cassandra, i.e. sa usa ka tipikal nga transactional nga sistema.
  • Cluster sa 2x5 ClickHouse server. 5 ka mga server ug ang matag server adunay kopya. Mas gamay pa kini kaysa sa Cassandra aron mahimo ang pag-klik nga gibase sa pag-attribusyon, ug dinhi kami adunay gibase sa impresyon. Sa ato pa, imbes nga madugangan ang gidaghanon sa mga server sa 30 ka beses, nakahimo sila sa pagkunhod niini.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug ang katapusan nga pananglitan mao ang pinansyal nga kompanya Y, nga nag-analisar sa mga correlasyon sa mga pagbag-o sa mga presyo sa stock.

Ug ang buluhaton mao ang:

  • Adunay gibana-bana nga 5 ka bahin.
  • Ang mga kinutlo matag 100 millisecond nahibal-an.
  • Ang datos natipon sa 10 ka tuig. Dayag, alang sa pipila ka mga kompanya labi pa, alang sa uban gamay.
  • Adunay gibana-bana nga 100 bilyon nga mga laray sa kinatibuk-an.

Ug gikinahanglan ang pagkalkulo sa correlation sa mga kausaban.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ania ang duha ka mga stock ug ang ilang mga kinutlo. Kung ang usa mosaka ug ang usa mosaka, nan kini usa ka positibo nga correlation, i.e. ang usa mosaka ug ang lain mosaka. Kung ang usa mosaka, sama sa katapusan sa graph, ug ang usa moubos, nan kini usa ka negatibo nga correlation, i.e. kung ang usa mobangon, ang lain mahulog.

Ang pag-analisar niining mga pagbag-o sa usag usa, ang usa makahimo sa mga panagna sa pinansyal nga merkado.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Apan lisud ang buluhaton. Unsa ang gibuhat alang niini? Kami adunay 100 bilyon nga mga rekord nga adunay: oras, stock, ug presyo. Kinahanglan natong kuwentahon ang unang 100 ka bilyon ka pilo sa running Difference gikan sa price algorithm. Ang RunningDifference usa ka function sa ClickHouse nga sunud-sunod nga nagkalkula sa kalainan tali sa duha ka mga kuwerdas.

Ug human niana, kinahanglan nimo nga kuwentahon ang correlation, ug ang correlation kinahanglang kuwentahon alang sa matag pares. Alang sa 5 ka bahin, ang mga pares 000 milyon. Ug kini usa ka daghan, i.e. 12,5 ka beses nga gikinahanglan aron makalkulo ang ingon nga function sa correlation.

Ug kung adunay nakalimot, nan ang ͞x ug ͞y usa ka checkmate. pagpaabot sa sampling. Nga mao, gikinahanglan dili lamang sa pagkalkulo sa mga gamut ug mga sums, apan usab sulod niini nga mga sums usa pa ka sum. Ang usa ka hugpong sa mga kalkulasyon kinahanglan nga buhaton 12,5 milyon nga mga panahon, ug bisan paggrupo sa mga oras. Daghan sab mig oras. Ug kinahanglan nimo nga buhaton kini sa 60 segundos. Joke ra.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Kinahanglan nga adunay panahon sa bisan unsang paagi, tungod kay kining tanan nagtrabaho kaayo, hinay kaayo sa wala pa moabut ang ClickHouse.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Gisulayan nila nga kuwentahon kini sa Hadoop, sa Spark, sa Greenplum. Ug kining tanan hinay kaayo o mahal. Kana mao, posible nga sa usa ka paagi makalkulo, apan unya kini mahal.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug unya ang ClickHouse miabut ug ang mga butang nahimong mas maayo.

Gipahinumdoman ko ikaw nga kami adunay problema sa lokalidad sa datos, tungod kay ang mga correlation dili ma-localize. Dili namo ibutang ang pipila ka mga datos sa usa ka server, ang uban sa lain ug kuwentahon, kinahanglan naa nato ang tanang datos bisan asa.

Unsay ilang gibuhat? Sa sinugdan, ang datos gi-localize. Ang matag server nagtipig og datos sa pagpresyo sa usa ka hugpong sa mga bahin. Ug dili sila magsapaw. Busa, kini mao ang posible nga sa pagkalkulo logReturn sa parallel ug independente, ang tanan nga kini mahitabo sa halayo sa parallel ug-apod-apod.

Pagkahuman nakahukom kami nga pakunhuran kini nga mga datos, samtang dili mawala ang pagpahayag. Bawasan ang paggamit sa mga arrays, i.e. alang sa matag yugto sa panahon, paghimo og usa ka han-ay sa mga stock ug usa ka han-ay sa mga presyo. Busa, kini nagkinahanglan og mas gamay nga data space. Ug sila mas sayon ​​​​sa pagtrabaho. Kini halos managsama nga mga operasyon, i.e. partially kita nagbasa sa parallel ug dayon nagsulat sa server.

Human niana, kini mahimo nga kopyahon. Ang letra nga "r" nagpasabut nga among gisundog kini nga datos. Kana mao, kami adunay parehas nga datos sa tanan nga tulo nga mga server - kini ang mga arrays.

Ug unya sa usa ka espesyal nga script gikan sa kini nga set sa 12,5 milyon nga mga correlations nga kinahanglan kalkulado, mahimo ka maghimo mga pakete. Kana mao, 2 nga mga buluhaton nga adunay 500 nga mga parisan sa mga correlations. Ug kini nga buluhaton kinahanglan nga kuwentahon sa usa ka piho nga server sa ClickHouse. Anaa niya ang tanan nga datos, tungod kay parehas ang datos ug mahimo niya kini nga makalkulo nga sunud-sunod.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Sa makausa pa, mao kini ang hitsura. Una, naa namo ang tanan nga datos niini nga istruktura: oras, bahin, presyo. Dayon among gikalkulo ang logReturn, i.e. data sa samang istruktura, apan imbes sa presyo aduna na kami logReturn. Unya giusab sila, ie nakuha namon ang oras ug grupoArray alang sa mga stock ug mga presyo. Gipildi. Ug pagkahuman niana, nakamugna kami usa ka hugpong sa mga buluhaton ug gipakaon sila sa ClickHouse aron kini maihap. Ug kini molihok.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Sa pamatuod sa konsepto, ang buluhaton usa ka subtask, i.e., gamay nga datos ang nakuha. Ug tulo ra ka server.

Ang unang duha ka hugna: ang pagkuwenta sa Log_return ug pagputos sa mga arrays niabot ug mga usa ka oras.

Ug ang kalkulasyon sa correlation mga 50 ka oras. Apan ang 50 ka oras dili igo, tungod kay sila nagtrabaho kaniadto sulod sa mga semana. Kini usa ka dako nga kalampusan. Ug kung mag-ihap ka, unya 70 ka beses matag segundo ang tanan giihap sa kini nga kumpol.

Apan ang labing hinungdanon nga butang mao nga kini nga sistema halos wala’y mga bottleneck, i.e., kini nga mga timbangan hapit sa linya. Ug ila kining gisusi. Malampuson nga gipadako kini.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

  • Ang husto nga laraw mao ang katunga sa kalampusan. Ug ang husto nga laraw mao ang paggamit sa tanan nga kinahanglan nga mga teknolohiya sa ClickHouse.
  • Ang Summing/AggregatingMergeTrees mao ang mga teknolohiya nga nagtugot kanimo sa pagtipon o pagkonsiderar sa snapshot sa estado isip usa ka espesyal nga kaso. Ug gipasimple kaayo niini ang daghang mga butang.
  • Gitugotan ka sa Materialized Views nga laktawan ang usa ka limitasyon sa indeks. Tingali wala nako kini gisulti nga tin-aw kaayo, apan sa dihang gikarga namo ang mga troso, ang mga hilaw nga troso anaa sa lamesa nga adunay usa ka indeks, ug ang mga log sa hiyas anaa sa lamesa, nga mao ang sama nga datos, gisala lamang, apan ang indeks hingpit nga uban. Morag parehas kini nga datos, apan lahi nga paghan-ay. Ug gitugotan ka sa Materialized Views, kung kinahanglan nimo kini, nga laktawan ang ingon nga limitasyon sa ClickHouse.
  • Bawasan ang index granularity alang sa mga pangutana sa punto.
  • Ug pag-apod-apod sa datos nga maalamon, sulayi nga i-localize ang datos sa sulod sa server kutob sa mahimo. Ug sulayi ang paghimo og mga hangyo gamita usab ang lokalisasyon kung mahimo kutob sa mahimo.

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

Ug ang pagsumada niining mubo nga pakigpulong, makaingon kita nga ang ClickHouse karon lig-on nga nag-okupar sa teritoryo sa duha ka komersyal nga mga database ug mga open source database, i.e., ilabi na alang sa analytics. Hingpit siyang mohaum niini nga talan-awon. Ug unsa pa, kini hinayhinay nga nagsugod sa pagsamok sa uban, tungod kay kung ikaw adunay ClickHouse, dili nimo kinahanglan ang InfiniDB. Mahimong dili kinahanglan ang Vertika sa dili madugay kung maghimo sila og normal nga suporta sa SQL. Enjoy!

Teorya ug praktis sa paggamit sa ClickHouse sa tinuod nga mga aplikasyon. Alexander Zaitsev (2018)

-Salamat sa report! Makapainteres kaayo! Aduna bay mga pagtandi sa Apache Phoenix?

Dili, wala ako nakadungog bisan kinsa nga nagtandi. Kami ug ang Yandex naningkamot nga masubay ang tanan nga pagtandi sa ClickHouse sa lainlaing mga database. Tungod kay kung sa kalit adunay usa ka butang nga nahimo nga mas paspas kaysa ClickHouse, nan si Lesha Milovidov dili makatulog sa gabii ug magsugod dayon sa pagpadali niini. Wala ako makadungog sa ingon nga pagtandi.

  • (Aleksey Milovidov) Ang Apache Phoenix usa ka makina sa SQL nga gipadagan sa Hbase. Ang Hbase nag-una alang sa senaryo sa trabaho nga hinungdanon nga kantidad. Didto, sa matag linya, mahimong adunay usa ka arbitraryong gidaghanon sa mga kolum nga adunay arbitraryong mga ngalan. Mahimong isulti kini bahin sa mga sistema sama sa Hbase, Cassandra. Ug kini tukma nga bug-at nga analitikal nga mga pangutana nga dili molihok nga normal alang kanila. O tingali maghunahuna ka nga maayo sila kung wala ka'y ​​kasinatian sa ClickHouse.

  • Бпасибо

    • Maayong hapon Interesado na ako sa kini nga hilisgutan, tungod kay ako adunay usa ka analytical subsystem. Apan sa akong pagtan-aw sa ClickHouse, akong gibati nga ang ClickHouse haum kaayo alang sa pagtuki sa panghitabo, mausab. Ug kung kinahanglan nako nga analisahon ang daghang datos sa negosyo nga adunay daghang dagkong mga lamesa, nan ang ClickHouse, sa akong nasabtan, dili kaayo angay alang kanako? Labi na kung magbag-o sila. Husto ba kini o adunay mga pananglitan nga makapanghimakak niini?

    • Husto kini. Ug kini tinuod sa kadaghanan sa mga espesyal nga analytical database. Sila gipahaum alang sa kamatuoran nga adunay usa o daghan pa nga dagkong mga lamesa nga mausab, ug alang sa daghang gagmay nga mga hinay nga pagbag-o. Kana mao, ang ClickHouse dili sama sa Oracle, diin mahimo nimong ibutang ang tanan ug magtukod og pipila ka komplikado nga mga pangutana. Aron epektibo nga magamit ang ClickHouse, kinahanglan nimo nga maghimo usa ka laraw sa paagi nga molihok nga maayo sa ClickHouse. Kana mao, likayi ang sobra nga pag-normalize, gamita ang mga diksyonaryo, pagsulay sa paghimo og mas gamay nga taas nga mga link. Ug kung ang laraw gitukod sa ingon niini nga paagi, nan ang parehas nga mga buluhaton sa negosyo mahimong masulbad sa ClickHouse nga labi ka episyente kaysa sa tradisyonal nga database sa relational.

Salamat sa report! Naa koy pangutana bahin sa pinakabag-o nga pinansyal nga kaso. Naa silay analytics. Kinahanglan nga itandi kung giunsa nila pagsaka ug paubos. Ug akong nasabtan nga imong gitukod ang sistema nga espesipiko alang niini nga analytics? Kung ugma, pananglitan, kinahanglan nila ang uban pang taho bahin sa kini nga datos, kinahanglan ba nila nga tukuron pag-usab ang schema ug i-upload ang datos? Nga mao, sa pagbuhat sa usa ka matang sa preprocessing sa pagkuha sa hangyo?

Siyempre, kini ang paggamit sa ClickHouse alang sa usa ka piho nga buluhaton. Mahimo kini nga mas tradisyonal nga masulbad sulod sa Hadoop. Alang sa Hadoop, kini usa ka sulundon nga buluhaton. Apan sa Hadoop kini hinay kaayo. Ug ang akong tumong mao ang pagpakita nga ang ClickHouse makasulbad sa mga buluhaton nga kasagarang masulbad pinaagi sa hingpit nga lain-laing mga paagi, apan sa samang higayon buhaton kini nga mas episyente. Kini gipahaum alang sa usa ka piho nga buluhaton. Klaro nga kung adunay problema sa usa ka butang nga parehas, nan kini masulbad sa parehas nga paagi.

Klaro na. Giingon nimo nga 50 ka oras ang giproseso. Gikan ba sa sinugdanan, kanus-a nimo gikarga ang datos o nakuha ang mga resulta?

Oo Oo.

OK salamat kaayo.

Kini anaa sa 3 server cluster.

Mga pangomosta! Salamat sa report! Ang tanan makaiikag kaayo. Dili ko mangutana og gamay mahitungod sa pag-andar, apan mahitungod sa paggamit sa ClickHouse sa mga termino sa kalig-on. Sa ato pa, naa ba ka, kinahanglan ba nimo ibalik? Giunsa ang paggawi sa ClickHouse sa kini nga kaso? Ug nahitabo ba nga naa kay replica usab? Pananglitan, nakasugat mi og problema sa ClickHouse sa dihang nakagawas pa kini sa limitasyon niini ug nahulog.

Siyempre, walay maayong mga sistema. Ug ang ClickHouse usab adunay kaugalingon nga mga problema. Apan nakadungog ka ba bahin sa Yandex.Metrica nga dili molihok sa dugay nga panahon? Murag dili. Kini nagtrabaho nga kasaligan sukad 2012-2013 sa ClickHouse. Makasulti usab ako bahin sa akong kasinatian. Wala pa gyud mi hingpit nga kapakyasan. Ang pipila ka mga partial nga mga butang mahimong mahitabo, apan kini dili igo nga kritikal aron seryoso nga makaapekto sa negosyo. Wala gyud ni mahitabo. Ang ClickHouse kasaligan kaayo ug wala mag-crash nga random. Dili ka kinahanglan mabalaka bahin niini. Dili kini usa ka hilaw nga butang. Kini napamatud-an sa daghang mga kompanya.

Hello! Miingon ka nga kinahanglan nimong hunahunaon dayon ang data schema. Unsa kaha kung nahitabo? Ang akong data nagbubo ug nagbubo. Unom ka bulan ang milabay, ug akong nasabtan nga imposible nga magkinabuhi nga sama niini, kinahanglan nako nga i-upload pag-usab ang datos ug buhaton ang usa ka butang uban kanila.

Nagdepende kini siyempre sa imong sistema. Adunay daghang mga paagi sa pagbuhat niini nga halos walay paghunong. Pananglitan, mahimo ka maghimo usa ka Materialized View diin maghimo usa ka lahi nga istruktura sa datos kung mahimo kini nga talagsaon nga mapa. Kana mao, kung gitugotan niini ang pagmapa gamit ang ClickHouse, i.e. pagkuha sa pipila ka mga butang, usba ang panguna nga yawe, usba ang partitioning, nan mahimo ka maghimo usa ka Materialized View. I-overwrite ang imong daan nga data didto, ang mga bag-o awtomatikong isulat. Ug dayon ibalhin lang sa paggamit sa Materialized View, dayon ibalhin ang rekord ug patyon ang daan nga lamesa. Kini sa kasagaran usa ka non-stop nga pamaagi.

Бпасибо.

Source: www.habr.com

Idugang sa usa ka comment