ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Առաջարկում եմ կարդալ Իգոր Ստրիհարի 2017 թվականի զեկույցի սղագրությունը «ClickHouse. տեսողականորեն արագ և հստակ տվյալների վերլուծություն Tabix-ում»:

Վեբ ինտերֆեյս ClickHouse-ի համար Tabix նախագծում:
Հիմնական առանձնահատկությունները.

  • Աշխատում է ClickHouse-ի հետ անմիջապես բրաուզերից՝ առանց լրացուցիչ ծրագրեր տեղադրելու անհրաժեշտության;
  • Հարցման խմբագիր՝ շարահյուսական ընդգծմամբ;
  • Հրամանների ավտոմատ լրացում;
  • Հարցման կատարման գրաֆիկական վերլուծության գործիքներ;
  • Գունային սխեմաներ ընտրելու համար:
    ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար


ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ես SMI2-ի տեխնիկական տնօրենն եմ։ Մենք նորությունների փոխանակման նորությունների ագրեգատոր ենք: Մենք պահում ենք բազմաթիվ տվյալներ, որոնք ստանում ենք մեր գործընկերներից և գրանցում այն ​​ClickHouse-ում՝ մոտ 30 հարցում վայրկյանում:

Սա այնպիսի տվյալներ է, ինչպիսիք են.

  • Սեղմումներ նորությունների վրա:
  • Նորությունները ցուցադրվում են ագրեգատորում:
  • Բաններ ցուցադրվում է մեր ցանցում:
  • Իսկ իրադարձությունները գրանցում ենք մեր սեփական հաշվիչից, որը նման է Yandex.Metrica-ին։ Սա մեր սեփական միկրովերլուծությունն է:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Մինչ ClickHouse-ը մենք շատ բուռն կյանք ունեինք: Մենք շատ ենք տուժել՝ փորձելով ինչ-որ տեղ պահել այս տվյալները և ինչ-որ կերպ վերլուծել դրանք։

Կյանքը ClickHouse-ից առաջ – infiniDB

Առաջին բանը, որ մենք ունեինք, infiniDB-ն էր: Նա մեզ հետ ապրեց 4 տարի։ Դժվարությամբ գործարկեցինք։

  • Այն չի աջակցում կլաստերավորումը կամ բաշխումը: Նման խելացի բաներ լռելյայն դուրս չեն եկել տուփից:
  • Նա դժվարությամբ է բեռնում տվյալները: Միայն հատուկ կոնսոլային կոմունալ ծրագիր, որը կարող էր բեռնել միայն CSV ֆայլերը և միայն շատ անհասկանալի ձևով:
  • Տվյալների բազան միահյուսված է: Դուք կարող եք գրել կամ կարդալ: Բայց դա հնարավորություն տվեց մշակել մեծ քանակությամբ տվյալներ։
  • Եվ նա նաև հետաքրքիր հենակ ուներ։ Ամեն գիշեր սերվերը պետք է վերագործարկվեր, հակառակ դեպքում այն ​​չէր աշխատի:

Նա մեզ մոտ աշխատեց մինչև 2016 թվականի վերջը, երբ մենք ամբողջությամբ անցանք ClickHouse-ին։

Կյանքը ClickHouse-ից առաջ – Կասանդրա

Քանի որ infiniDB-ն միաշղթա էր, մենք որոշեցինք, որ մեզ անհրաժեշտ է մի տեսակ բազմաթելային տվյալների բազա, որտեղ մենք կարող ենք միաժամանակ գրել բազմաթիվ թելեր:

Շատ հետաքրքիր բաներ փորձեցինք։ Հետո որոշեցինք փորձել Կասանդրային։ Կասանդրայի հետ ամեն ինչ հիանալի էր: 10 հարցում վայրկյանում մեկ հայտի համար: 000 խնդրանք ինչ-որ տեղ կարդալու համար:

Բայց նա նաև ուներ իր շահերը։ Ամիսը մեկ կամ երկու ամիսը մեկ անգամ նա փորձեց տվյալների բազայի ապասինխրոնիզացիա: Եվ ես ստիպված էի արթնանալ և վազել, որպեսզի ուղղեմ Կասանդրային: Սերվերները մեկ առ մեկ վերագործարկվեցին: Եվ ամեն ինչ դարձավ հարթ և գեղեցիկ:

Կյանքը ClickHouse-ից առաջ – Դրյուիդ

Հետո հասկացանք, որ պետք է էլ ավելի շատ տվյալներ գրենք։ 2016 թվականին մենք սկսեցինք դիտել Druid-ը։

