ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Ju ofroj tĂ« njihet me interpretimin e raportit tĂ« vitit 2017 nga Igor Strikhar «ClickHouse – analizĂ« e shpejtĂ« dhe e qartĂ« vizualisht e tĂ« dhĂ«nave nĂ« Tabix».

Ndërfaqja në internet për ClickHouse në projektin Tabix.
Karakteristikat kryesore:

  • Punon me ClickHouse drejtpĂ«rdrejt nga shfletuesi, pa nevojĂ«n pĂ«r instalimin e software-sĂ« shtesĂ«;
  • Redaktori i pyetjeve me ndriçim sintaksor;
  • Autopopullimi i komandave;
  • Mjetet e analizĂ«s grafike tĂ« ekzekutimit tĂ« pyetjeve;
  • Paletat e ngjyrave pĂ«rzgjedhje.
    ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar


Luaj videon

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

UnĂ« jam drejtor teknik nĂ« SMI2. Ne jemi njĂ« agregator lajmesh pĂ«r shkĂ«mbimin e lajmeve. RuajmĂ« shumĂ« tĂ« dhĂ«na qĂ« i marim nga partnerĂ«t tanĂ« dhe i regjistrojmĂ« nĂ« ClickHouse – rreth 30,000 pyetje nĂ« sekondĂ«.

Këto janë të dhëna si:

  • Klikimet nĂ« lajme.
  • Shfaqjet e lajmeve nĂ« agregator.
  • Shfaqjet e banderoleve nĂ« rrjetin tonĂ«.
  • Dhe regjistrojmĂ« ngjarjet nga numĂ«ruesi ynĂ« tĂ« brendshĂ«m, i ngjashĂ«m me Yandex.Metrika. Kjo Ă«shtĂ« mikroanalitika jonĂ«.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Patëm një jetë të trazuar para ClickHouse. Kemi vuajtur shumë duke u përpjekur të ruanim këto të dhëna ndokund dhe t'i analizojmë siç duhet.

Jeta para ClickHouse – infiniDB

E para që patëm, ishte infiniDB. Ajo qëndroi për 4 vjet. E filluam me vështirësi.

  • Ajo nuk mbĂ«shteste klasterizimin ose sharding-un. AsnjĂ« veçori e tillĂ« e zgjuar nuk ishte e aktivizuar nga kutia.
  • Sfondi kishte probleme me ngarkimin e tĂ« dhĂ«nave. VetĂ«m njĂ« utilitar konsolĂ« specifik, i cili mund tĂ« ngarkonte vetĂ«m skedarĂ«t CSV dhe vetĂ«m nĂ« mĂ«nyrĂ« shumĂ« tĂ« paqartĂ«.
  • Baza e tĂ« dhĂ«nave ishte njĂ«pĂ«rdorĂ«she. Mund tĂ« shkruaje ose tĂ« lexoje. Por ajo lejonte pĂ«rpunimin e njĂ« sasi tĂ« madhe tĂ« dhĂ«nash.
  • Dhe kishte njĂ« zgjidhje interesante. Çdo natĂ«, duhej tĂ« rihapej serveri, ndryshe ai nuk punonte.

Ajo punoi deri në fund të vitit 2016, kur kaluam plotësisht në ClickHouse.

Jeta para ClickHouse – Cassandra

Pasi infiniDB ishte njëpërdorëshe, ne vendosëm që na duhej një bazë të dhënash shumëpërdorëse, në të cilën mund të shkruanim shumë rrjedha në të njëjtën kohë.

Provuam shumë gjëra interesante. Pastaj vendosëm të provonim Cassandra. Me Cassandra kishim gjithçka në rregull. 10,000 pyetje në sekondë për shkak. 2,000 pyetje për lexim.

Por ajo kishte gjithashtu interesat e veta. Një herë në muaj ose një herë në dy muaj, ndodhte të kishte një desinkronizim të bazës së të dhënave. Dhe duhej të zgjoheshim dhe të vraponim për ta rregulluar Cassandra. Restartonim serverët një për një. Dhe gjithçka bëhej e qetë dhe e bukur.

Jeta para ClickHouse – Druid

Pastaj, ne kuptuam se na duhej të shkruanim edhe më shumë të dhëna. Në vitin 2016 filluam të shikonim Druid.

