Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Сарфи назар аз он, ки ҳоло қариб дар ҳама ҷо маълумоти зиёде мавҷуд аст, базаҳои аналитикӣ ҳанӯз ҳам хеле экзотикӣ мебошанд. Онхо кам маълуманд ва хатто аз онхо самаранок истифода бурда наметавонанд. Бисёриҳо "хӯрдани кактус"-ро бо MySQL ё PostgreSQL идома медиҳанд, ки барои сенарияҳои дигар тарҳрезӣ шудаанд, бо NoSQL мубориза мебаранд ё барои ҳалли тиҷоратӣ аз ҳад зиёд пардохт мекунанд. ClickHouse як тағирдиҳандаи бозӣ аст ва монеаи ворид шудан ба ҷаҳони DBMS-и таҳлилиро ба таври назаррас коҳиш медиҳад.

Ҳисобот аз BackEnd Conf 2018 аст ва он бо иҷозати сухангӯ нашр мешавад.


Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)
Ман кистам ва чаро ман дар бораи ClickHouse гап мезанам? Ман директори рушд дар LifeStreet ҳастам, ки ClickHouse-ро истифода мебарад. Ман инчунин муассиси Altinity ҳастам. Ин шарики Yandex аст, ки ClickHouse-ро пешбарӣ мекунад ва ба Яндекс кӯмак мекунад, ки ClickHouse-ро муваффақтар кунад. Ман инчунин омодаам, ки донишро дар бораи ClickHouse мубодила кунам.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва ман ҳам бародари Петя Зайцев нестам. Дар ин бора аз ман зуд-зуд мепурсанд. Не, мо бародар нестем.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

"Ҳама медонад", ки ClickHouse:

  • Хеле зуд,
  • Хеле қулай,
  • Дар Яндекс истифода мешавад.

Дар кадом ширкатҳо ва чӣ гуна он истифода мешавад, каме камтар маълум аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ман ба шумо мегӯям, ки барои чӣ, дар куҷо ва чӣ тавр ClickHouse истифода мешавад, ғайр аз Яндекс.

Ман ба шумо мегӯям, ки чӣ гуна мушкилоти мушаххас тавассути ClickHouse дар ширкатҳои гуногун ҳал карда мешаванд, кадом асбобҳои ClickHouse-ро шумо метавонед барои вазифаҳои худ истифода баред ва чӣ гуна онҳо дар ширкатҳои гуногун истифода мешуданд.

Ман се мисолеро интихоб кардам, ки ClickHouse-ро аз паҳлӯҳои гуногун нишон медиҳанд. Ман фикр мекунам ҷолиб хоҳад буд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Саволи аввал ин аст: "Чаро ба мо ClickHouse лозим аст?" Чунин ба назар мерасад, ки савол хеле равшан аст, аммо ба он беш аз як ҷавоб вуҷуд дорад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • Ҷавоби аввал бо сабабҳои иҷроиш аст. ClickHouse хеле зуд аст. Таҳлилҳо дар ClickHouse низ хеле зуд аст. Онро аксар вақт истифода бурдан мумкин аст, ки чизи дигар хеле суст ё хеле бад кор мекунад.
  • Ҷавоби дуюм хароҷот аст. Ва пеш аз ҳама, арзиши миқёси. Масалан, Vertica махзани комилан аъло аст. Он хеле хуб кор мекунад, агар шумо терабайтҳои зиёди маълумот надошта бошед. Аммо вақте ки мо дар бораи садҳо терабайт ё петабайт гап мезанем, арзиши литсензия ва дастгирӣ маблағи хеле назаррасро ташкил медиҳад. Ва гарон аст. Ва ClickHouse ройгон аст.
  • Ҷавоби сеюм арзиши амалиётӣ мебошад. Ин як равиши каме дигар аст. RedShift як аналоги бузург аст. Бо RedShift шумо метавонед хеле зуд қарор қабул кунед. Он хуб кор хоҳад кард, аммо дар айни замон, ҳар соат, ҳар рӯз ва ҳар моҳ шумо ба Amazon хеле зиёд пардохт мекунед, зеро ин хидмати хеле гарон аст. Google BigQuery низ. Агар касе онро истифода бурда бошад, пас ӯ медонад, ки шумо метавонед дар он ҷо якчанд дархостҳоро иҷро кунед ва ногаҳон барои садҳо доллар ҳисобнома-фактура гиред.

ClickHouse ин мушкилот надорад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

ClickHouse ҳоло дар куҷо истифода мешавад? Илова ба Яндекс, ClickHouse дар як қатор корхонаҳо ва ширкатҳои гуногун истифода мешавад.

  • Пеш аз ҳама, ин таҳлили веб-барномаҳост, яъне ин мисолест, ки аз Яндекс омадааст.
  • Бисёре аз ширкатҳои AdTech ClickHouse-ро истифода мебаранд.
  • Ширкатҳои сершуморе, ки бояд гузоришҳои амалиётиро аз манбаъҳои гуногун таҳлил кунанд.
  • Якчанд ширкатҳо ClickHouse-ро барои назорат кардани гузоришҳои амниятӣ истифода мебаранд. Онҳо онҳоро ба ClickHouse бор мекунанд, ҳисобот медиҳанд ва натиҷаҳои заруриро мегиранд.
  • Ширкатҳо ба истифодаи он дар таҳлили молиявӣ шурӯъ мекунанд, яъне тадриҷан тиҷорати калон низ ба ClickHouse наздик мешаванд.
  • CloudFlare. Агар касе ClickHouse-ро пайравӣ кунад, шумо эҳтимол номи ин ширкатро шунидаед. Ин яке аз саҳмгузорони муҳими ҷомеа аст. Ва онҳо як насби хеле ҷиддӣ ClickHouse доранд. Масалан, онҳо Кафка Engine барои ClickHouse сохтанд.
  • Корхонахои алока ба истифода дода шуданд. Якчанд ширкатҳо ClickHouse-ро ҳамчун далели консепсия ё аллакай дар истеҳсолот истифода мебаранд.
  • Як ширкат барои назорат кардани равандҳои истеҳсолӣ ClickHouse-ро истифода мебарад. Онҳо микросхемаҳоро месанҷанд, як қатор параметрҳоро менависанд, тақрибан 2 хусусият мавҷуданд. Ва он гоҳ онҳо таҳлил мекунанд, ки партия хуб аст ё бад.
  • Таҳлили Blockchain. Ширкати русӣ бо номи Bloxy.info вуҷуд дорад. Ин таҳлили шабакаи Ethereum аст. Онҳо инчунин ин корро дар ClickHouse анҷом доданд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Илова бар ин, андоза муҳим нест. Бисёр ширкатҳое ҳастанд, ки як сервери хурдро истифода мебаранд. Ва ба онҳо имкон медиҳад, ки мушкилоти худро ҳал кунанд. Ва ҳатто бештари ширкатҳо кластерҳои калони серверҳои сершумор ё даҳҳо серверҳоро истифода мебаранд.