Druid-ը Java-ով գրված բաց կոդով ծրագրաշար է: Շատ կոնկրետ. Եվ դա հարմար էր clickstream-ի համար, երբ մենք պետք է պահենք իրադարձությունների ինչ-որ հոսք և հետո կատարենք դրանց ագրեգացիա կամ վերլուծական հաշվետվություններ պատրաստենք։

Druid-ն ուներ 0.9.X տարբերակը:

Տվյալների բազան ինքնին շատ դժվար է տեղակայել: Սա ենթակառուցվածքի բարդությունն է։ Այն տեղակայելու համար անհրաժեշտ էր շատ, շատ երկաթ տեղադրել։ Եվ յուրաքանչյուր սարքավորում պատասխանատու էր իր առանձին դերի համար:

Դրա մեջ տվյալներ բեռնելու համար անհրաժեշտ էր օգտագործել ինչ-որ շամանիզմ։ Կա OpenSource նախագիծ՝ Tranquility, որը հոսքի մեջ կորցնում էր մեր տվյալները: Երբ մենք բեռնեցինք տվյալներ դրա մեջ, այն կորցրեց այն:

Բայց ինչ-որ կերպ մենք սկսեցինք դա իրականացնել։ Մենք, ինչպես ոզնիները, որոնք թմրանյութ էին ընդունում, բայց շարունակում էին կակտուս ուտել, սկսեցինք ներկայացնել այն: Մեզնից մոտ մեկ ամիս պահանջվեց դրա համար բոլոր ենթակառուցվածքները պատրաստելու համար։ Այսինքն՝ պատվիրել սերվերներ, կարգավորել դերերը և լիովին ավտոմատացնել տեղակայումը: Այսինքն՝ կլաստերի ձախողման դեպքում երկրորդ կլաստերը ինքնաբերաբար կտեղակայվի:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Բայց հետո հրաշք տեղի ունեցավ. Ես արձակուրդում էի, և իմ գործընկերներն ինձ հղում էին ուղարկել հաբր, որտեղ ասվում է, որ Yandex-ը որոշել է բացել ClickHouse-ը։ Ասում եմ՝ փորձենք։

Եվ բառացիորեն 2 օրվա ընթացքում մենք տեղակայեցինք ClickHouse թեստային կլաստերը: Մենք սկսեցինք բեռնել տվյալները դրա մեջ: Համեմատած infiniDB-ի հետ՝ սա տարրական է, համեմատած Դրուիդի հետ՝ սա տարրական է: Կասանդրայի համեմատ այն նաև տարրական է: Որովհետև եթե PHP-ից տվյալները բեռնում եք Cassandra-ում, ապա սա տարրական չէ:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ի՞նչ ստացանք։ Արագության մեջ կատարողականություն. Տվյալների պահպանման գործում: Այսինքն, սկավառակի շատ ավելի քիչ տարածք է օգտագործվում: ClickHouse-ը արագ է, այն շատ արագ է համեմատած այլ ապրանքների հետ:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Գործարկման պահին, երբ Yandex-ը հրապարակեց ClickHouse-ը OpenSource-ում, կար միայն կոնսոլային հաճախորդ: Մենք մեր SMI2 ընկերությունում որոշեցինք փորձել վեբի համար հայրենի կլիենտ ստեղծել, որպեսզի կարողանանք բրաուզերից էջ բացել, հարցում գրել և ստանալ արդյունքը, քանի որ սկսել ենք շատ հարցումներ գրել։ Վահանակում գրելը դժվար է։ Եվ մենք պատրաստեցինք մեր առաջին տարբերակը։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Եվ ինչ-որ տեղ ավելի մոտ անցած տարվա ձմռանը, սկսեցին հայտնվել ClickHouse-ի հետ աշխատելու երրորդ կողմի գործիքները: Սրանք այնպիսի գործիքներ են, ինչպիսիք են.

Ես կնայեմ այս գործիքներից մի քանիսին, այսինքն՝ նրանց, որոնց հետ աշխատել եմ։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Լավ գործիք է, բայց դրուիդի համար: Երբ Druid-ը ներդրվում էր, ես փորձարկում էի SuperSet-ը: Ինձ դուր եկավ նա։ Դրուիդի համար դա շատ արագ է:

Այն հարմար չէ ClickHouse-ի համար: Այսինքն՝ այն տեղավորվում է, սկսում է, բայց պատրաստ է մշակել միայն տարրական հարցումներ, ինչպիսիք են՝ SELECT event, GROUP BY event: Այն չի աջակցում ավելի բարդ ClickHouse շարահյուսությունը:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդ գործիքը Apache Zeppelin-ն է: Սա լավ և հետաքրքիր բան է։ Աշխատանքներ. Այն աջակցում է նոթատետրերին, վահանակներին և աջակցում է փոփոխականներին: Ես գիտեմ, որ ClickHouse համայնքում ինչ-որ մեկը օգտագործում է այն:

Բայց ClickHouse-ի շարահյուսության աջակցություն չկա, այսինքն՝ դուք պետք է հարցումներ գրեք կա՛մ վահանակում, կա՛մ այլ տեղ: Հաջորդը, ստուգեք, որ ամեն ինչ աշխատում է: Պարզապես անհարմար է: Բայց այն ունի վահանակի լավ աջակցություն:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդ գործիքը Redash.IO-ն է: Redash-ը տեղակայված է համացանցում: Այսինքն, ի տարբերություն նախորդ գործիքների, այն տեղադրելու կարիք չունի։ Եվ սա վահանակ է տարբեր Տվյալների աղբյուրներից տվյալները համախմբելու ունակությամբ: Այսինքն՝ կարող եք ներբեռնել ClickHouse-ից, MySQL-ից, PostgreSQL-ից և այլ տվյալների բազաներից։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ընդամենը մեկ ամիս առաջ (2017թ. մարտ) աջակցություն հայտնվեց Գրաֆանայում։ Երբ Grafana-ում հաշվետվություններ եք պատրաստում, օրինակ՝ ձեր սարքավորման վիճակի կամ որոշ չափումների վերաբերյալ, այժմ կարող եք ստեղծել նույն գրաֆիկը կամ ինչ-որ վահանակ անմիջապես ClickHouse-ի տվյալներից: Սա շատ հարմար է, և մենք ինքներս ենք այն օգտագործում։ Սա թույլ է տալիս գտնել անոմալիաներ: Այսինքն, եթե ինչ-որ բան պատահի, և որոշ ապարատներ ընկնեն կամ լարվեն, ապա կարող եք պարզել, թե որն է պատճառը, եթե այս տվյալները կարողացել են մուտք գործել ClickHouse:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ինձ համար շատ անհարմար է գրել այս գործիքներում կամ վահանակում: Եվ ես որոշեցի բարելավել մեր առաջին ինտերֆեյսը: Եվ ես գաղափարը ստացել եմ EventSQL, SeperSet, Zeppelin-ից:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ի՞նչ էիր ուզում։ Ես ուզում էի ստանալ գրաֆիկա, կատարելագործված խմբագիր և օժանդակել ակնարկների բառարաններին: Քանի որ ClickHouse-ն ունի հիանալի հատկություն՝ բառարաններ: Բայց բառարանների հետ աշխատելը դժվար է, քանի որ դուք պետք է հիշեք պահված արժեքների ձևաչափը, այսինքն՝ դա թիվ է, թե տող և այլն: Եվ քանի որ մենք հաճախ օգտագործում ենք բառարաններ իրենց տարբեր տատանումներով, բավականին դժվար էր հարցումներ գրելը:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Մեր առաջին տարբերակի թողարկումից անցել է 3 ամիս։ Ես մոտ 330 պարտավորություն եմ կատարել մասնավոր մասնաճյուղում, և պարզվեց, որ դա Tabix է:

Ի տարբերություն նախորդ տարբերակի, որը կոչվում էր ClickHouse-Frontend, ես որոշեցի վերանվանել այն պարզ անունով: Եվ պարզվեց, որ Tabix.

Ի՞նչ հայտնվեց:

Գծում է գրաֆիկներ։ Աջակցում է ClickHouse SQL շարահյուսությունը: Գործառույթների վերաբերյալ խորհուրդներ է տալիս և կարող է շատ հետաքրքիր բաներ անել։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ահա թե ինչ տեսք ունի Tabix-ի ընդհանուր սխեման: Ձախ կողմում ծառ է: Կենտրոնում հարցման խմբագրիչն է։ Իսկ ստորև ներկայացնում ենք այս խնդրանքի արդյունքը.

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդը ես ձեզ ցույց կտամ, թե ինչպես է աշխատում հարցումների խմբագրիչը:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Այստեղ ավտոմատ լրացումը ավտոմատ կերպով աշխատում է սեղանի վրա և հուշում է, համապատասխանաբար, ավտոմատ լրացնել դաշտերի համար: Եվ ակնարկներ գործառույթների մասին: Եթե ​​սեղմեք ctrl enter, հարցումը կկատարվի կամ սխալմամբ կձախողվի: Ամենապարզ հարցումն ուղարկվում է Tabix-ին և ստացվում է արդյունքը, այսինքն՝ կարող եք արագ աշխատել ClickHouse-ի հետ:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Բառարանները, ինչպես արդեն ասացի, շատ հետաքրքիր բան են, որոնց հետ մենք շատ ենք աշխատում։ Եվ ինչը մեզ թույլ տվեց շատ բաներ անել։ Ենթադրենք, մենք պահում ենք բոլոր քաղաքները բառարաններում: Մենք պահպանում ենք քաղաքի նույնացուցիչը և քաղաքի անվանումը, դրա լայնությունը և երկայնությունը: Իսկ տվյալների բազայում մենք պահպանում ենք միայն քաղաքի նույնացուցիչը։ Համապատասխանաբար, մենք շատ ուժեղ սեղմում ենք տվյալները։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Սա կարծես պարզ բան է, բայց այն օգնում է ClickHouse-ում շատ հետաքրքիր ձևով: Շնորհիվ այն փաստի, որ ClickHouse-ն աջակցում է միայն տեղադրված միացումներին, հարցումն աճում է դեպի ներքև և բավականաչափ լայն: Եվ երբ փակագիծը բացվում է, և ինչ-որ երկար արտահայտություն է հայտնվում, ապա հարցման փլուզումը հեշտացնում է աշխատել հենց հարցման հետ: Որովհետև, երբ հարցումը 200-300 տող է երկարությամբ և մեծ լայնությամբ, շատ օգտակար է հարցումը փլուզել և հետո գտնել ինչ-որ տեղ կամ ինչ-որ կերպ տեղայնացնել այն:

Օբյեկտների ծառ, բազմաթիվ հարցումներ և ներդիրներ (Տեսանյութ 13:46 https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդը ես ձեզ ցույց կտամ ծառի և ներդիրների մասին: Ձախ կողմում ծառ է, վերևում կարող եք ստեղծել մի քանի ներդիր: Ներդիրները նման են աշխատանքային տարածքի: Դուք կարող եք ստեղծել մի քանի ներդիր և յուրաքանչյուրը յուրովի անվանել: Դա նման է մինի-համակարգի՝ հաշվետվություն ստեղծելու համար:

Ներդիրները ավտոմատ կերպով պահվում են: Եթե ​​վերագործարկեք ձեր բրաուզերը կամ փակեք կամ բացեք Tabix-ը, այս ամենը կպահպանվի:

Թեժ ստեղնը՝ հարմար (Տեսանյութ 14:39 https://youtu.be/w1-XsL3nbRg?t=879)

Կան տաք ստեղներ, և դրանք բավականին շատ են: Դրանցից մի քանիսն այստեղ որպես օրինակ եմ հանել։ Սա ներդիրների փոխարկումն է, հարցումը կամ մի քանի հարցումների կատարումը:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ես ձեզ ցույց կտամ, թե ինչպես աշխատել արդյունքի հետ: Մենք հարցում ենք ուղարկում. Ահա ես նկարում եմ sin, cos և tg. Դուք կարող եք ընդգծել արդյունքը, այսինքն՝ նկարել սյունակի բնորոշ քարտեզ: Դուք կարող եք ընդգծել դրական կամ բացասական արժեքները: Կամ պարզապես գունավորեք սեղանի որոշակի տարր: Սա հարմար է, երբ սեղանը հսկայական է, և դուք պետք է որոշ անոմալիա գտնեք ձեր աչքերով: Երբ ես անոմալիաներ էի փնտրում, կանաչ կամ կարմիր գույնով առանձնացնում էի որոշ գծեր, որոշ տարրեր։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Այնտեղ շատ հետաքրքիր բաներ կան։ Օրինակ, ինչպես պատճենել Redmine Markdown-ում: Եթե ​​Ձեզ անհրաժեշտ է ինչ-որ տեղ պատճենել արդյունքը, սա շատ հարմար է։ Դուք կարող եք պարզապես ընտրել տարածքը, ասեք «Պատճենել Redmine-ին», և այն կպատճենվի Redmine Markdown-ում կամ կստեղծի Where հարցում:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդը հարցման օպտիմալացումն է: Մի անգամ մոռացել էի նշել «ամսաթիվ» դաշտը: Եվ իմ խնդրանքը ClickHouse-ում մշակվեց ոչ թե շատ, շատ արագ, այլ արագ, այսինքն՝ մեկ վայրկյանից պակաս: Երբ տեսա, թե քանի գծերով նա վազեց, ես վախեցա։ Մենք այս աղյուսակում մեկ օրում այդքան տող չենք գրում: Ես սկսեցի վերլուծել խնդրանքը և տեսա, որ բաց եմ թողել ժամադրությունը մեկ վայրում: Այսինքն, ես մոռացել էի նշել, որ ինձ պետք են ոչ թե տվյալներ ամբողջ աղյուսակի համար, այլ կոնկրետ ժամանակահատվածի համար։

Tabix-ն ունի «Վիճակագրություն» ներդիր, որը պահպանում է ուղարկված հարցումների ողջ պատմությունը, այսինքն՝ այնտեղ կարող եք տեսնել, թե քանի տող է կարդացվել այս հարցումը և որքան ժամանակ է պահանջվել դրա կատարման համար: Սա թույլ է տալիս օպտիմալացնել:

Հարցման արդյունքի վրա կարող եք կառուցել առանցքային աղյուսակ: Դուք հարցում եք ուղարկել ClickHouse-ին և ստացել որոշակի տվյալներ: Եվ այնուհետև դուք կարող եք տեղափոխել այս տվյալները ձեր մկնիկի միջոցով և կառուցել մի տեսակ առանցքային աղյուսակ:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդ հետաքրքիր բանը դավադրությունն է։ Ենթադրենք, ունենք հետևյալ խնդրանքը՝ sin-ի համար՝ cos 0-ից մինչև 299: Իսկ այն նկարելու համար պետք է ընտրել «Draw» ներդիրը և կստանաս գրաֆիկ քո մեղքով և cos-ով:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Դուք կարող եք դա բաժանել տարբեր առանցքների, այսինքն՝ կարող եք միանգամից երկու գրաֆիկ նկարել կողք կողքի: Գրեք մեկ հրաման և երկրորդ հրաման:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Դուք կարող եք նկարել հիստոգրամներ:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Դուք կարող եք դա բաժանել գրաֆիկների մատրիցայի:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Դուք կարող եք կառուցել ջերմային քարտեզ:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Դուք կարող եք կառուցել ջերմային օրացույց: Ի դեպ, սա շատ հարմար բան է, երբ անհրաժեշտ է մեկ տարվա ընթացքում վերլուծել անոմալիաները, այսինքն՝ գտնել կա՛մ հասկեր, կա՛մ կաթիլներ: Այս տվյալների վիզուալիզացիան ինձ օգնեց այս հարցում:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդը Treemap-ն է:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Sankeys-ը հետաքրքիր աղյուսակ է: Նա կա՛մ Streamgrahps է, կա՛մ River: Բայց ես այն անվանում եմ գետ: Այն նաև թույլ է տալիս փնտրել ցանկացած անոմալիա։ Շատ հարմար է։ Ես խորհուրդ եմ տալիս օգտագործել այն որոնման համար:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդ հետաքրքիր բանը դինամիկ քարտեզ գծելն է։ Եթե ​​դուք պահում եք լայնությունը, երկայնությունը ձեր տվյալների բազայում և, ասենք, պահում եք նպատակակետ, եթե, օրինակ, ունեք բեռնատարներ կամ թռչող ինքնաթիռներ, ապա կարող եք գծել նպատակակետի ուղիները: Նաև այնտեղ կարող եք սահմանել այդ օբյեկտների արագությունն ու չափը, որոնց մեջ նրանք թռչում են:

Բայց այս քարտեզի խնդիրն այն է, որ այն գծում է միայն աշխարհի քարտեզը, մանրամասն չկա:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Ավելի ուշ ես ավելացրեցի Google քարտեզը։ Եթե ​​պահպանում եք լայնությունը, երկայնությունը, ապա կարող եք արդյունքը նկարել Google քարտեզի վրա, բայց առանց ինքնաթիռի աջակցության:

Մենք քննարկել ենք արդյունքների և հարցումների հետ աշխատելու հիմնական գործառույթները Tabix-ում։

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդը ձեր ClickHouse սերվերի վերլուծությունն է: Առանձին «Չափանիշներ» ներդիր կա, որտեղ կարող եք տեսնել յուրաքանչյուր սյունակի համար պահված տվյալների չափը: Սքրինշոթը ցույց է տալիս, որ այս «ուղղորդող» դաշտը զբաղեցնում է մոտ 730 Գբ: Եթե ​​մենք հրաժարվենք այս դաշտից, մենք կխնայենք յուրաքանչյուրը 700 ԳԲ-ի երեք բեկոր, այսինքն՝ մոտ 2 ՏԲ, որը մեզ պետք չէ:

Մենք նաև ունենք «request_id» դաշտ, որը մենք պահում ենք տողի մեջ: Բայց եթե սկսենք այն թվային տեսքով պահել, այս դաշտը ահռելիորեն կկրճատվի:

Այն նաև ցույց է տալիս սերվերի կոնֆիգուրացիան և ձեր կլաստերի հանգույցների ցանկը:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդ ներդիրը չափումներ են: Նրանք մտնում են իրական ժամանակում ClickHouse-ի հետ և պարզապես թույլ են տալիս վերլուծել սերվերի վիճակը և հասկանալ, թե ինչ է կատարվում նրա հետ: Սա ամբողջական Grafana-ի փոխարինումը չէ: Սա անհրաժեշտ է արագ վերլուծության համար:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Հաջորդ ներդիրը գործընթացներն են: Դրանցից կարելի է հասկանալ, թե ինչ է կատարվում սերվերում։ Հասկացեք, թե ինչ է կատարվում այնտեղ: Ես ունեի մի խնդրանք, որն ամեն անգամ սպառում էր 200 ԳԲ ընթերցանություն: Ես սա տեսա այս ինտերֆեյսի շնորհիվ: Ես բռնեցի նրան ու ուղղեցի։ Եվ պարզվեց, որ դա մոտ 30 ԳԲ է, այսինքն երբեմն կատարում է:

ClickHouse – տեսողականորեն արագ և ինտուիտիվ տվյալների վերլուծություն Tabix-ում: Իգոր Ստրիհար

Շնորհակալություն! Եվ դա OpenSource-ում է

Ես ավարտեցի. Եվ, ի դեպ, այն OpenSource է, այն անվճար է, և դուք նույնիսկ կարիք չունեք այն ներբեռնելու: Բացեք այն բրաուզերում և ամեն ինչ կաշխատի:

Հարցեր

Իգոր, ի՞նչ է հաջորդը: Որտե՞ղ եք մշակելու այս գործիքը:

Հաջորդը, վահանակները կհայտնվեն, այսինքն, գուցե հայտնվեն վահանակներ: Ինտեգրում այլ տվյալների բազաների հետ: Ես դա արեցի, բայց դեռ չեմ հրապարակել OpenSource-ում: Սա MySQL է և, հնարավոր է, PostgreSQL: Այսինքն՝ Tabix-ից հնարավոր կլինի հարցումներ ուղարկել ոչ միայն ClickHouse, այլ նաև այլ գործիքներ։

Հասկանալի է, որ հսկայական աշխատանք է կատարվել։ Բավականին ամբողջական գաղափար ստացվեց։ Դա արվել է զննարկիչում, ըստ երևույթին, բոլոր տեսակի առանցքների վրա հենակները վերացնելու և ամբողջը արագ նետելու համար: Ես լսել եմ, որ դու միացված ես php աշխատում է, այնպես որ ամենահեշտ ճանապարհը այն մուտքագրելն է բրաուզերում, և այն կաշխատի ամենուր: Այս մասին հարցեր չկան։ Հարցը սա է. Այնտեղ իսկապես շատ բան է արվել։ Քանի՞ հոգի է աշխատել սրա վրա: Իսկ ինչքա՞ն ժամանակ տևեց այդ ամենը: Քանի որ հատուկ գործիքները սովորաբար այդքան ֆունկցիոնալություն չունեն:

Մեր թիմից մեկ հոգի աշխատել է ամառից մինչև աշուն։ Սա առաջին տարբերակն էր։ Հետո միայնակ 330 պարտավորություն կատարեցի։ Այն, ինչ տեսնում եք, ես և իմ գործընկերը կիսով չափ արեցինք: 3 ամսում առաջին տարբերակից մինչև վերջինը հիմնականում մենակ եմ արել։ Բայց ես Javascript-ն այնքան էլ լավ չգիտեմ: Սա իմ միակ և, հուսով եմ, իմ վերջին Javascript նախագիծն էր, որի հետ ես աշխատել եմ: Ես հասկացա, նայեցի - ախ, սարսափ: Բայց ես իսկապես ցանկանում էի ավարտել արտադրանքը, և ահա թե ինչ եղավ:

Շատ շնորհակալ եմ զեկույցի համար: Սա հիանալի գործիք է: ՀԵՏ սեղան Համեմատե՞լ եք։

Շնորհակալություն. Դրա համար էլ անվանել եմ Տաբիքս, քանի որ առաջին տառերը նույնն են։

Որովհետև դու մրցո՞ւմ ես։

Ներդրումները շատ են լինելու, մրցելու ենք։

Ինչպես կարող եք առաջարկել վաճառել ներքին վերլուծաբաններին, որ այս գործիքն ամբողջությամբ կփոխարինի *Աղյուսակ*? Որո՞նք են լինելու փաստարկները։

Աշխատում է «ClickHouse»-ի հետ: Ես փորձեցի Tableau-ն, բայց այնտեղ չես կարող բառարանների և նմանների աջակցություն գրել: Ես գիտեմ, թե ինչպես են մարդիկ աշխատում Tabix-ի հետ: Նրանք հարցում են գրում, վերբեռնում են CSV-ում և վերբեռնում BI: Իսկ այնտեղ արդեն ինչ-որ բան են անում։ Բայց ես դժվարանում եմ պատկերացնել, թե ինչպես են դա անում, քանի որ դա գրաֆիկական գործիք է։ Այն կարող է բեռնաթափել 5 տող, առավելագույնը՝ 000 տող, բայց ոչ ավելին, հակառակ դեպքում բրաուզերը չի դիմանա։

Այսինքն՝ տվյալների քանակի հետ կապված որոշ լուրջ սահմանափակումներ կան, չէ՞։

Այո՛։ Ես չեմ կարող պատկերացնել, որ դուք կցանկանայիք ձեր աղյուսակի 10 տող վերբեռնել ձեր բրաուզերի էկրանին: Ինչի համար?

Արդյո՞ք սա նշանակում է, որ սա ինտերֆեյս է տվյալների արագ դիտման համար: Մի քիչ պտտե՞լ, պտտե՞լ։

Այո, արագ տեսեք, թե ինչպես է այն աշխատում և պարզապես կառուցեք ամփոփ գրաֆիկ: Եվ հետո ինչ-որ տեղ տվեք: Մենք ունենք մեր սեփական հաշվետվության համակարգը, որտեղից ես ուղղակի վերցնում եմ այս խնդրանքը։ Ես նկարում եմ Tabix-ում և ուղարկում մեր ռեպորտաժին:

Եվ ևս մեկ հարց. Կոհորտային վերլուծություն.

Եթե ​​լինեն խնդրանքներ, մենք կավելացնենք։

Ե՞րբ եք նոր սկսել օգտագործել այն: ClickHouse, որքա՞ն ժամանակ տևեց իրականացումը: clickhouse և բերելով դեպի արտադրության վիճակ.

Ինչպես ասացի, մենք շատ կարճ ժամանակում իրականացրեցինք թեստային կլաստեր։ Մենք այն տեղակայեցինք երկու օրում։ Եվ մենք փորձարկեցինք այն ևս մի քանի շաբաթ: Եվ մենք արտադրության հասանք 3 ամսում, բայց մենք ունեինք մեր սեփական ETL, այսինքն՝ տվյալների գրանցման գործիք: Եվ նա գրում էր այն ամենում, ինչ կարող էր։ Նա կարող է գրել MongoDB, Cassandra, MySQL: Հեշտ էր նրան սովորեցնել, թե ինչպես գրել ClickHouse-ում: Մենք ունեինք պատրաստի ենթակառուցվածք՝ արագ իրականացման համար։ 3 ամսվա ընթացքում մենք սկսեցինք դուրս նետել առաջին բաղադրիչը։ 6 ամսում մենք բոլորովին հրաժարվեցինք մնացած ամեն ինչից։ Մեզ մնացել է միայն մեկ ClickHouse:

Իգոր, շատ շնորհակալ եմ զեկույցի համար: Ինձ շատ դուր եկավ քարտեզների միջոցով արահետներ կառուցելու ֆունկցիոնալությունը: Կա՞ն արդյոք ծրագրեր Yandex.Maps-ի և մասնավորապես մաքսային Yandex.Maps-ի հետ ինտեգրվելու համար:

Փորձեցի ինտեգրվել Google map-ի փոխարեն, բայց Yandex.Maps-ում մուգ թեմա չգտա։ Ես քեզ մի հատ չասացի։ Ես կվերադառնամ՝ ավելացնելու համար:

Սլայդ – Google քարտեզ: Կա «DRAW_GMAPS» հրաման, որը գծում է քարտեզ: Կա «DRAW_YMAPS» հրաման, այսինքն՝ այն կարող է նկարել Yandex.Map: Բայց իրականում այս հրամանի տակ կա Javascript, այսինքն՝ այն տվյալները, որոնք դուք ստանում եք ClickHouse-ից, կարող են փոխանցվել Javascript-ին, որը դուք գրում եք այստեղ։ Եվ դուք ունեք ելքային տարածք, որտեղ այն պետք է նկարվի: Դուք կարող եք նկարել ցանկացած գրաֆիկ, այսինքն՝ ցանկացած գրաֆիկ, քարտեզ, կարող եք նկարել ձեր սեփական բաղադրիչը: Մինչ այս ես ունեի ևս մեկ գրադարան՝ գրաֆիկները նկարելու համար:

Այսինքն՝ կա՞ գործիք ցուցադրման ֆունկցիոնալությունը հարմարեցնելու համար։

Ցանկացած. Դուք կարող եք վերցնել և գունավորել այս կետերը՝ դրանք դարձնելով ոչ թե կարմիր, այլ կապույտ, կանաչ:

Շնորհակալություն զեկույցի համար: Դուք ունեիք սլայդ, որը ներկայացնում էր հարցման այլընտրանքային գործիքներ clickhouse վահանակների և վերլուծական հաշվետվությունների կառուցման համար: Ես դա հասկանում եմ այն ​​պահին, երբ դու սկսեցիր աշխատել ClickHouse, այս գործիքների համար ադապտերներ չեն գրվել: Եվ ես զարմանում եմ, թե ինչու որոշեցիք պատրաստել ձեր գործիքը, փոխարենը ինչ-որ պատրաստի գործիքի համար ադապտեր գրեք: Կարծում եմ, որ թեստային խմբագրիչի ճշգրտումը արագ է: Ինչո՞ւ որոշեցիք այդքան աշխատանք կատարել:

Այստեղ մի հետաքրքիր կետ կա՝ փաստն այն է, որ ես տեխնիկական տնօրեն եմ, այլ ոչ թե տվյալների գիտնական։ Այն պահին, երբ մենք սկսեցինք իրականացնել Druid-ը, իմ ճանապարհային քարտեզն ուներ առաջադրանքների մոտ 50%-ը. եկեք հաշվարկենք սա, կամ եկեք հաշվարկենք սա, կամ վերլուծենք սա: Եվ պարզվեց, որ մենք ներդրեցինք ClickHouse-ը։ Եվ նա սկսեց արագ կառուցել ամեն ինչ, հաշվել և արագ փակեց իր ճանապարհային քարտեզը։ Եվ այդ ժամանակ ես հասկացա, որ ինձ պակասում է տվյալների գիտության և տվյալների վիզուալիզացիայի գիտելիքները: Tabix-ը իմ տնային աշխատանքն է տվյալների վիզուալիզացիայի սովորելու համար: Ես նայում էի, թե ինչպես լրացնել Zeppelin-ը: Ես մի փոքր հակակրանք ունեմ նրա ծրագրավորման նկատմամբ: Ռեդաշ Ես նայեցի, թե ինչպես կարելի է ավելացնել, բայց նորմալ խմբագիրն ինձ բավական էր։ Եվ SuperSet-ը նույնպես գրված է մի լեզվով, որն ինձ այնքան էլ դուր չի գալիս: Եվ այսպես, ես որոշեցի հեծանիվ վարել, և ահա թե ինչ եղավ։

Իգոր, ընդունու՞մ ես Pull-ի հարցումները:

Այո:

Շատ շնորհակալ եմ զեկույցի համար: Եվ երկու հարց. Նախ, դուք շատ շողոքորթ չեք խոսում դրա մասին Javascript. Դուք գրել եք մերկ Javascript-ով, թե՞ դա ինչ-որ շրջանակ է:*

Ավելի լավ է մերկ Javascript-ում:

Այսպիսով, ինչ շրջանակ:

Անկյունային.

Պարզ է. Եվ երկրորդ հարցը. Դուք մտածե՞լ եք R и *Փայլուն **?*

Համարեց. Խաղացել է.

Կարող եք նաև պարզապես ադապտեր գրել:

Նա է. Թվում է, թե համայնքը դա արել է, բայց, ինչպես ես պատասխանեցի նախորդ հարցին, ես ինքս ցանկացա փորձել:

*Ոչ, վիզուալիզացիայի հետ կապված, այն նույնպես կա:

Ասում ես, որ նման բան կա, և դա քեզ գրաֆիկ կտա։ Ես բացեցի մի գիրք տվյալների վիզուալիզացիայի վերաբերյալ: Եվ ես մտածեցի. «Թույլ տվեք փորձել պատկերացնել այս տվյալները: Ես կգրեմ նրան, որպեսզի նա կարողանա վերականգնել տվյալները»: Եվ ես սկսեցի ավելի լավ հասկանալ տվյալների սնուցման տեխնոլոգիան: Իսկ եթե ես պատրաստի բաղադրիչ վերցնեի, անձամբ ես ավելի վատ կսովորեի օգտագործել այն, այսինքն՝ վիզուալիզացիա։ Բայց այո, ինձ դուր եկավ R, բայց ես դեռ չեմ կարդացել «R for Dummies» գիրքը:

Thank you!

Պարզ հարց. Նշան կամ ժամանակացույց արագ վերբեռնելու ուղիներ կա՞ն:

Կարող է վերբեռնվել CSV կամ Excel-ում:

Ոչ թե տվյալներ, այլ պատրաստի ափսե, պատրաստի գրաֆիկ։ Օրինակ՝ շեֆին ցույց տալու համար։

Կա «Վերբեռնել» կոճակը և կա «Վերբեռնել գրաֆիկը png-ով, jpg-ով»:

Thank you!

PS Տաբիքս տեղադրելու մինի հրահանգներ

  • RЎRєR ° C ‡ P ° C SЊ վերջին թողարկումը
  • Բացեք փաթեթավորումը, պատճենեք գրացուցակը build nginx root_path-ում
  • Կարգավորել nginx-ը

Source: www.habr.com

Добавить комментарий