Druid është një bazë e hapur, e shkruar në Java. Jashtëzakonisht specifike. Dhe ishte e përshtatshme për clickstream, kur na duhej të ruanim një flux ngjarjesh dhe pastaj të bënim agregimin e tyre ose të bënim raporte analitike.

Druid kishte versionin 0.9.X.

Vetë baza e të dhënave është shumë e vështirë për tu vendosur. Kjo është një vështirësi infrastrukturore. Për ta vendosur, na duhej të vendosnim shumë pajisje. Dhe çdo pajisje ishte përgjegjëse për një rol të veçantë.

PĂ«r tĂ« ngarkuar tĂ« dhĂ«nat nĂ« tĂ«, ishte e nevojshme tĂ« aplikonim ndonjĂ« farĂ« magjie. Ekziston njĂ« projekt OpenSource – Tranquility, i cili nĂ« flux humbiste tĂ« dhĂ«nat tona. Kur ngarkonim tĂ« dhĂ«na nĂ« tĂ«, ai i humbiste.

Por njëfarë mënyre filluam ta implementonim. Ishim si shpezë të cilët po lëndoheshin, por vazhdonin të hanin kaktus, filluam ta implementonim. Na duhej rreth një muaj për të përgatitur të gjithë infrastrukturën për të. Domethënë, të porositej servera, të konfiguroheshin rolet, të realizohej automatizimi i plotë i vendosjes. Domethënë, në rast rënia e klastra, që të vendosësh automatikisht një klasër të dytë.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Por këtu ndodhi një mrekulli. Unë isha në pushim, dhe kolegët e mi më dërguan një lidhje në habr, ku thuhej se Yandex vendosi të hapë ClickHouse. I thashë që le të provojmë.

Dhe pĂ«r vetĂ«m 2 ditĂ« vendosĂ«m njĂ« klasĂ«r testues tĂ« ClickHouse. Filluam tĂ« ngarkonim tĂ« dhĂ«na nĂ« tĂ«. NĂ« krahasim me infiniDB – Ă«shtĂ« elementar, nĂ« krahasim me Druid – Ă«shtĂ« elementar. NĂ« krahasim me Cassandra gjithashtu Ă«shtĂ« elementar. Sepse nĂ«se ngarkohet tĂ« dhĂ«nat nĂ« Cassandra nga php, atĂ«herĂ« kjo nuk Ă«shtĂ« elementare.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

ÇfarĂ« fituam? PerformancĂ« nĂ« shpejtĂ«si. PerformancĂ« nĂ« ruajtjen e tĂ« dhĂ«nave. DomethĂ«nĂ«, pĂ«rdoret shumĂ« mĂ« pak hap disku. ClickHouse Ă«shtĂ« i shpejtĂ«, Ă«shtĂ« shumĂ« i shpejtĂ« krahasuar me produktet e tjera.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

NĂ« momentin e lançimit, kur Yandex publikoi ClickHouse nĂ« OpenSource, ishte vetĂ«m klienti konsol. Ne nĂ« kompaninĂ« tonĂ« СМИ2 vendosĂ«m tĂ« provojmĂ« tĂ« bĂ«jmĂ« njĂ« klient natyror pĂ«r web, nĂ« mĂ«nyrĂ« qĂ« tĂ« mund tĂ« hapnim njĂ« faqe nga shfletuesi, tĂ« shkruanim njĂ« kĂ«rkesĂ« dhe tĂ« merrnim rezultatin, sepse filluam tĂ« shkruanim shumĂ« kĂ«rkesa. TĂ« shkruash nĂ« konsol Ă«shtĂ« e vĂ«shtirĂ«. Dhe ne bĂ«mĂ« versionin tonĂ« tĂ« parĂ«.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Dhe rreth dimrit të vitit të kaluar filluan të shfaqeshin mjete të tjera për punë me ClickHouse. Këto janë mjete si:

Do të shqyrtoj disa nga këto mjete, pra ato me të cilat kam punuar.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Një mjet i mirë, por për Druid. Kur implementoja Druid, e provoja SuperSet. Më pëlqeu. Punon shumë shpejt për Druid.

Nuk është i përshtatshëm për ClickHouse. Pra, është i përshtatshëm, funksionon, por është i aftë vetëm për të përpunuar kërkesa elementare si: SELECT event, GROUP BY event. Nuk mbështet sintaksën më të komplikuar të ClickHouse.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mjeti tjetër është Apache Zeppelin. Kjo është një gjë e mirë dhe interesante. Funksionon. Mbështet notebook-et, dashboard-et, mbështet variablat. E di që dikush nga komuniteti ClickHouse e përdor atë.