Ва агар шумо ба сабтҳо нигаред, пас:

  • Яндекс: зиёда аз 500 сервер, онҳо дар як рӯз 25 миллиард сабтро нигоҳ медоранд.
  • LifeStreet: 60 сервер, тақрибан 75 миллиард сабт дар як рӯз. Дар муқоиса бо Яндекс серверҳо ва сабтҳои бештар мавҷуданд.
  • CloudFlare: 36 сервер, онҳо дар як рӯз 200 миллиард сабтро нигоҳ медоранд. Онҳо серверҳои камтар доранд ва маълумоти бештарро нигоҳ медоранд.
  • Bloomberg: 102 сервер, тақрибан як триллион сабт дар як рӯз. Дорандаи рекорд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Аз ҷиҳати ҷуғрофӣ ин ҳам зиёд аст. Ин харита харитаи гармиеро нишон медиҳад, ки дар куҷо ClickHouse дар ҷаҳон истифода мешавад. Дар ин ҷо Русия, Чин ва Амрико равшананд. Кишварҳои Аврупо каманд. Ва 4 кластерро ҷудо кардан мумкин аст.

Ин таҳлили муқоисавӣ аст, барои ҷустуҷӯи рақамҳои мутлақ лозим нест. Ин таҳлили меҳмононест, ки маводи инглисиро дар вебсайти Altinity мехонанд, зеро дар онҷо русзабонҳо нестанд. Ва Русия, Украина, Беларус, яъне қисми русзабони ҷомеа аз ҳама бештар корбаранд. Пас аз он ИМА ва Канада меоянд. Хитой хеле пеш рафта истодааст. Шаш моҳ пеш дар он ҷо Чин қариб набуд, ҳоло Чин аллакай аз Аврупо пеш гузаштааст ва рушд карданро идома медиҳад. Аврупои кӯҳна низ қафо намемонад ва пешвои истифодаи ClickHouse, аҷиб аст, ки Фаронса аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Чаро ман ин ҳамаро мегӯям? Барои нишон додани он, ки ClickHouse як ҳалли стандартӣ барои таҳлили маълумоти калон шуда истодааст ва аллакай дар бисёр ҷойҳо истифода мешавад. Агар шумо онро истифода баред, шумо дар тамоюли дуруст ҳастед. Агар шумо ҳоло онро истифода набаред, пас шумо набояд тарсид, ки шумо танҳо мемонед ва ҳеҷ кас ба шумо кӯмак намекунад, зеро бисёриҳо аллакай ин корро мекунанд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Инҳо намунаҳои истифодаи воқеии ClickHouse дар якчанд ширкатҳо мебошанд.

  • Намунаи аввал шабакаи таблиғотӣ аст: муҳоҷират аз Vertica ба ClickHouse. Ва ман чанд ширкатеро медонам, ки аз Vertica гузаштаанд ё дар ҳоли гузариш ҳастанд.
  • Мисоли дуюм ин нигаҳдории транзаксия дар ClickHouse мебошад. Ин як мисолест, ки бар зидди намунаҳо сохта шудааст. Ҳама чизеро, ки дар ClickHouse иҷро кардан лозим нест, мувофиқи маслиҳати таҳиягарон дар ин ҷо анҷом дода мешавад. Ва дар айни замой он чунон самарабахш ичро карда мешавад, ки кор мекунад. Ва он аз як ҳалли маъмулии муомилот хеле беҳтар кор мекунад.
  • Мисоли сеюм ин ҳисоббарорӣ дар ClickHouse тақсим карда мешавад. Саволе ба миён омад, ки чӣ гуна ClickHouse-ро ба экосистемаи Hadoop ворид кардан мумкин аст. Ман як мисолеро нишон медиҳам, ки чӣ гуна як ширкат як кореро анҷом додааст, ки ба контейнери кам кардани харита дар ClickHouse, мониторинги маҳаллисозии додаҳо ва ғ., барои ҳисоб кардани як вазифаи хеле ночиз анҷом дода шудааст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • LifeStreet як ширкати Ad Tech аст, ки дорои тамоми технологияҳои марбут ба шабакаи таблиғотӣ мебошад.
  • Вай ба оптимизатсияи таблиғ ва тендерҳои барномавӣ машғул аст.
  • Маълумоти зиёд: тақрибан 10 миллиард ҳодиса дар як рӯз. Ғайр аз он, воқеаҳо метавонанд ба якчанд зербахшҳо тақсим карда шаванд.
  • Мизоҷони ин маълумотҳо зиёданд ва инҳо на танҳо одамон, балки бисёри дигар алгоритмҳои гуногуне ҳастанд, ки ба тендерҳои барномавӣ машғуланд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Корхона рохи дуру дарозро тай кардааст. Ва ман дар бораи он дар HighLoad сӯҳбат кардам. Аввалан, LifeStreet аз MySQL (бо таваққуфи кӯтоҳ дар Oracle) ба Vertica кӯчид. Ва шумо метавонед дар бораи он ҳикоя пайдо кунед.

Ва ҳама чиз хеле хуб буд, аммо зуд маълум шуд, ки маълумот афзоиш меёбад ва Vertica гарон аст. Аз ин рӯ, алтернативаҳои гуногун ҷустуҷӯ карда шуданд. Баъзе аз онҳо дар ин ҷо номбар шудаанд. Ва дар асл, мо исботи консепсия ё баъзан санҷиши иҷрои қариб ҳама пойгоҳи додаҳоро анҷом додем, ки дар бозор аз 13 то 16 мавҷуд буданд ва тақрибан аз ҷиҳати функсия мувофиқ буданд. Ва ман инчунин дар бораи баъзеи онҳо дар HighLoad сӯҳбат кардам.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Вазифа аз он иборат буд, ки аввал аз Vertica муҳоҷират кунем, зеро маълумот афзоиш ёфт. Ва онҳо дар тӯли якчанд сол ба таври назаррас афзоиш ёфтанд. Баъд онҳо ба раф рафтанд, аммо ба ҳар ҳол. Ва пешгӯии ин афзоиш, талаботи тиҷорат ба ҳаҷми маълумоте, ки дар онҳо як навъ таҳлил бояд анҷом дода шавад, маълум буд, ки ба зудӣ дар бораи петабайтҳо сухан меравад. Ва пардохти петабайтҳо аллакай хеле гарон аст, аз ин рӯ мо алтернатива меҷустем, ки ба куҷо равем.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ба куҷо рафтан? Ва муддати тӯлонӣ ба куҷо рафтан комилан норавшан буд, зеро аз як тараф базаҳои тиҷоратӣ ҳастанд, онҳо ба назар хуб кор мекунанд. Баъзеҳо тақрибан мисли Vertica кор мекунанд, баъзеҳо бадтар. Аммо ҳамаашон қимат ҳастанд, ҳеҷ чизи арзонтар ё беҳтареро ёфтан мумкин нест.

Аз тарафи дигар, қарорҳои кушодаасос мавҷуданд, ки онҳо хеле зиёд нестанд, яъне барои таҳлил онҳоро метавон аз як тараф ҳисоб кард. Ва онҳо ройгон ё арзон ҳастанд, аммо суст кор мекунанд. Ва онҳо аксар вақт функсияҳои зарурӣ ва муфид надоранд.

Ва чизе барои муттаҳид кардани чизҳои хубе, ки дар пойгоҳи додаҳои тиҷоратӣ ҳастанд ва ҳама чизҳои ройгони дар манбаи кушода мавҷудбуда вуҷуд надошт.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