Por nuk ka mbështetje për sintaksën e ClickHouse, pra do t'ju duhet të shkruani kërkesat ose në konsolë ose diku tjetër. Pastaj të kontrolloni që gjithçka funksionon. Kjo është thjesht e pakëndshme. Por mbështetja për dashboard është e mirë.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mjeti tjetër është Redash.IO. Redash është i hostuar në internet. Pra, në krahasim me mjetet e mëparshme, nuk ka nevojë ta instaloni. Dhe ky është një dashboard me mundësinë e konsolidimit të të dhënave nga Burime të Diferencuara. Pra, mund të shkarkoni nga ClickHouse, nga MySQL, nga PostgreSQL dhe nga bazat e tjera të të dhënave.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Pikërisht një muaj më parë (në mars 2017) u shfaq mbështetja në Grafana. Kur krijoni raportet në Grafana, le të themi, për gjendjen e pajisjeve tuaja ose për disa metrika, tani mund të krijoni një grafik të tillë ose ndonjë panel nga të dhënat e ClickHouse drejtpërdrejt. Kjo është shumë e përshtatshme, dhe ne e përdorim te ne. Kjo lejon të gjejmë anomali. Pra, nëse ndodhin gjëra dhe ndonjë pajisje dështon ose ngarkohet, mund të shihni shkakun, nëse këto të dhëna kanë arritur në ClickHouse.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Më ishte shumë e papërshtatshme të shkruaja në këto mjete ose në konsolë. Dhe vendosa të punoj mbi ndërfaqen tonë të parë. Dhe munda idenë nga EventSQL, SeperSet, Zeppelin.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

ÇfarĂ« doja? Doja tĂ« merrja grafikĂ«, njĂ« redaktor tĂ« pĂ«rmirĂ«suar, tĂ« implementoja mbĂ«shtetje pĂ«r fjalorĂ«t e sugjerimeve. Sepse ClickHouse ka njĂ« funksion tĂ« shkĂ«lqyer - janĂ« fjalorĂ«t. Por Ă«shtĂ« e vĂ«shtirĂ« tĂ« punoni me fjalorĂ«t, sepse duhet tĂ« mbani mend formatin e vlerave tĂ« ruajtura, pra nĂ«se Ă«shtĂ« numĂ«r ose varg, etj. Dhe meqenĂ«se ne shpesh pĂ«rdorim fjalorĂ«t nĂ« variacione tĂ« ndryshme, ishte mjaft e vĂ«shtirĂ« tĂ« shkruaja kĂ«rkesa.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Kalonin 3 muaj nga lansimi i versionit tonë të parë. Kam bërë rreth 330 komitete në degën e mbyllur dhe rezultati ishte Tabix.

Ndryshe nga versioni i mëparshëm, i cili quhej ClickHouse-Frontend, kam vendosur ta riformuloj atë në një emër më të thjeshtë. Dhe tani quhet Tabix.

ÇfarĂ« ka rĂ«nĂ«?

Vizaton grafikë. Mbështet sintaksën SQL të ClickHouse. Sugjeron për funksionet dhe ka shumë aftësi interesante.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

KĂ«shtu duket skema e pĂ«rgjithshme e Tabix. Majtas Ă«shtĂ« paraqitur njĂ« pemĂ«. NĂ« qendĂ«r – Ă«shtĂ« redaktori i kĂ«rkesĂ«s. Dhe poshtĂ« – Ă«shtĂ« rezultati i kĂ«saj kĂ«rkese.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Tani do të tregoj se si funksionon redaktori i kërkesës.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Këtu automatikisht ka funksionuar autokompleti mbi tabelën dhe sugjeron, përkatësisht, autokompletin mbi fushat. Dhe sugjerimet për funksionet. Nëse shtypni ctrl dhe pastaj enter, kërkesa do të ekzekutohet ose do të dështojë me një gabim. Kërkesa më e thjeshtë dërgohet në Tabix dhe merrni rezultatin, domethënë, mund të punoni shpejt me ClickHouse.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Fjalorët, siç e kam thënë më parë, janë një gjë shumë interesante, me të cilën ne punojmë shumë. Dhe që na ka lejuar të realizojmë shumë gjëra. Për shembull, në fjalorë ruajmë të gjitha qytetet. Ruajmë identifikuesin e qytetit dhe emrin e qytetit, gjerësi dhe gjatësi. Ndërsa në bazë ruajmë vetëm identifikuesin e qytetit. Kështu, ne e kompresojmë të dhënat shumë.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Kjo, duke u dukur si një gjë e thjeshtë, në ClickHouse ndihmon shumë interessant. Pasi ClickHouse mbështet vetëm join të thella, kërkesa rritet mjaft poshtë dhe gjerë. Dhe kur hapet një kllapë dhe vjen një shprehje e gjatë, një gjë mjaft e thjeshtë si tërheqja e kërkesës ndihmon për të punuar më lehtë me kërkesën e vet. Sepse kur kërkesa ka 200-300 rreshta dhe është shumë e gjerë, tërheqja e kërkesës ndihmon shumë për të gjetur ndonjë vend apo për ta lokalizuar.