То он даме, ки Яндекс ногаҳон ClickHouse-ро аз кулоҳ мисли харгӯши ҷодугар берун кашид, ҳеҷ чиз рӯй надод. Ва ин як қарори ғайричашмдошт буд, одамон то ҳол савол медиҳанд: «Чаро?», аммо ба ҳар ҳол.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва дарҳол тобистони соли 2016, мо ба бубинем, ки ClickHouse чист. Ва маълум шуд, ки он баъзан метавонад аз Vertica тезтар бошад. Мо сенарияҳои гуногунро дар дархостҳои гуногун санҷидем. Ва агар дархост танҳо як ҷадвалро истифода мекард, яъне бидуни пайвастшавӣ, пас ClickHouse нисбат ба Vertica ду маротиба тезтар буд.

Ман танбал набудам ва рӯзи дигар ба санҷишҳои бештари Яндекс назар кардам. Дар он ҷо ҳамин тавр аст: ClickHouse нисбат ба Vertica ду маротиба тезтар аст, бинобар ин онҳо аксар вақт дар ин бора сӯҳбат мекунанд.

Аммо агар дархостҳо пайвастагиҳоро дошта бошанд, пас ҳама чиз чандон равшан нест. Ва ClickHouse метавонад нисбат ба Vertica ду маротиба сусттар бошад. Ва агар шумо дархостро каме ислоҳ кунед ва дубора нависед, онҳо тақрибан баробар хоҳанд буд. Бад не. Ва он ройгон аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва пас аз гирифтани натиҷаҳои санҷиш ва ба он аз паҳлӯҳои гуногун нигоҳ кардан, LifeStreet ба ClickHouse рафт.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Соли 16-ум аст, хотиррасон мекунам. Ин мисли шӯхӣ дар бораи мушҳо буд, ки гиря карда, худашон сӯзандору мекарданд, вале ба хӯрдани кактус идома медоданд. Ва ин ба таври муфассал баррасӣ шуд, дар ин бора видео вуҷуд дорад ва ғайра.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Бинобар ин ман дар ин бора муфассал сухан намеронам, факат дар бораи натичахо ва чанд чизи шавковаре, ки он вакт дар бораи он нагуфта будам.

Натиҷаҳо инҳоянд:

  • Муҳоҷирати бомуваффақият ва система дар истеҳсолот зиёда аз як сол аст.
  • Хосилнокии мех-нат ва хосилнокии мехнат афзуд. Аз 10 миллиард сабтҳое, ки мо метавонем дар як рӯз танҳо дар муддати кӯтоҳ нигоҳ дорем, LifeStreet ҳоло дар як рӯз 75 миллиард сабтро нигоҳ медорад ва метавонад онро дар тӯли 3 моҳ ё бештар аз он иҷро кунад. Агар шумо дар авҷи худ ҳисоб кунед, пас ин то як миллион ҳодиса дар як сония нигоҳ дошта мешавад. Зиёда аз як миллион дархостҳои SQL дар як рӯз ба ин система, асосан аз роботҳои гуногун фиристода мешаванд.
  • Сарфи назар аз он, ки ClickHouse нисбат ба Vertica серверҳои бештарро истифода бурд, пасандозҳо инчунин дар сахтафзор анҷом дода шуданд, зеро Vertica дискҳои хеле гаронбаҳои SAS-ро истифода мебурд. ClickHouse SATA-ро истифода бурд. Ва чаро? Зеро дар Vertica замима синхронӣ аст. Ва синхронизатсия талаб мекунад, ки дискҳо чандон суст нашаванд ва инчунин шабака аз ҳад зиёд суст нашавад, яъне як амалиёти хеле гарон. Ва дар ClickHouse замима асинхронӣ аст. Гузашта аз ин, шумо ҳамеша метавонед ҳама чизро ба таври маҳаллӣ нависед, барои ин хароҷоти иловагӣ вуҷуд надорад, аз ин рӯ маълумотро ба ClickHouse нисбат ба Vertika хеле зудтар ворид кардан мумкин аст, ҳатто дар дискҳои зудтарин. Ва хондан тақрибан ҳамин аст. Хондан дар SATA, агар онҳо дар RAID бошанд, ҳамааш ба қадри кофӣ зуд аст.
  • Бемаҳдуд аз рӯи литсензия, яъне 3 петабайт маълумот дар 60 сервер (20 сервер як реплика аст) ва 6 триллион сабт дар далелҳо ва маҷмӯаҳо. Вертика чунин чизеро харида наметавонист.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ҳоло ман ба чизҳои амалӣ дар ин мисол меравам.

  • Аввалин нақшаи самаранок аст. Бисёр чиз аз схема вобаста аст.
  • Дуюм тавлиди SQL самаранок аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Дархости маъмулии OLAP интихоб карда мешавад. Баъзе сутунҳо ба гурӯҳҳо, баъзе сутунҳо ба функсияҳои ҷамъшуда мераванд. Дар он ҷо вуҷуд дорад, ки онро ҳамчун як буридаи мукааб ҳисоб кардан мумкин аст. Тамоми гурӯҳро метавон ҳамчун проексия тасаввур кард. Ва аз ин рӯ, онро таҳлили маълумотҳои гуногунҷабҳа меноманд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва аксар вақт ин дар шакли диаграммаи ситораҳо модел карда мешавад, вақте ки дар паҳлӯҳо, қад-қади нурҳо як далели марказӣ ва хусусиятҳои ин далел мавҷуд аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва аз нуқтаи назари тарҳи ҷисмонӣ, ки чӣ тавр он дар сари суфра мувофиқат мекунад, онҳо одатан як намоиши муқаррарӣ мекунанд. Метавонед ғайримуқаррарӣ кунед, аммо он дар диск гарон аст ва дар дархостҳо чандон муассир нест. Аз ин рӯ, онҳо одатан намуди муқарраршуда, яъне ҷадвали далелҳо ва ҷадвалҳои андозагириҳои зиёдро ба вуҷуд меоранд.

Аммо ин дар ClickHouse хуб кор намекунад. Ду сабаб вуҷуд дорад:

  • Аввал ин аст, ки ClickHouse пайвастагиҳои хеле хуб надорад, яъне пайвастшавӣ вуҷуд дорад, аммо онҳо бад ҳастанд. То ҳол онҳо бад ҳастанд.
  • Дуюм ин аст, ки ҷадвалҳо нав карда намешаванд. Одатан дар ин аломатҳо, ки дар атрофи диаграммаи ситораҳо ҷойгиранд, чизеро тағир додан лозим аст. Масалан, номи муштарӣ, номи ширкат ва ғайра. Ва он кор намекунад.

Ва роҳи баромадан аз ин дар ClickHouse вуҷуд дорад. ҳатто ду:

  • Аввалан, истифодаи луғатҳо. Луғатҳои беруна он чизест, ки ба 99% барои ҳалли мушкилот бо схемаи ситораҳо, навсозиҳо ва ғайра кӯмак мекунад.
  • Дуюм - истифодаи массивҳо. Массивҳо инчунин барои бартараф кардани пайвастшавӣ ва мушкилот бо нормализатсия кӯмак мекунанд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • Ба пайвастан лозим нест.
  • Навсозӣшаванда. Аз моҳи марти соли 2018 як имконияти беҳуҷҷат пайдо шуд (шумо инро дар ҳуҷҷатҳо намеёбед) барои қисман нав кардани луғатҳо, яъне он вурудоти тағйирёфта пайдо шуд. Дар амал, он ба ҷадвал монанд аст.
  • Ҳамеша дар хотира аст, бинобар ин ҳамроҳ шудан бо луғат назар ба он ки ҷадвале, ки дар диск ҷойгир аст, зудтар кор мекунад ва ин далел нест, ки он дар кэш аст, эҳтимол не.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • Ба шумо ҳам пайвастан лозим нест.
  • Ин як намояндагии паймон аз 1 то бисёр аст.
  • Ва ба андешаи ман, массивҳо барои гекҳо сохта шудаанд. Инҳо функсияҳои ламбда ва чизҳо мебошанд.

Ин ба хотири сухан нест. Ин як функсияи хеле пурқувватест, ки ба шумо имкон медиҳад, ки бисёр чизҳоро хеле содда ва шево иҷро кунед.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Намунаҳои маъмулӣ, ки барои ҳалли массивҳо кӯмак мекунанд. Ин мисолҳо оддӣ ва равшананд:

  • Ҷустуҷӯ аз рӯи тегҳо. Агар шумо дар он ҷо hashtag дошта бошед ва хоҳед, ки баъзе паёмҳоро бо hashtag пайдо кунед.
  • Ҷустуҷӯ аз рӯи ҷуфтҳои калид-арзиш. Баъзе сифатҳои дорои маъно низ мавҷуданд.
  • Нигоҳ доштани рӯйхати калидҳое, ки шумо бояд ба чизи дигар тарҷума кунед.

Хамаи ин масъалахоро бе массивхо хал кардан мумкин аст. Тегҳоро метавон дар як сатр ҷойгир кард ва бо истифода аз ифодаи муқаррарӣ ё дар ҷадвали алоҳида интихоб кард, аммо пас шумо бояд пайвасткуниро анҷом диҳед.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Аммо дар ClickHouse ба шумо ҳеҷ кор кардан лозим нест, танҳо массиви сатрро барои хэштегҳо тавсиф кунед ё сохтори лонаро барои системаҳои арзиши калидӣ эҷод кунед.

Сохтори лона метавонад номи беҳтарин набошад. Ин ду массив мебошанд, ки дар ном як қисми умумӣ ва баъзе хусусиятҳои алоқаманд доранд.

Ва ҷустуҷӯ аз рӯи тег хеле осон аст. Функсия вуҷуд дорад has, ки тафтиш мекунад, ки массив дорои элемент аст. Ҳама, мо ҳама вурудоти марбут ба конфронси моро пайдо кардем.

Ҷустуҷӯ аз рӯи subid каме мураккабтар аст. Мо аввал бояд индекси калидро пайдо кунем ва баъд элементро бо ин индекс гирифта тафтиш кунем, ки ин арзиш ба мо лозим аст. Аммо ба ҳар ҳол хеле содда ва паймон.

Ибораи муқаррарие, ки шумо мехоҳед нависед, агар шумо ҳамаашро дар як сатр нигоҳ дошта бошед, ин пеш аз ҳама нофаҳмо хоҳад буд. Ва, дуюм, он аз ду массив хеле зиёдтар кор мекард.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Мисоли дигар. Шумо массив доред, ки дар он шумо ID-ҳоро нигоҳ медоред. Ва шумо метавонед онҳоро ба номҳо тарҷума кунед. Функсия arrayMap. Ин як функсияи маъмулии ламбда аст. Шумо дар он ҷо ифодаҳои лямбда мегузаред. Ва вай арзиши номро барои ҳар як ID аз луғат мебарорад.

Шумо метавонед бо ҳамин тариқ ҷустуҷӯ кунед. Функсияи предикат интиқол дода мешавад, ки он чӣ гуна унсурҳоро тафтиш мекунад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ин чизҳо схемаро хеле содда мекунанд ва як қатор мушкилотро ҳал мекунанд.

Аммо мушкили навбатӣ, ки мо дучор шудем ва ман мехоҳам зикр намоям, ин пурсишҳои муассир аст.

  • ClickHouse банақшагирии дархост надорад. Комилан не.
  • Аммо ба ҳар ҳол, дархостҳои мураккаб бояд ба нақша гирифта шаванд. Дар кадом ҳолатҳо?
  • Агар дархост якчанд пайваст дошта бошад, ки шумо онҳоро дар зеринтихобҳо мегузоред. Ва тартиби иҷрои онҳо муҳим аст.
  • Ва дуюм, агар дархост таксим карда шавад. Зеро дар дархости тақсимшуда танҳо зеринтихоби ботинӣ ба таври тақсимшуда иҷро карда мешавад ва ҳама чизи боқимонда ба як сервере, ки шумо ба он пайваст шудаед ва дар он ҷо иҷро кардаед, фиристода мешавад. Аз ин рӯ, агар шумо дархостҳоро бо бисёр пайвастагӣ тақсим карда бошед, пас шумо бояд фармоишро интихоб кунед.

Ва ҳатто дар ҳолатҳои соддатар, баъзан ба шумо лозим меояд, ки кори банақшагириро иҷро кунед ва дархостҳоро каме аз нав нависед.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ана як мисол. Дар тарафи чап дархостест, ки 5 кишвари беҳтаринро нишон медиҳад. Ва он дар 2,5 сония кор мекунад, ман фикр мекунам. Ва дар тарафи рост ҳамон дархост аст, аммо каме аз нав навишта шудааст. Ба ҷои гурӯҳбандӣ аз рӯи сатр, мо гурӯҳбандиро аз рӯи калид (int) оғоз кардем. Ва он тезтар аст. Ва он гоҳ мо ба натиҷа луғатро пайваст кардем. Ба ҷои 2,5 сония, дархост 1,5 сонияро мегирад. Ин хуб аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Намунаи шабеҳ бо навиштани филтрҳо. Дар ин ҷо як дархост аз Русия аст. Он барои 5 сония кор мекунад. Агар мо онро тавре аз нав нависем, ки на сатр, балки рақамҳоро бо як маҷмӯи он калидҳо, ки ба Русия дахл доранд, муқоиса кунем, он гоҳ он хеле тезтар мешавад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ин гуна найрангхо бисьёранд. Ва онҳо ба шумо имкон медиҳанд, ки дархостҳоеро, ки шумо фикр мекунед, аллакай зуд иҷро мешаванд ё баръакс, суст иҷро мешаванд, ба таври назаррас суръат бахшед. Онҳоро боз ҳам зудтар сохтан мумкин аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • Максимум кор дар реҷаи тақсимшуда.
  • Мураттабкунӣ аз рӯи намудҳои ҳадди ақал, чунон ки ман аз рӯи ints.
  • Агар ягон пайвастшавӣ ё луғат мавҷуд бошад, беҳтар аст, ки онҳоро дар охир иҷро кунед, вақте ки шумо аллакай маълумотро ҳадди аққал қисман гурӯҳбандӣ кардаед, пас амалиёти ҳамроҳшавӣ ё занги луғат камтар даъват карда мешавад ва он тезтар мешавад.
  • Иваз кардани филтрҳо.

Усулҳои дигар вуҷуд доранд, на танҳо техникаҳое, ки ман нишон додам. Ва ҳамаи онҳо баъзан ба шумо имкон медиҳанд, ки иҷрои дархостҳоро ба таври назаррас суръат бахшед.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Биёед ба мисоли оянда мегузарем. Ширкати X аз ИМА. Вай чӣ кор мекунад?

Вазифа буд:

  • Пайвасткунии офлайнии транзаксияҳои таблиғотӣ.
  • Моделҳои моделҳои гуногуни ҳатмӣ.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Сенария чист?

Як меҳмони оддӣ масалан дар як моҳ 20 маротиба аз таблиғоти гуногун ворид мешавад ва ё баъзан танҳо бидуни таблиғ меояд, зеро ин сайтро дар ёд дорад. Баъзе махсулотро аз назар мегузаронад, ба сабад мегузорад, аз сабад мебарорад. Ва, дар ниҳоят, ӯ чизе мехарад.

Саволҳои оқилона: "Агар лозим бошад, кӣ бояд барои таблиғ пардохт кунад?" ва "Кадом реклама, агар вуҷуд дошта бошад, ба ӯ таъсир расонд?" Яъне чаро харидааст ва чӣ гуна бояд боварӣ ҳосил кард, ки одамони ба ин шахс монанд ҳам мехаранд?

Барои ҳалли ин мушкилот, шумо бояд рӯйдодҳоеро, ки дар вебсайт рух медиҳанд, ба таври дуруст пайваст кунед, яъне бо кадом роҳе байни онҳо робита барқарор кунед. Сипас онҳо барои таҳлил ба DWH интиқол дода мешаванд. Ва дар асоси ин таҳлил моделҳое созед, ки кӣ кадом таблиғро нишон медиҳад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Муомилоти таблиғотӣ маҷмӯи рӯйдодҳои марбут ба корбар аст, ки бо нишон додани таблиғ оғоз мешавад, пас чизе рӯй медиҳад, пас шояд харид ва он гоҳ дар дохили харид харид кардан мумкин аст. Масалан, агар ин як барномаи мобилӣ ё бозии мобилӣ бошад, пас одатан насб кардани барнома ройгон аст, аммо агар дар он ҷо ягон чизи дигаре анҷом дода шавад, он метавонад пул талаб кунад. Ва ҳар қадаре ки шахс дар барнома харҷ кунад, ҳамон қадар арзишмандтар мешавад. Аммо барои ин шумо бояд ҳама чизро пайваст кунед.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Бисёр моделҳои ҳатмӣ вуҷуд доранд.

Маъмултарин инҳоянд:

  • Муоширати охирин, ки дар он ҳамкорӣ клик ё таассурот аст.
  • Аввалин Муошират, яъне аввалин чизе, ки шахсро ба сайт овард.
  • Комбинатсияи хатӣ - ҳиссаи баробар барои ҳама.
  • Камшавӣ.
  • Ва ғайра.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва ин ҳама дар аввал чӣ гуна кор мекард? Runtime ва Кассандра вуҷуд дошт. Кассандра ҳамчун анбори транзаксия истифода мешуд, яъне ҳама транзаксияҳои марбута дар он нигоҳ дошта мешуданд. Ва вақте ки дар Runtime ягон ҳодиса рух медиҳад, масалан, намоиши саҳифа ё чизи дигар, ба Кассандра дархост карда мешавад, ки оё чунин шахс вуҷуд дорад ё не. Сипас муомилоти марбут ба он гирифта шуданд. Ва бастабандӣ анҷом ёфт.

Ва агар шумо хушбахт бошед, ки дархост дорои ID-и транзаксия аст, пас ин осон аст. Аммо одатан шумо бахт надоред. Аз ин рӯ, зарур буд, ки амалиёти охирин ё транзаксия бо клики охирин ва ғайра пайдо карда шавад.

Ва ин ҳама хеле хуб кор кард, то он даме, ки пайванд ба клики охирин буд. Зеро, масалан, 10 миллион клик дар як рӯз, 300 миллион дар як моҳ, агар шумо равзанаро барои як моҳ муқаррар кунед. Ва азбаски дар Кассандра ҳама чиз бояд дар хотира бошад, то зуд кор кунад, зеро Runtime барои зуд ҷавоб додан лозим аст, тақрибан 10-15 сервер лозим буд.

Ва ҳангоме ки онҳо мехостанд, ки транзаксияро ба экран пайваст кунанд, он дарҳол он қадар шавқовар набуд. Ва чаро? Мумкин аст, ки 30 маротиба бештар рӯйдодҳоро захира кардан лозим аст. Ва, мувофиқан, ба шумо серверҳои 30 маротиба бештар лозиманд. Ва маълум мешавад, ки ин як навъ рақами астрономӣ аст. Нигоҳ доштани то 500 сервер барои пайвастшавӣ, сарфи назар аз он, ки серверҳо дар Runtime хеле каманд, як навъ рақами нодуруст аст. Ва онҳо дар бораи чӣ кор кардан фикр кардан гирифтанд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва мо ба ClickHouse рафтем. Инро дар ClickHouse чӣ гуна бояд кард? Дар назари аввал, чунин менамояд, ки ин маҷмӯи антиплаттерҳост.

  • Муомила афзоиш меёбад, мо ба он рӯйдодҳои бештар ва бештар замима мекунем, яъне он тағирёбанда аст ва ClickHouse бо объектҳои тағирёбанда чандон хуб кор намекунад.
  • Вақте ки меҳмон ба мо меояд, мо бояд транзаксияҳои ӯро бо калид, аз рӯи ID ташрифи ӯ дарёфт кунем. Ин инчунин як дархости нуқта аст; ClickHouse ин корро намекунад. Одатан ClickHouse дорои сканҳои калон аст, аммо дар ин ҷо мо бояд якчанд сабтҳоро гирем. Инчунин як антипаттерн.
  • Илова бар ин, транзаксия дар json буд, аммо онҳо намехостанд, ки онро аз нав сабт кунанд, аз ин рӯ онҳо мехостанд json-ро бидуни сохтор нигоҳ доранд ва агар лозим бошад, чизеро аз он берун кашанд. Ва ин ҳам як антипаттерн аст.

Яъне, маҷмӯи антипаттернҳо.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Аммо бо вуҷуди ин, мо тавонистем системаеро эҷод кунем, ки хеле хуб кор мекард.

Чӣ кор карда шуд? ClickHouse пайдо шуд, ки ба он гузоришҳо, ки ба сабтҳо тақсим шудаанд, партофта шуданд. Як хидмати аттрибутӣ пайдо шуд, ки гузоришҳоро аз ClickHouse гирифтааст. Пас аз он, барои ҳар як вуруд аз рӯи ID-и боздид, ман транзаксияҳое гирифтам, ки ҳанӯз коркард нашуда буданд ва инчунин аксҳои лаҳзае, яъне транзаксияҳои аллакай пайвастшуда, яъне натиҷаи кори қаблӣ. Ман аллакай аз онҳо мантиқ сохтам, амалиёти дурустро интихоб кардам ва рӯйдодҳои навро пайваст кардам. Боз сабт кард. Гузориш ба ClickHouse баргашт, яъне он як системаи доимии даврӣ аст. Ва ғайр аз ин, ман ба DWH рафтам, то онро дар он ҷо таҳлил кунам.

Он дар ин шакл чандон хуб кор намекард. Ва барои осон кардани ClickHouse, вақте ки дархост барои ID-и боздид вуҷуд дошт, онҳо ин дархостҳоро ба блокҳои 1-000 ID-и боздид гурӯҳбандӣ карданд ва ҳама транзаксияҳоро барои 2-000 нафар гирифтанд. Ва он гоҳ ҳамааш кор кард.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Агар шумо ба дохили ClickHouse нигаред, танҳо 3 ҷадвали асосӣ мавҷуданд, ки ба ҳамаи ин хидмат мерасонанд.

Ҷадвали аввал, ки дар он гузоришҳо бор карда мешаванд ва гузоришҳо бе коркард бор карда мешаванд.

Ҷадвали дуюм. Тавассути назари моддӣ аз ин гузоришҳо ҳодисаҳое, ки то ҳол мансуб нашудаанд, яъне ба ҳам алоқаманд нестанд, гирифта шуданд. Ва тавассути манзараи моддӣ, транзаксияҳо аз ин гузоришҳо барои сохтани акс гирифта шуданд. Яъне, аксбардорӣ бо намуди махсуси моддӣ, яъне ҳолати охирини ҷамъшудаи транзаксия сохта шудааст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Дар ин ҷо матн дар SQL навишта шудааст. Ман мехостам дар бораи якчанд чизҳои муҳим дар он шарҳ диҳам.

Аввалин чизи муҳим ин қобилияти дар ClickHouse баровардани сутунҳо ва майдонҳо аз json мебошад. Яъне ClickHouse дорои якчанд усулҳои кор бо json мебошад. Онҳо хеле ва хеле ибтидоӣ мебошанд.

visitParamExtractInt ба шумо имкон медиҳад, ки атрибутҳоро аз json истихроҷ кунед, яъне зарбаи аввал оғоз мешавад. Ва бо ин роҳ шумо метавонед ID-и транзаксияро хориҷ кунед ё ID-ро боздид кунед. Дар ҳамин вақт.

Дуюм, дар ин ҷо як майдони мураккаби моддӣ истифода мешавад. Ин чӣ маъно дорад? Ин маънои онро дорад, ки шумо онро ба ҷадвал дохил карда наметавонед, яъне он гузошта нашудааст, ҳангоми ворид кардан ҳисоб карда мешавад ва нигоҳ дошта мешавад. Вақте ки шумо ворид мекунед, ClickHouse барои шумо кор мекунад. Ва он чизе ки ба шумо дертар лозим аст, аз json хориҷ карда мешавад.

Дар ин ҳолат, намуди моддӣ барои сатрҳои хом аст. Ва ҷадвали аввал бо гузоришҳои қариб хом истифода бурда мешавад. Ва он чӣ кор мекунад? Аввалан, он ҷудокуниро тағир медиҳад, яъне ҷудокунӣ ҳоло аз рӯи ID ташриф анҷом дода мешавад, зеро мо бояд амалиёти ӯро махсус барои шахси мушаххас зуд кашем.

Чизи дуюми муҳим ин index_granularity аст. Агар шумо MergeTree-ро дида бошед, одатан арзиши пешфарз 8 index_granularity аст. Ин чист? Ин параметри парокандагии индекс аст. Дар ClickHouse, индекс ночиз аст; он ҳеҷ гоҳ ҳар сабтро индексатсия намекунад. Он ҳар 192 ин корро мекунад. Ва ин хуб аст, вақте ки шумо бояд маълумоти зиёдеро ҳисоб кунед, аммо вақте ки шумо бояд каме ҳисоб кунед, бад аст, зеро хароҷоти зиёд вуҷуд дорад. Ва агар мо гранулияти индексро кам кунем, пас мо хароҷоти изофиро кам мекунем. Шумо онро ба як кам карда наметавонед, зеро шояд хотираи кофӣ набошад. Индекс ҳамеша дар хотира нигоҳ дошта мешавад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва аксбардорӣ баъзе дигар функсияҳои ҷолиби ClickHouse -ро истифода мебарад.

Аввал AggregatingMergeTree аст. Ва AggregatingMergeTree argMax-ро нигоҳ медорад, яъне ин ҳолати транзаксия аст, ки ба тамғаи охирини вақт мувофиқ аст. Барои ин меҳмон ҳамеша транзаксияҳои нав эҷод карда мешаванд. Ва дар охирин ҳолати ин муомила, мо як ҳодисаро илова кардем ва ҳолати нав доштем. Он боз ба ClickHouse зад. Ва тавассути argMax дар ин намуди моддӣ мо ҳамеша метавонем ҳолати кунуниро ба даст орем.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • Пайвастшавӣ аз Runtime "нест" аст.
  • Дар як моҳ то 3 миллиард транзаксия нигоҳ дошта мешавад ва коркард мешавад. Ин як фармоиши бузургтар аз Кассандра аст, яъне дар системаи муомилоти маъмулӣ.
  • Кластери серверҳои 2x5 ClickHouse. 5 сервер ва ҳар як сервер нусхаи худро дорад. Ин ҳатто камтар аз он дар Кассандра аст, то аттрибутсия дар асоси клик, вале дар ин ҷо мо таассурот дар асоси. Яъне ба ҷои 30 маротиба зиёд кардани серверҳо, онҳо кам карда шуданд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва намунаи охирин ширкати молиявии Y мебошад, ки таносуби тағирёбии нархи саҳмияҳоро таҳлил кардааст.

Ва вазифа ин буд:

  • Тақрибан 5 саҳмияҳо мавҷуданд.
  • Иқтибосҳо дар ҳар 100 миллисония маълуманд.
  • Маълумот дар тӯли 10 сол ҷамъоварӣ шудааст. Аз афташ, барои баъзе корхонахо зиёд, барои баъзехо кам.
  • Дар маҷмӯъ тақрибан 100 миллиард сатр вуҷуд дорад.

Ва таносуби тағйиротро ҳисоб кардан лозим буд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Дар ин ҷо ду саҳмия ва иқтибосҳои онҳо ҳастанд. Агар яке боло равад ва дигаре боло равад, пас ин таносуби мусбат аст, яъне яке боло меравад ва дигаре боло меравад. Агар яке боло равад, чунон ки дар охири график, ва дигаре поён меравад, пас ин таносуби манфӣ аст, яъне вақте ки яке боло меравад, дигаре поён меравад.

Бо таҳлили ин тағйироти мутақобила, кас метавонад дар бозори молиявӣ пешгӯиҳо кунад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Аммо вазифа душвор аст. Барои ин чй кор бурда мешавад? Мо 100 миллиард сабт дорем, ки дар бар мегиранд: вақт, саҳмия ва нарх. Мо бояд аввал 100 миллиард маротиба Фарқи иҷрошавандаро аз алгоритми нарх ҳисоб кунем. RunningDifference функсия дар ClickHouse аст, ки фарқи байни ду сатрро пайдарпай ҳисоб мекунад.

Ва баъд аз ин, мо бояд таносубро ҳисоб кунем ва таносуб бояд барои ҳар як ҷуфт ҳисоб карда шавад. Барои 5 саҳмияҳо, ҷуфтҳо 000 миллионро ташкил медиҳанд. Ва ин хеле зиёд аст, яъне 12,5 маротиба ба шумо лозим аст, ки ин функсияи коррелятсияро ҳисоб кунед.

Ва агар касе фаромӯш кунад, ͞x ва ͞y мат мебошанд. интизории намуна. Яъне, шумо бояд на танҳо решаҳо ва маблағҳоро ҳисоб кунед, балки дар дохили ин маблағҳо дигар маблағҳоро низ ҳисоб кунед. 12,5 миллион маротиба бисьёр ва бисьёр хисобу китоб кардан лозим аст ва онхоро низ аз руи соатхо гурухбандй кардан лозим аст. Ва мо низ соатҳои зиёд дорем. Ва шумо бояд онро дар 60 сония иҷро кунед. Ин шӯхӣ аст.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Мо маҷбур шудем, ки онро бо ягон роҳ анҷом диҳем, зеро ҳамааш пеш аз омадани ClickHouse хеле ва хеле суст кор мекард.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Онҳо кӯшиш карданд, ки инро дар Hadoop, Spark, Greenplum ҳисоб кунанд. Ва ҳамаи ин хеле суст ё гарон буд. Яъне, бо кадом роҳе ҳисоб кардан мумкин буд, аммо баъд гарон шуд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва он гоҳ ClickHouse омад ва ҳама чиз беҳтар шуд.

Ба шумо хотиррасон мекунам, ки мо бо ҷойгиршавии маълумот мушкилот дорем, бинобар ин коррелятсияҳоро маҳаллӣ кардан мумкин нест. Мо наметавонем баъзе маълумотро ба як сервер илова кунем, баъзеро ба сервери дигар ва ҳисоб кунем; мо бояд ҳама маълумотро дар ҳама ҷо дошта бошем.

Онҳо чӣ кор карданд? Дар аввал, маълумот локализатсия карда мешавад. Ҳар як сервер маълумоти нархгузориро барои маҷмӯи муайяни саҳмияҳо нигоҳ медорад. Ва онҳо бурида намешаванд. Аз ин рӯ, метавон logReturn-ро дар мувозӣ ва мустақил ҳисоб кард; ҳамаи ин дар мувозӣ ва тақсим карда мешавад.

Пас аз он мо тасмим гирифтем, ки ин маълумотро бе аз даст додани баёнот кам кунем. Истифодаи массивҳоро кам кунед, яъне барои ҳар як давраи вақт массиви саҳмияҳо ва як қатор нархҳоро созед. Ҳамин тариқ, он фазои камтари маълумотро мегирад. Ва онҳо барои кор бо онҳо то андозае қулайтаранд. Инҳо амалҳои қариб мувозӣ мебошанд, яъне мо қисман дар мувозӣ ҳисоб мекунем ва сипас ба сервер менависем.

Он гоҳ ин метавонад такрор карда шавад. Ҳарфи "р" маънои онро дорад, ки мо ин маълумотро такрор кардем. Яъне, мо дар ҳар се сервер маълумотҳои якхела дорем - инҳо массивҳо мебошанд.

Ва он гоҳ, бо истифода аз скрипти махсус, шумо метавонед аз ин маҷмӯи 12,5 миллион таносуб бастаҳо созед, ки бояд ҳисоб карда шаванд. Яъне 2 вазифа бо 500 ҷуфт таносуб. Ва ин вазифа бояд дар сервери мушаххаси ClickHouse ҳисоб карда шавад. Вай тамоми маълумотро дорад, зеро маълумот якхела аст ва вай метавонад онро пайдарпай ҳисоб кунад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ана боз чӣ гуна ба назар мерасад. Аввалан, мо ҳама маълумотро дар сохтори зерин дорем: вақт, саҳмияҳо, нарх. Сипас, мо logReturn-ро ҳисоб кардем, яъне маълумоти як сохтор, танҳо ба ҷои нарх мо logReturn дорем. Сипас онҳо аз нав сохта шуданд, яъне мо вақт ва groupArray аз рӯи таблиғот ва нархномаҳо гирифтем. Такрори. Ва баъд аз ин, онҳо як қатор вазифаҳоро тавлид карданд ва онҳоро ба ClickHouse доданд, то он онҳоро ҳисоб кунад. Ва он кор мекунад.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ҳангоми исботи консепсия, вазифа зервазифа буд, яъне онҳо камтар маълумот гирифтанд. Ва танҳо дар се сервер.

Ин ду марҳилаи аввал: ҳисоб кардани Log_return ва печонидани он дар массивҳо ҳар кадом тақрибан як соат вақтро дар бар гирифт.

Ва ҳисоб кардани таносуб тақрибан 50 соатро мегирад. Аммо 50 соат кофӣ нест, зеро қаблан ин барои онҳо ҳафтаҳо кор мекард. Ин муваффакияти калон буд. Ва агар шумо ҳисоб кунед, дар ин кластер ҳама чиз дар як сония 70 маротиба ҳисоб карда шуд.

Аммо чизи аз ҳама муҳим он аст, ки ин система амалан ягон монеа надорад, яъне тақрибан ба таври хаттӣ миқёс мекунад. Ва онҳо онро тафтиш карданд. Он бомуваффақият васеъ карда шуд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

  • Нақшаи дуруст нисфи муваффақият аст. Ва нақшаи дуруст ин истифодаи ҳама технологияҳои зарурии ClickHouse аст.
  • Summing/AggregatingMergeTrees технологияҳое мебошанд, ки ба шумо имкон медиҳанд, ки сурати ҳолати махсусро ҷамъоварӣ ё ҳисоб кунед. Ва ин бисёр чизҳоро осон мекунад.
  • Намоишҳои моддӣ ба шумо имкон медиҳанд, ки маҳдудияти як индексро паси сар кунед. Шояд ман инро хеле равшан нагуфтаам, аммо вақте ки мо гузоришҳоро бор кардем, гузоришҳои хом дар ҷадвали дорои як индекс буданд ва аз рӯи атрибутҳо гузоришҳо дар ҷадвал буданд, яъне ҳамон маълумот, танҳо филтр карда шуда буданд, аммо индекс комилан ба дигарон. Чунин ба назар мерасад, ки ин як маълумот аст, аммо навъбандии гуногун. Ва Намоишҳои моддӣ ба шумо имкон медиҳанд, ки агар ба шумо лозим бошад, аз ин маҳдудияти ClickHouse гузаред.
  • Андозагирии индексро барои дархостҳои нуқтаҳо кам кунед.
  • Ва маълумотро оқилона паҳн кунед, кӯшиш кунед, ки маълумотро дар сервер ба қадри имкон локализатсия кунед. Ва кӯшиш кунед, ки дархостҳо то ҳадди имкон маҳаллисозӣро истифода баранд.

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

Ва барои ҷамъбасти ин суханронии кӯтоҳ, мо метавонем бигӯем, ки ClickHouse ҳоло ҳудуди ҳам пойгоҳи додаҳои тиҷоратӣ ва ҳам пойгоҳи додаҳои кушодаасос, яъне махсусан барои таҳлилро ишғол кардааст. Вай ба ин манзара комилан мувофик аст. Ва боз чӣ бештар, он оҳиста-оҳиста ба ҷои дигарон оғоз мекунад, зеро вақте ки ClickHouse дар он ҷо аст, ба шумо InfiniDB лозим нест. Амудӣ метавонад ба зудӣ лозим нашавад, агар онҳо дастгирии муқаррарии SQL-ро таъмин кунанд. Онро истифода баред!

Назария ва амалияи истифодаи ClickHouse дар барномаҳои воқеӣ. Александр Зайцев (2018)

-Ташаккур барои гузориш! Хеле ҷолиб! Оё ягон муқоиса бо Apache Phoenix вуҷуд дорад?

-Не, ман нашунидаам, ки касе муқоиса кунад. Мо ва Яндекс кӯшиш мекунем, ки ҳама муқоисаҳои ClickHouse-ро бо пойгоҳи додаҳои гуногун пайгирӣ кунем. Зеро агар ногаҳон чизе аз ClickHouse тезтар шавад, Леша Миловидов шабона хоб карда наметавонад ва ба зудӣ суръати корро оғоз мекунад. Ман чунин муқоисаро нашунидаам.

  • (Алексей Миловидов) Apache Phoenix як муҳаррики SQL дар асоси Hbase мебошад. Hbase асосан барои сенарияи кории навъи калид-арзиш тарҳрезӣ шудааст. Дар он ҷо ҳар як сатр метавонад шумораи ихтиёрии сутунҳо бо номҳои худсарона дошта бошад. Инро дар бораи системаҳо ба монанди Hbase ва Cassandra гуфтан мумкин аст. Ва ин пурсиши дақиқи таҳлилии вазнин аст, ки барои онҳо маъмулан кор намекунад. Ё шумо шояд фикр кунед, ки онҳо хуб кор мекунанд, агар шумо бо ClickHouse таҷриба надошта бошед.

  • Спасибо

    • Нимирӯзи ба хайр Ман аллакай ба ин мавзӯъ таваҷҷӯҳ дорам, зеро ман зерсистемаи таҳлилӣ дорам. Аммо вақте ки ман ба ClickHouse назар мекунам, ман ҳис мекунам, ки ClickHouse барои таҳлили рӯйдодҳо хеле мувофиқ аст ва тағирёбанда аст. Ва агар ба ман лозим ояд, ки маълумоти зиёди тиҷоратиро бо як қатор ҷадвалҳои калон таҳлил кунам, пас ClickHouse, то ҷое ки ман мефаҳмам, барои ман чандон мувофиқ нест? Хусусан, агар онҳо тағир диҳанд. Оё ин дуруст аст ё оё мисолҳое вуҷуд доранд, ки инро рад кунанд?

    • Ин дуруст аст. Ва ин ба аксари махзанҳои тахассусии таҳлилӣ дуруст аст. Онҳо ба он мутобиқ карда шудаанд, ки як ё якчанд ҷадвалҳои калон мавҷуданд, ки тағирёбанда ҳастанд ва бисёр ҷадвалҳои хурд, ки оҳиста тағир меёбанд. Яъне, ClickHouse ба Oracle монанд нест, ки дар он шумо метавонед ҳама чизро ҷойгир кунед ва саволҳои хеле мураккаб созед. Барои самаранок истифода бурдани ClickHouse, шумо бояд схемаро тавре созед, ки дар ClickHouse хуб кор кунад. Яъне аз меъёри аз ҳад зиёд канорагирӣ кунед, луғатҳоро истифода баред, кӯшиш кунед, ки алоқаҳои дарозро камтар созед. Ва агар нақша бо ин роҳ сохта шуда бошад, пас мушкилоти шабеҳи тиҷоратро метавон дар ClickHouse нисбат ба пойгоҳи додаҳои анъанавии релятсионӣ хеле самараноктар ҳал кард.

Ташаккур барои гузориш! Ман дар бораи парвандаи охирини молиявӣ як савол дорам. Онҳо таҳлил доштанд. Муқоиса кардан лозим буд, ки онҳо чӣ гуна боло ва поён мераванд. Ва ман мефаҳмам, ки шумо системаро махсус барои ин таҳлил сохтаед? Агар фардо, бигӯед, ки онҳо дар бораи ин маълумот гузориши дигар лозиманд, оё онҳо бояд диаграммаро дубора созанд ва маълумотро бор кунанд? Яъне барои қабули дархост ягон намуди коркарди пешакӣ анҷом дода мешавад?

Албатта, ин ClickHouse-ро барои як вазифаи хеле мушаххас истифода мебарад. Онро метавон ба таври анъанавӣ дар дохили Hadoop ҳал кард. Барои Hadoop ин вазифаи идеалист. Аммо дар Hadoop он хеле суст аст. Ва ҳадафи ман нишон додани он аст, ки ClickHouse метавонад мушкилотҳоеро ҳал кунад, ки одатан бо роҳҳои гуногун ҳал карда мешаванд, аммо дар айни замон онро хеле самараноктар иҷро кунед. Ин барои як вазифаи мушаххас пешбинӣ шудааст. Маълум аст, ки агар масъалае бошад, ки то андозае шабоҳат дошта бошад, пас онро бо ҳамин тариқ ҳал кардан мумкин аст.

Он равшан аст. Шумо гуфтед, ки коркарди он 50 соат лозим шуд. Оё ин аз ибтидо, вақте ки шумо маълумотро бор кардаед ё натиҷаҳоро гирифтаед?

Бале, бале.

Хуб ташаккури зиёд.

Ин дар кластери сервери 3 аст.

Салом! Ташаккур барои гузориш! Ҳама чиз хеле ҷолиб аст. Ман каме дар бораи функсияҳо намепурсам, балки дар бораи истифодаи ClickHouse аз нуқтаи назари субот. Яъне ягон мушкилие доштед ва онҳоро барқарор кардан лозим буд? ClickHouse чӣ гуна рафтор мекунад? Ва оё ягон бор рӯй дода буд, ки репликаи шумо низ суқут кард? Масалан, мо бо ClickHouse бо мушкилот рӯ ба рӯ шудем, вақте ки он ҳанӯз аз ҳадди худ берун рафт ва афтод.

Албатта, системаҳои идеалӣ вуҷуд надоранд. Ва ClickHouse низ мушкилоти худро дорад. Аммо оё шумо шунидаед, ки Yandex.Metrica муддати тӯлонӣ кор намекунад? Шояд не. Он аз солҳои 2012-2013 дар ClickHouse боэътимод кор мекунад. Дар бораи тачрибаи худ низ хаминро гуфта метавонам. Мо ҳеҷ гоҳ нокомии комил надоштем. Баъзе чизҳои қисман метавонанд рӯй диҳанд, аммо онҳо ҳеҷ гоҳ ба қадри кофӣ муҳим набуданд, ки ба тиҷорат таъсир расонанд. Ин пеш аз ин ҳеҷ гоҳ рӯй надода буд. ClickHouse хеле боэътимод аст ва ба таври тасодуфӣ суқут намекунад. Ба шумо лозим нест, ки дар ин бора хавотир шавед. Ин чизи хом нест. Ин аз ҷониби бисёр ширкатҳо исбот шудааст.

Салом! Шумо гуфтед, ки шумо бояд фавран дар бораи схемаи маълумот бодиққат фикр кунед. Чӣ мешавад, агар ин рӯй дод? Маълумоти ман ворид ва хориҷ мешавад. Шаш моҳ мегузарад ва ман мефаҳмам, ки ман ин тавр зиндагӣ карда наметавонам, ман бояд маълумотро дубора бор кунам ва бо он коре кунам.

Ин, албатта, аз системаи шумо вобаста аст. Якчанд роҳҳо вуҷуд доранд, ки ин корро қариб беист анҷом диҳед. Масалан, шумо метавонед Намоиши моддӣ эҷод кунед, ки дар он шумо метавонед сохтори дигари додаҳоро эҷод кунед, агар он ба таври беназир харита карда шавад. Яъне, агар он имкон диҳад харитасозӣ бо истифода аз ClickHouse, яъне истихроҷи баъзе чизҳо, тағир додани калиди ибтидоӣ, тағир додани тақсимкунӣ, шумо метавонед Намоиши моддӣ созед. Дар он ҷо маълумоти кӯҳнаи шумо аз нав навишта мешавад ва маълумоти нав ба таври худкор навишта мешаванд. Ва он гоҳ танҳо ба истифодаи Намоиши моддӣ гузаред, пас сабтро иваз кунед ва ҷадвали кӯҳнаро кушед. Ин роҳи умуман беист аст.

Спасибо.

Манбаъ: will.com

Илова Эзоҳ