Pemë objektesh, shumëkërkesa dhe skedarët (Video 13:46 https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Tani do tĂ« tregoj pĂ«r pemĂ«n, skedarĂ«t. Majtas – Ă«shtĂ« pema, lart mund tĂ« krijoni disa skedarĂ«. SkedarĂ«t janĂ« si njĂ« hapĂ«sirĂ« pune. Mund tĂ« krijoni disa skedarĂ« dhe secilĂ«n ta emroni ndryshe. Kjo Ă«shtĂ« si njĂ« minisitĂ«m pĂ«r ndĂ«rtimin e raporteve.

Skedarët ruhen automatikisht. Nëse e rinisni shfletuesin tuaj ose e mbyllni, ose hapni Tabix, gjithçka do të ruhet.

Kombinimi i çelĂ«save – komod (Video 14:39 https://youtu.be/w1-XsL3nbRg?t=879)

Ka kombinime çelësash dhe ka mjaft prej tyre. Disa nga ato i kam paraqitur këtu si shembuj. Kjo është për ndërrimin e skedarëve, për të ekzekutuar kërkesën ose për të ekzekutuar disa kërkesa.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Do të tregoj si të punoni me rezultatin. Dërgoni kërkesën. Këtu vizatoj sin, cos dhe tg. Mund të theksoni rezultatin, domethënë, të vizatoni një hartë tipike mbi kolonën. Mund të theksoni vlerat pozitive ose negative. Ose thjesht të ngjyrosni ndonjë element të veçantë të tabelës. Kjo është e dobishme kur tabela është shumë e madhe dhe duhet të gjejmë ndonjë anomali me sy. Kur kërkoja anomali, theksoja disa rreshta, disa elemente me ngjyrë të gjelbër ose të kuqe.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Ka shumĂ« gjĂ«ra interesante atje. PĂ«r shembull, si tĂ« kopjosh nĂ« Redmine Markdown. NĂ«se nevojitet tĂ« kopjoni rezultatin diku, kjo Ă«shtĂ« shumĂ« e dobishme. Mund thjesht tĂ« seleksiononi njĂ« zonĂ«, tĂ« thoni ‘Kopjoni nĂ« Redmine’ dhe ai do ta kopjojĂ« nĂ« Redmine Markdown ose do tĂ« krijojĂ« njĂ« kĂ«rkesĂ« Where.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

MĂ« pas, kjo Ă«shtĂ« optimizimi i kĂ«rkesave. NjĂ« herĂ« harrova tĂ« specifikoj fushĂ«n ‘date’. Dhe kĂ«rkesa ime nĂ« ClickHouse u pĂ«rpunua jo shumĂ« shpejt, por shpejt, domethĂ«nĂ«, pĂ«r mĂ« pak se njĂ« sekondĂ«. Kur pashĂ« sa shumĂ« rreshta kalonte, mĂ« friksoi. Ne nuk shkruajmĂ« kaq shumĂ« rreshta nĂ« kĂ«tĂ« tabelĂ« brenda njĂ« dite. Nisa tĂ« analizoj kĂ«rkesĂ«n dhe pashĂ« qĂ« kisha humbur datĂ«n nĂ« njĂ« vend. DomethĂ«nĂ«, harrova tĂ« specifikoj qĂ« mĂ« nevojiten tĂ« dhĂ«nat jo pĂ«r tĂ« gjithĂ« tabelĂ«n, por pĂ«r njĂ« periudhĂ« tĂ« caktuar.

NĂ« Tabix ka njĂ« skedĂ« ‘Stats’, ku ruhet e gjithĂ« historia e kĂ«rkesave tĂ« dĂ«rguara, domethĂ«nĂ« atje mund tĂ« shihni sa rreshta ishin lexuar nga kjo kĂ«rkesĂ« dhe sa kohĂ« zgjati ajo. Kjo lejon optimizimin.

Mund të ndërtosh një tabelë përmbledhëse mbi rezultatin e kërkesës. Keni dërguar një kërkesë në ClickHouse, keni marrë disa të dhëna. Dhe më pas këto të dhëna mund t'i tërheqni me miun dhe të ndërtoni ndonjë tabelë përmbledhëse.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

GjĂ«ja interesante tjetĂ«r Ă«shtĂ« ndĂ«rtimi i grafikĂ«ve. Supozoni qĂ« kemi njĂ« kĂ«rkesĂ« tĂ« tillĂ«: pĂ«r sin, cos nga 0 deri nĂ« 299. Dhe pĂ«r ta vizatuar, duhet tĂ« zgjidhni skedĂ«n ‘Draw’ dhe do tĂ« merrni grafikun me sin dhe cos tuaj.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mund ta ndajmë këtë në osi të ndryshme, domethënë, mund të vizatojmë njëkohësisht dy grafikë afër njëri-tjetrit. Të shkruajmë një komandë dhe një komandë tjetër.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mund të vizatojmë histograma.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mund ta ndajmë këtë në një matricë grafikësh.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mund të ndërtojmë një hartë termike.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Mund të ndërtojmë një kalendar termik. Për më tepër, është një gjë shumë e dobishme kur nevojitet të analizoni anomali për një vit, domethënë, të gjeni ose shpërthime ose rënie. Kjo vizualizim të dhënash më ndihmoi në këtë.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Gjëja tjetër është Treemap.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Sankeys – njĂ« grafik interesant. Ai Ă«shtĂ« ose Streamgraphs ose River. Por unĂ« e quaj River. Ai gjithashtu lejon tĂ« kĂ«rkoni anomali tĂ« ndryshme. ËshtĂ« shumĂ« i pĂ«rshtatshĂ«m. E rekomandoj pĂ«r kĂ«rkimin e tyre.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Gjëja tjetër interesante është vizatimi i një harta dinamike. Nëse keni në bazën e të dhënave gjerësinë, gjatësi dhe, për shembull, destinacionin, nëse keni, për shembull, transport të automjeteve ose aeroplanëve në fluturim, mund të vizatoni rrugët e destinacioneve. Aty mund të vendosni gjithashtu shpejtësinë, madhësinë e objekteve në të cilat ata fluturojnë.

Por problemi me këtë hartë është se ajo vizaton vetëm hartën e botës, pa detaje.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Më pas, unë shtova Google map. Nëse keni gjerësinë dhe gjatësi, mund të vizatoni rezultatin në Google map, por pa mbështetje për aeroplanët.

Ne diskutuan funksionet kryesore të punës me rezultatet, me kërkesat në Tabix.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Tjetra, është analiza e serverit tuaj ClickHouse. Ka një seksion të veçantë "Metrika", ku mund të shikoni gjatësinë e të dhënave të ruajtura për secilën kolonë. Në screenshot tregohet se ky fushë "referrer" zë rreth 730 Gb. Nëse ne heqim këtë fushë, do të kursejmë tre sharda nga 700 GB, pra rreth 2 TB, të cilat nuk na duhen.

Po ashtu, kemi një fushë "request_id", që e ruajmë në formë string. Por nëse fillojmë ta ruajmë në formë numerike, do ta kompresojmë këtë fushë shumë.

Gjithashtu, këtu tregohet konfigurimi i serverit dhe lista e nodeve të klashtër tuaj.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Seksioni tjetër është metrika. Ato merren në kohë reale nga ClickHouse dhe thjesht lejojnë të analizoni gjendjen e serverit dhe të kuptoni çfarë po ndodh. Kjo nuk është një zëvendësim për një Grafana të plotë. Kjo është e nevojshme për të analizuar shpejt.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Seksioni tjetër është proceset. Nëpërmjet tyre mund të kuptoni çfarë po ndodh në server. Të kuptoni se çfarë po ndodh atje. Kam pasur një kërkesë që merrte 200 GB çdo herë për lexim. E pashë këtë falë këtij interfejsi. E kapëm dhe e rregulluam. Dhe arritëm rreth 30 GB, pra performanca u rrit shumë.

ClickHouse – analizĂ« tĂ« shpejtĂ« dhe vizuale tĂ« tĂ« dhĂ«nave nĂ« Tabix. Igor Strykhar

Faleminderit! Dhe kjo është në OpenSource.

Kam përfunduar. Dhe, për t'u thënë të vërtetën, ajo është në OpenSource, është falas dhe madje nuk është e nevojshme ta shkarkoni. Hidhni një sy në shfletues dhe gjithçka do të funksionojë.

Pyetje

Igor, çfarë do të ndodhë më pas? Ku do ta zhvillosh këtë mjet?

Më vonë do të shfaqet dashboard-i, që do të thotë se ndoshta do të shfaqet dashboard-i. Integrimi me baza të tjera të të dhënave. Unë e kam bërë këtë, por ende nuk e kam publikuar në OpenSource. Kjo është MySQL dhe ndoshta PostgreSQL. Pra, do të jetë e mundur të dërgoni kërkesa jo vetëm në ClickHouse, por edhe në mjete të tjera nga Tabix.

Këtu shihet se është bërë një volum i madh pune. U krijua një ide mjaft e plotë. Në shfletues është bërë, duket, për të përjashtuar zgjidhje të shpejta në çdo os dhe për të përmbledhur gjithçka shpejt. Kam dëgjuar se ju jeni në php punoni, prandaj është më e lehtë të përmbledhësh në shfletues dhe gjithçka do të funksionojë. Këtij nuk ka pyetje. Pyetja është kjo. Aty është bërë vërtet shumë. Sa njerëz kanë punuar mbi këtë? Dhe sa kohë ka zgjatur gjithçka? Sepse mjetet për vetë zakonisht nuk kanë një funksionalitet kaq të madh.

Nga vera nĂ« vjeshtĂ« punoi njĂ« person nga ekipi ynĂ«. Kjo ishte versioni i parĂ«. Pastaj bĂ«ra 330 komitĂ« vetĂ«. AtĂ« qĂ« shihni, e kemi bĂ«rĂ« unĂ« dhe njĂ« kolegu ynĂ« bashkĂ«. PĂ«r 3 muaj nga versioni i parĂ« deri nĂ« tĂ« fundit, unĂ« nĂ« pjesĂ«n mĂ« tĂ« madhe e kam bĂ«rĂ«. Por unĂ« e njoh shumĂ« dobĂ«t Javascript-in. Ky ishte projekti im i vetĂ«m dhe, shpresoj, tĂ« fundit qĂ« kam punuar nĂ« Javascript. MĂ« erdhi nĂ« dorĂ«, e shikova – oh, terror. Por doja shumĂ« ta pĂ«rfundonja produktin dhe kjo Ă«shtĂ« rezultati.

Faleminderit shumë për raportin! Ky është një instrument i shkëlqyer. A Tableau e keni krahasuar?

Faleminderit. Prandaj e quajta Tabix, sepse shkronjat e para përputhen.

Sepse konkuroni?

Do të ketë shumë investime, do të konkurrojmë.

Si do tĂ« propozonit tĂ« shitej analistĂ«ve tĂ« brendshĂ«m, qĂ« ky instrument plotĂ«sisht do tĂ« zĂ«vendĂ«sojĂ« *Tableau*? КаĐșОД Đ±ŃƒĐŽŃƒŃ‚ Đ°Ń€ĐłŃƒĐŒĐ”ĐœŃ‚Ń‹?

Puna e natyrshme me ClickHouse. Kam provuar Tableau, por atje nuk mund tĂ« shkruani mbĂ«shtetje pĂ«r fjalorĂ« dhe kĂ«shtu me radhĂ«. E di si punojnĂ« njerĂ«zit me Tabix. Ata shkruajnĂ« kĂ«rkesĂ«n, e nxjerrin nĂ« CSV dhe e ngarkojnĂ« nĂ« BI. Dhe aty bĂ«jnĂ« diçka. Por e imagjinoj me vĂ«shtirĂ«si se si bĂ«jnĂ« kĂ«tĂ«, sepse – Ă«shtĂ« njĂ« instrument grafik. Ai mund tĂ« nxjerrĂ« deri nĂ« 5,000 rreshta, maksimumi 6,000 rreshta, por jo mĂ« shumĂ«, pĂ«rndryshe shfletuesi nuk e pĂ«rballon.

Pra, ka disa kufizime serioze në volumet e të dhënave, apo jo?

Po. Nuk e imaginon se do të dëshironit të nxirrni 10,000 rreshta në ekranin e shfletuesit. Pse?

Nënkuptohet se ky është një interfeks për një shikim të shpejtë të të dhënave? Të rrotullohet pak, të kthehet?

Po, shpejt të shohim si funksionon dhe thjesht të ndërtojmë një grafik përmbledhës. Më pas ta dërgojmë diku. Ne kemi sistemin tonë të raportimit, nga ku thjesht marr këtë kërkesë. E vizatoj në Tabix dhe e dërgoj në raportin tonë.

Dhe një pyetje tjetër. Analiza e koortëve?

Nëse ka kërkesa, do t'i shtojmë.

Kur sapo filluam të përdorim ClickHouse, sa kohë mori implementimi ClickHouse dhe dëshira për ta çuar në gjendjen e prodhimit?

Siç e thashë, ne e kemi implementuar klustërin testues në kohë rekord. Pas dy ditësh e kemi shpalosur. Dhe disa javë e kemi provuar. Dhe për të arritur në prodhim na mori rreth 3 muaj. Por ne kishim ETL tonë, dmth. një mjet për regjistrimin e të dhënave. Ai regjistronte në të gjitha sistemet e mundshme. Ai di të regjistrojë në MongoDB, Cassandra, MySQL. Ta mësojmë atë të regjistrojë në ClickHouse ishte e thjeshtë. Ne kishim infrastrukturën gati për implementim të shpejtë. Pas rreth 3 muajsh filluam të nxjerrim komponentin e parë. Pas 6 muajsh ne u larguam plotësisht nga gjithçka tjetër. Na mbeti vetëm ClickHouse.

Igor, faleminderit shumë për prezantimin. Më pëlqeu shumë funksionaliteti i ndërtimit të rrugëve në karta. A është planifikuar integrimi me Yandex.Maps dhe veçanërisht me kartat e personalizuara të Yandex?

Kam provuar të integrohem në vend të Google map, por nuk gjeta temën e errët në Yandex.Maps. Nuk e theksova një pjesë. Do të rrok për ta plotësuar.

Slides – Google map. Atje ka komandĂ«n "DRAW_GMAPS", e cila vizaton hartĂ«n. Ka komandĂ«n "DRAW_YMAPS", dmth. mund tĂ« vizatojĂ« hartĂ«n e Yandex. Dhe nĂ« fakt nĂ«n kĂ«tĂ« komandĂ« ndodhet Javascript, dmth. tĂ« dhĂ«nat qĂ« merrni nga ClickHouse mund t'i dĂ«rgoni nĂ« Javascript, tĂ« cilin e shkruani kĂ«tu. Dhe ju keni njĂ« zonĂ« nĂ« dalje ku ajo duhet tĂ« vizatohet. Mund tĂ« vizatoni çdo grafik, dmth. çdo grafik, hartĂ«, mund tĂ« vizatoni komponentin tuaj tĂ« personalizuar. Para kĂ«saj kisha njĂ« bibliotekĂ« tjetĂ«r pĂ«r vizatimin e grafikĂ«ve.

Dmth. ka një mjet për personalizimin e funksionalitetit të shfaqjes?

Çdo gjĂ«. Mund tĂ« merrni dhe tĂ« ndryshoni ngjyrat e kĂ«tyre pikave, duke i bĂ«rĂ« ato jo tĂ« kuqe, por tĂ« blu, tĂ« gjelbra.

Faleminderit për prezantimin! Keni pasur një slide, ku janë paraqitur mjete alternative për kërkesat ClickHouse për ndërtimin e dashboard-eve, raporteve analitike. E kuptova se në momentin kur filluat të punoni me ClickHouse, për këto mjete nuk janë shkruar adaptues. Dhe më intereson pse keni vendosur të krijoni mjetin tuaj, në vend që të shkruanit një adaptues për ndonjë mjet të gatshëm? Mendoj se ndreqja e redaktorit të testeve është e shpejtë. Pse vendosët të bëni kaq shumë punë?

KĂ«tu ka njĂ« moment interesant – çështja Ă«shtĂ« se unĂ« jam drejtor teknik, jo njĂ« shkencĂ«tar tĂ« dhĂ«nash. NĂ« atĂ« kohĂ«, kur filluam tĂ« implementonim Druid, nĂ« roadmap-in tim kishte rreth 50 % detyrash – le tĂ« llogarisim kĂ«tĂ« ose le tĂ« llogarisim atĂ«, ose ta analizojmĂ« kĂ«tĂ«. Dhe ndodhi qĂ« ne implementuam ClickHouse. Dhe fillova tĂ« ndĂ«rtoja shpejt, llogariti, mbylla shpejt roadmap-in tim. Dhe nĂ« atĂ« moment kuptova se mĂ« mungonin njohuritĂ« pĂ«r ShkencĂ«n e TĂ« DhĂ«nave, pĂ«r vizualizimin e tĂ« dhĂ«nave. Tabix Ă«shtĂ« njĂ« lloj detyre shtĂ«pie pĂ«r studimin e vizualizimit tĂ« tĂ« dhĂ«nave. E shikova si tĂ« plotĂ«soj Zeppelin. Kam njĂ« pak pak dashuri pĂ«r programimin e tij. E shikova Redash-in si tĂ« plotĂ«soj, por mĂ« mungonte njĂ« redaktor normal. Dhe SuperSet gjithashtu Ă«shtĂ« shkruar nĂ« atĂ« gjuhĂ« qĂ« nuk e dua shumĂ«. Dhe prandaj vendosa tĂ« krijoj njĂ« biçikletĂ«, dhe ja çfarĂ« doli.

Igor, a pranoni Pull Request?

Po.

Faleminderit shumĂ« pĂ«r prezantimin! Dhe dy pyetje. E para – nuk flisni shumĂ« mirĂ« pĂ«r Javascript. A keni shkruar nĂ« Javascript tĂ« pastĂ«r apo Ă«shtĂ« ndonjĂ« framework?*

Më mirë në Javascript të pastër.

Pra, cili është framework-u?

Angular.

E kuptoj. Dhe pyetja e dytë. A keni konsideruar R dhe *Shiny**?*

E kam konsideruar. Kam luajtur me të.

Mund të kishet shkruar një adaptues të thjeshtë.

Ai është aty. Duket se komuniteti e ka bërë, por, siç thashë në pyetjen e mëparshme, më pëlqeu të eksperimentoj vetë.

*Jo, në lidhje me vizualizimin, atje ka.

Ti thua se ka njĂ« gjĂ« dhe ajo do tĂ« tĂ« vizualizojĂ« njĂ« grafik. Hapa libra pĂ«r vizualizimin e tĂ« dhĂ«nave. Dhe mendoj: 'Le tĂ« provosh tĂ« vizualizosh kĂ«to tĂ« dhĂ«na. Do ta shkruaj vetĂ«, qĂ« tĂ« vizualizojĂ« tĂ« dhĂ«nat'. Dhe fillova tĂ« kuptoj mĂ« mirĂ« teknologjinĂ« e paraqitjes sĂ« tĂ« dhĂ«nave. Dhe nĂ«se do tĂ« kisha marrĂ« njĂ« komponent tĂ« gatshĂ«m, unĂ« personalisht do tĂ« mĂ«sova mĂ« pak se si ta pĂ«rdorja, pra dhe nĂ« lidhje me vizualizimin. Por kĂ«shtu – po, R mĂ« pĂ«lqeu, por akoma nuk e kam lexuar librin "R pĂ«r fillestarĂ«t".

Faleminderit!

Pyetje e thjeshtë. A ka ndonjë mundësi të nxjerrësh shpejt një tabelë, një grafik?

Mund të nxirret në CSV, në Excel.

Jo të dhënat, por një tabelë të gatshme, një grafik të gatshëm? Për shembull, për ta treguar shefit.

Ka një buton "Shkarko" dhe ka një buton "Shkarko grafikën në png, në jpg".

Faleminderit!

P.S. Mini-udhëzimi për instalimin e tabix

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster