ááœááºáá²á·áá±á¬áá¯á¶ážááŸá
áºá Yandex á០Viktor Tarnavsky ááŸáá·áº Alexey Milovidov HighLoad++
áá¯á¶ážááŸá áºááŒá¬ááẠá¡áááºááá¯ááŸáááºáá« ááá¯áá±á¬ááºážáá¬ááẠ- á€á¡áá»áááºá¡áá±á¬á¡ááœááºáž á¡áááºááá¹áá¬ážááẠáá°áá»á¬ážááᯠááŒá±á¬ááºážááœáŸá±á·ááẠáá°áá®áá¯á¶áá¬áá Altinity áá¯áá¹ááá®ááᯠáááºáá±á¬ááºáá²á·áááºá á¡áááºááá¯ááŸáááºáá« ááá±á¬áá»ááºáá±á«ááºáž áá»á¬ážá áœá¬á áá«áá±ááá·áº Yandex á០áá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážááŸáá·áºá¡áá° áá¯ááºáá¯ááºááá¯ááºááá¯ááºááá¯áááºáž ááá¯ážáááºáá±á¬ááºážááœááºá á±áá«áááºá áá² á¡áááºááá¯ááŸáááºáá« áá±á«á·áá±á«á·áá«ážáá«áž áááºážáá»áŸá±á¬ááºáá¬ááá¯ááºáá±ážáá±ááá·áº ááá¯ááºážááœááºážááá¯ááºáá±á¬á·áá°ážá
Alexander ááẠ2003 áá¯ááŸá áºááááºážá ááŒáá·áºáá±ááŸá¯á áá áºáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáá²á·ááŒá®áž ááŒá®ážáá¬ážáá±á¬ ááá±á¬áá»ááºáá»á¬ážááᯠáá®ááœááºáá²á·áááºá MySQLá Oracle О Vertica. áá±á¬ááºáá¯á¶ážáá±á«áº HighLoad++ 2019 á¡áááºáááºážáá«ážááᯠá¡áá¯á¶ážááŒá¯á ááŸá±á·áá±á¬ááºáá áºáŠážááŒá áºáááºá á¡áááºááá¯ááŸáááºáá«áá® DBMS á á¡áᯠáá¬áá²ááá¯áᬠááŒá±á¬ááŒáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááá¡ááºá¹áá«áááºáá»á¬ážá¡ááŒá±á¬ááºáž áá±á·áá¬áá«áááºá á¡áááºááá¯ááŸáááºáá«: áááºážááẠá¡ááŒá¬ážá áá áºáá»á¬ážááŸáá·áº áááºááá¯á·ááœá¬ááŒá¬ážááŒá®áž áááºááá·áºááá á¹á áá»á¬ážááœáẠáááºážááá¯á¡áá¯á¶ážááŒá¯ááẠááá¯ááá¯áááá±á¬ááºááŸá¯ááŸááááºá á¥ááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á áá áºáááºáá±á¬ááºááŒááºážá¡ááœáẠáááºááá±á¬ááŸáá·áº ááá±á¬áá»ááºá ááºážáááºáá¬ážáá±á¬ á¡áá±á·á¡áá»áá·áºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááŒáá·áºááŸá¯áá«áááºá á¡áááºááá¯ááŸáááºáá«.
áá±á¬ááºááŒá±á¬ááºážááŒááº: ááœááºáá²á·áá±á¬ 3 ááŸá áºáááŒá áºáá»ááºáá²á·áááºá
ááœááºáá²á·áá²á· áá¯á¶ážááŸá áºá áá»áœááºáá±á¬áºááá¯á· áá¯áá¹ááá®ááᯠááŒá±á¬ááºážááœáŸá±á·áá²á·áááºá LifeStreet á¡áá±á«áº á¡áááºááá¯ááŸáááºáá« á¡ááŒá¬ážáá±á¬ ááœá²ááŒááºážá áááºááŒá¬áá±á¬ áá±áá¬áá±á·á áºááŸá ááŒá±á¬áºááŒá¬ááœááºááẠááœá²ááŒááºážá áááºááŒá¬ááŸá¯ ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááẠá€áá²á·ááá¯á· ááŒá áºáááº-
- ááœááºá 2016 áá¯ááŸá Ạááœááºá·áááºážá¡áááºážá¡ááŒá Ạáá±á«áºáá¬ááẠá¡áááºááá¯ááŸáááºáá« áá»áœááºá¯ááºááá¯á·á ááá±á¬áá»ááºááᯠá áááºáá²á·áááºá
- ááŒáá¯ááºáá á¡áá°á¡ááááºáá±: ááŒá®ážáá¬ážáá±á¬ááŒá±á¬áºááŒá¬ááœááºáááºá á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááŸáá·áº áá±áᬠááá-ááá áá¬áá¬ááá¯ááºá
- á¡á±á¬ááºááá¯áá¬áá ááááŠážá áœá¬áá¯ááºáá¯ááºááŸá¯áá±áá¬;
- áá®áááºáá¬á áá¯ááºáá¯ááºá¡ááŒáá·áºááœááºážááŸá¯ááẠáá áºáá±á·áá»áŸáẠááŒá áºáááºáá±á«ááºáž áá-á á áá®áá®áá¶ááŒá áºáááºá
- ááœááºá 2017á á¡áá¯á¶ážááŒá¯áá°áá»á¬ážáá¶ááá¯á· á¡á±á¬ááºááŒááºá áœá¬ ááŒá±á¬ááºážááœáŸá±á·ááŒááºážá á¡áááºááá¯ááŸáááºáá«áá¬áᬠ2,5 áá¡á á¯á¡áá±ážááœáẠáá±áᬠ60 petabytesá
ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááŸá¯ áá¯ááºáááºážá ááºá¡ááœááºáž áá¬ážáááºááŸá¯ ááá¯ážááœá¬ážáá¬áá²á·áááºá á¡áááºááá¯ááŸáááºáá« áááºážááẠYandex áá¡ááœááºážááá¯ááºážááá±á¬áá»ááºáá áºáá¯ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá Yandex ááẠáááºážáááá¯ááºááá¯ááºá¡ááœááºážááá¯ááºážáá±á¬ááºáááºáá»á¬ážááŸáá·áº ááááŠážá áœá¬ ááá¯ááºááœááºááŒá±ááŸááºážáááºááŒá áºááŒá®áž ááá¯ááŸáá¬áá»áŸáẠá¡ááá¯ááºá¡áááºážááŸáá·áº ááŒááºáá¡áá¯á¶ážááŒá¯áá°áá»á¬ážá ááá¯á¡ááºáá»ááºáá»á¬ážááᯠááá¯ááºááœááºááŒá±ááŸááºážáááºááŒá áºááŒá®áž ClickHouse ááẠáá¯ááºáááºážáááºáááºááŸá¯áááºáááºáá»á¬ážá áœá¬ááœáẠáá¯ááºáááºážá¡ááá·áºááá¯á·ááá±á¬ááºááŸááá²á·áá±á ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠAltinity ááᯠ2017 áá¯ááŸá ẠáááºáááœáẠáááºáá±á¬ááºáá²á·áááºá á¡áááºááá¯ááŸáááºáá« Yandex á¡ááœááºáá¬áá á¡ááŒá¬ážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡ááœááºáááºáž ááá¯ááá¯ááŒááºáááºááŒá®áž ááá¯ááá¯á¡áááºááŒá±á á±áá«áááºá ááᯠáá»áœááºá¯ááºááá¯á·-
- áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±áá¶á ááŒá±ááŸááºážáááºážáá»á¬ážááᯠáá±á·áá»áá·áºáá±ážááŒá®áž áá°áá®áá±á¬ááºááœááºáá±ážáá«áááºá á¡áááºááá¯ááŸáááºáá« áá±á¬ááºáááºáá»á¬áž ááŒá¿áá¬ááááºá á±áááºááŸáá·áº ááŒá±ááŸááºážáá»ááºááẠáá±á¬ááºáá¯á¶ážááœáẠá¡áá¯ááºááŒá áºá á±áááºá
- áá»áœááºá¯ááºááá¯á·ááẠ24/7 áá¶á·ááá¯ážááŸá¯áá±ážáá«áááºá á¡áááºááá¯ááŸáááºáá«- áááºáááºááŸá¯áá»á¬áž;
- áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáá±áá áá áºááá±á¬áá»ááºáá»á¬ážááᯠáá±á¬áºáá±á¬ááºáá«áááºá
- áá»áœááºá¯ááºááá¯á·ááẠááááááá¯ááºááᯠáááºááŒáœá áœá¬ áááááŒá¯áá«áááºá á¡áááºááá¯ááŸáááºáá«á¡áá»áá¯á·áá±á¬á¡ááºá¹áá«áááºáá»á¬ážááá¯ááŒáá·áºááŸá¯ááá¯áá±á¬á¡áá¯á¶ážááŒá¯áá°áá»á¬ážáá¶ááŸáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááá¯áá¯á¶á·ááŒááºááŒááºážá
áá¯ááºáá«áááºá áá»áœááºáá±á¬áºááá¯á·áá®ááᯠááŒá±á¬ááºážááœáŸá±á·ááá¯á· áá°áá®áá±ážáááºá á¡áááºááá¯ááŸáááºáá« Ñ á MySQL, Vertica, Oracle á, Greenplum, Redshift ááŸáá·áºá¡ááŒá¬ážá áá áºáá»á¬ážá áá»áœááºá¯ááºááá¯á·ááẠááŸá¯ááºááŸá¬ážááŸá¯á¡áá»áá¯ážáá»áá¯ážááœáẠáá«áááºáá²á·ááŒá®áž áááºážááá¯á·á¡á¬ážáá¯á¶áž á¡á±á¬ááºááŒááºáá²á·áááºá
áá¬ááŒá±á¬áá·áºááœáŸá±á·áá¬áá²á á¡áááºááá¯ááŸáááºáá«
ááŸá±ážááœá±ážááá±áá«áá°ážá áá«á á¡ááá á¡ááŒá±á¬ááºážáááºážáá«á á¡áááºááá¯ááŸáááºáá« - ááá°áá®áá±á¬á¡ááŒá±á¡áá±áá»á¬ážá¡ááœááºá¡ááœááºááŒááºáááºáá±á¬áá±áá¬áá±á·á áºá
á¡áá»áááºá¡áá±á¬áºááŒá¬ á¡áá¯ááºáá¯ááºááá¯ááºáá±áá°áá»á¬ážáá¶á០áá»áááºážááá¯ážáá¬ážáá»ááºáá»á¬áž á¡áááºááá¯ááŸáááºáá«.
áá»áœááºážáá»ááºááá¯ááºááá¯ááºááŸá¯á á¡ááŒá¬ážáá±áá¬áá±á·á áºá¡áá»áá¯á·ááœáẠáááºááẠáá¬á·ááºáá²á¡á áááºá¡ááá¯ááºážáá áºáá¯ááœáẠáá±á¬ááºážááœááºáá±á¬á áœááºážáá±á¬ááºáááºááᯠáááŸáááá¯ááºáá±á¬áºáááºážá á¡áááºááá¯ááŸáááºáá« áá¬áá¬áá»á¬ážááᯠááá·áºááœááºážááŒááºážááŒáá·áº áá±á«ááºááá¯ááºáá¬áá á¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬ááá¯áá« ááá¯ááºážáá¬ááá¯ááºáááºá á¡á¬ážáá¯á¶ážá áá«ááá¯á·á¡ááá¯á¡ááá¯ááºáž áá»á±á¬ááœá±á·á áœá¬ á¡áá¯ááºááá¯ááºáá±ááá·áºá ááá·áºáá¯ááºáááºážááŒá®ážááœá¬ážáá¬áááºááŸáá·áºá¡áá»áŸ á áá áºá¡á¬áž áá»á²á·ááœááºááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠááá¯ááŒá±ááŸááºážáá»ááºááŒáá·áº ááá·áºáááºááá¬ážáá² ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠá¡ááŒá²áááºáž á¡áá¬ážá¡áá¬ááŸáááẠá¡áá±ážááŒá®ážáá«áááºá
áá±á«á·áá«ážááœááºáááºáááºá. á¡áá¬áá áºáá¯á¡áá±á«áº ááœááºáá¬ááŸá¯ áááŸááá«á á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá±áá¯á¶ Redshift áá áºáá±áá¬áá¬ááᯠááœáŸá±á·ááá¯á·áááºáááºá áá Ạá¡áááºááá¯ááŸáááºáá« áááºážááᯠááá·áºáááºááºáá±á¬á·á áá¬áá¬ááœáẠááá·áºááœááºážááá¯ááºááŒá®áž áááºážááᯠcloud ááœáẠááŒáá·áºáá»ááºá ááá¯á· ááœá¬ážáá«á Kubernetes - á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áááºáááºááŸá¯á¡áá±á«áº ááá·áºáááºáá»ááºáááŸááá«á áááºážááẠáá°ááá¯ááºážá¡ááœáẠá¡áááºááŒá±ááŒá®áž áááºážááẠá¡ááŒá¬ážáá±á¬ á¡áá¬ážáá° áá±áá¬áá±á·á áºáá»á¬ážá áœá¬ááᯠááŒáœá¬ážáá«ááááá±á¬ ááŒá®ážáá¬ážáá±á¬ á¡á¬ážáá¬áá»ááºáá áºáá¯ááŒá áºáááºá
ááŒá±á¬ááºážááœááºááŒááºááœááº. á¡áááºááá¯ááŸáááºáá« á¥ááá¬á Yandex.Metrica ááẠáá áºáá¯áááºážáá±á¬á¡áá¬ááœáẠáááºááá·áºááá±áá²á ááœá¶á·ááŒáá¯ážááá¯ážáááºááŒá®áž ááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ ááá±á¬áá»ááºáá»á¬ážááŸáá·áº á ááºááŸá¯áá¯ááºáááºážáá»á¬ážááœáẠááá¯ááá¯á¡áá¯á¶ážááŒá¯áááºá ááŒá¿áá¬á¡áá áºáá»á¬ážááá¯ááŒá±ááŸááºážááẠá áœááºážáááºá¡áá áºáá»á¬ážááá·áºááœááºážááŒááºážááŒáá·áº áááºážááᯠááá¯ážáá»á²á·ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá±áá¬áá±á·á áºáá áºáá¯ááœáẠááŸááºáááºážáá»á¬ážááᯠááááºážáááºážááŒááºážááẠááá¯ážááœá¬ážáá±á¬á¡áá°á¡áá»áá·áºááŒá áºáááºáᯠáá¯á¶ááŒááºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááẠááœááºáá±á«áºáá¬ááŒááºážááŒá áºáááºá Elasticsearch. áá«áá±ááá·áº áá»á±á¬á·ááŒá±á¬ááºážááŸá¯ááᯠáá»á±ážáá°ážáááºáá«áááºá á¡áááºááá¯ááŸáááºáá«áááºážááœáẠááŸááºáááºážáá»á¬ážááᯠáááºáááºáž ááááºážáááºážááá¯ááºááŒá®ážá áááŒá¬ááááá¯áááᯠáááºážááẠááœááºáááºááẠááá¯áá±á¬ááºážáá«áááºá Elasticsearch - in á¡áááºááá¯ááŸáááºáá« áááºážááẠáá¶áá¬áẠáá á ááá¯ááá¯á¡ááºáááºá
á¡ááá²á· ááœááºá·áááºážáá²á·á¡áááºážá¡ááŒá áº. áá¬á០áá±ážá áᬠáááá¯áá«áá°ážá ááá·áºáááºááºáá±á¬á· ááá¯á·ááá¯áẠáá¬áá¬ááœáẠá áá áºááá·áºááœááºážááẠááœáá·áºááŒá¯áá»ááºááŸáááŸáá¯ááºážááẠáááá¯á¡ááºáá«á ááŸááºáá¬ážáá±á¬á¡áááŒá±ážááœá±áááŸááá«á áá áºáá»áááºáááºážááŸá¬áááºá á¡ááŒá¬ážáá±á¬ Open Source áá±áá¬áá±á·á áºáááºážááá¬ááŸáá·áº á¡ááŸáááºá¡áá¯ááºááŒáá·áº áááŸááºááá¯ááºáá«á á¡áááºááá¯ááŸáááºáá«. MySQLá MariaDBá Greenplum - áá°ááá¯á·á¡á¬ážáá¯á¶ážá á¡áá»á¬ážááŒá®ážááŸá±ážááœá±ážáááºá
á¡ááá¯ááºá¡áááºážá ááŸáẠáá»á±á¬áºá áá¬á At á¡áááºááá¯ááŸáááºáá« áá±á¬ááºážááœááºáá±á¬á¡ááá¯ááºážá¡ááá¯ááºáž- ááœá±á·áá¯á¶ááœá²áá»á¬ážá áá»ááºáááºáá»á¬ážááŸáá·áº Alexey Milovidov ááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á¡á¬ážáá¯á¶ážááᯠáá°áá áœááºážá¡ááºááŸáá·áº á¡áá±á¬ááºážááŒááºáá«áááŒáá·áº á áœá²áá»ááºáááºáá¬ážáááºá
ClickHouse ááá¯á·ááŒá±á¬ááºážááŒááºážá
ááœá¬ážááá¯á· á¡áááºááá¯ááŸáááºáá« á¡ááŒá±á¬ááºážáá áºáá¯áá¯ááŒá±á¬áá·áºá áááºááẠá¡áá¬áá¯á¶ážáá¯áᬠááá¯á¡ááºáááº-
- ááá·áºáááºáá»ááºáá»á¬ážááá¯áá¬ážáááºáá«á á¡áááºááá¯ááŸáááºáá« áá¬á¡ááœááºá០áááá·áºáá±á¬áºáá°ážá
- á¡ááœáá·áºáá±á¬ááºážáá°áá«á áááºážááá¬ááŸáá·áº áááºážá á¡ááŒá®ážáá¬ážáá¯á¶áž á¡á¬ážáá¬áá»ááºáá»á¬ážá
- á ááºážáááºááŸá¯. áááºááá¯á¡áá¯ááºáá¯ááºáááºááá¯áá¬áá±á¬áẠáá¬ážáááºáááºá á¡áááºááá¯ááŸáááºáá«áááºá¡áá»ááẠááá¯ááŒááºáááºá áááºá¡áá»ááẠááá¯ááŸá±ážáááºá áááºáá±á¬á· ááá¯áá±á¬ááºážáááºá áááºáá±á¬á· ááá¯ááá¯ážáááºááá¯áᬠá¡ááŒá²áááºáž ááá·áºááŸááºážááá¯á· áááá°ážá áá«ááŒá±á¬áá·áº ááŒáá¯ážá á¬ážáá«á
ááœáŸá±á·ááŒá±á¬ááºážááŒá¿áá¬
"ááá¯á·áá±á¬áº" áá áºáá¯áááºážáá¬ááŸááááº- áááºááŒá±á¬ááºážááœáŸá±á·áá»áŸáẠá¡áááºááá¯ááŸáááºáá« á¡ááŒá¬ážáá áºáá¯áá¯ááŸá áá áºáá¯áá¯ááŸá¬ážáááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áá¡ááŒáá¯ááºáá¯á¶ážáá±áá¬áá±á·á áºááœááºá¡áá¯ááºáá¯ááºáá±á¬á¡áá±á·á¡áá»áá·áºá¡áá»áá¯á·ááŸáá·áºá¡áá¬áá»á¬ážááá¯áá»áá·áºáá¬ážááá±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áº áááºáá°á·ááá¯áááᯠáááºááœá²áá±á«áºáá«á SQL-áá±áá¬áá±á·á áºáá»á¬ážááẠá¡á±á¬ááºáá±á¬áºááŒáá« áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááŒá áºááá± ááá·áºááœááºážá ááºážá á¬ážáááº-
- á¡áá±á¬ááºážá¡áááºáá»á¬áž;
- ááá·áºáááºáá»ááºáá»á¬áž;
- áá®ááœááºááŸá¯;
- á¡ááœáŸááºážááááºážáá»á¬áž
- á¡ááºááááº/áá»ááºáá«á;
- NULLs;
- áá®áá®á áá¹ááá·áºáá»á¬áž;
- á¡ááá¯á¡áá»á±á¬ááºá¡áá»áá¯ážá¡á á¬áž áá¬á áº;
- á¡áá»á¬ážá¡ááŒá¬ážáá°ážáá±á«ááºáž;
- áááá¬áž partitions;
- á¡á á¯á¡áá±ážá á®áá¶ááá·áºááœá²ááŸá¯áááááá¬áá»á¬ážá
Recruitment ááẠáááŒá áºááá± áá¯á¶ážááá±á¬áºáááºáž ááœááºáá²á·áá±á¬ áá¯á¶ážááŸá áºááá·áºá ááŒá áºáááºá á¡áááºááá¯ááŸáááºáá« á€áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážáá²á០áá áºáá¯áá»áŸ ááááá¯ááºáá«á ááᯠá¡áá±á¬ááºá¡áááºááá±á¬áºááá±ážááá·áºá¡áá¬áá»á¬ážá áááºáááºáááºáááºážáááº- ááœá±áá±ážááœá±áá°áá»á¬ážá ááá·áºáááºáá»ááºáá»á¬ážá ááá¯ááºáá®ááŸá¯ááŸááá±á¬á áá®áá®á áá¹ááá·áºáá»á¬ážááŸáá·áº á¡áá»áá¯ážá¡á á¬ážáá¬á áºááºá
ááŒá®ážáá±á¬á· á¡áááá¡áá»ááºá á¡á²áá®áá²ááŸá¬ á¡áááºááá¯ááŸáááºáá« á¡áá»áá¯á·áá±á¬ á á¶áá»áá·áºáá¯á¶ážáá»á¬ážááŸáá·áº áá»ááºážáááºááŸá¯áá»á¬ážááẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áá±áá»ááẠá¡áá¯ááºááá¯ááºááŒááºáž ááá¯á·ááá¯áẠááœá²ááŒá¬ážá áœá¬ á¡áá¯ááºááá¯ááºáá«á áá±á«áºáá¬ááá»áŸ á¡áááºááá¯ááŸáááºáá«" áClickHouse áááºážáááºáž", i.e. áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠá¡ááŒá¬ážáá±áá¬áá±á·á áºáá»á¬ážááŸáá·áº ááœá²ááŒá¬ážáááºá á¥ááá¬á¡á¬ážááŒááºá·:
- á¡ááœáŸááºážáá»á¬ážááᯠáááœá±ážáá»ááºáá±á¬áºáááºáž áá»á±á¬áºááœá¬ážáá«áááºá
- á¡ááºááááº/áá»ááºáá«á synchronous ááá¯ááºáá²á asynchronous
- áá»áááºáááºááŸá¯áá»á¬ážá áœá¬ááŸááá±á¬áºáááºáž á á¯á¶á ááºážáá±ážááŒááºážááŸá¯ á¡á á®á¡á ááºáááŸááá«á áááºážááá¯á·ááᯠáááºááá¯á·áá¯ááºáá±á¬ááºááááºááᯠáá±áá°áá»á¡á¬ážááŒáá·áº áá±áá¬áá±á·á áºááá¹áá¬ááŸáá°áá»á¬ážá¡ááœáẠááŸááºážááŸááºážáááºážáááºážáááááá±á
ClickHouse Scripts
1960 ááœááºá áááºáá±áá®ááœááºááœá¬ážá¡áá±áááááºáááºá¹áá»á¬ááá¬ááŸáẠWigner EP áá±á¬ááºážáá«ážáá áºáá¯ááºáá±ážáááº"ááá¬ááááá¹áá¶ááœáẠáááºá¹áá»á¬á áá¯áá¹áááááŸááá±á¬ áááá±á¬ááºááŸá¯â (âááá¬ááááá¹áá¶ááœáẠáááºá¹áá»á¬á áá¬ážááááºááá¯ááºáá±á¬ áááá±á¬ááºááŸá¯â)) áá»áœááºá¯ááºááá¯á·áááºáááºážáá»ááºááŸá ááá¹áá¬ááẠáááºá¹áá»á¬á¥ááá±áá»á¬ážááŒáá·áº á¡ááŒá±á¬ááºážááŒáá»ááºá¡áá»áá¯á·ááŒá±á¬áá·áº áá±á¬ááºážá áœá¬áá±á¬áºááŒáá¬ážáááºá áááºá¹áá»á¬ááẠá ááá¹ááááá¬áááºáá áºáá¯ááŒá áºááŒá®áž áááºá¹áá»á¬áá¯á¶á á¶ááŒáá·áº áá±á¬áºááŒáá¬ážáá±á¬ áá¯ááºááá¯ááºážááá¯ááºáá¬á¥ááá±áá»á¬ážááẠá¡áá±ážá¡ááœá²ááá¯ááºáá«á Wigner EP áá«á ááááºááᯠáá°ážáááºážáááºááá¯á· á¡áá±ážáá±ážáááºá
áá«á·á¡ááŒááºá á¡áááºááá¯ááŸáááºáá« - áá°áá®áá±á¬ áá°ážáááºážááŸá¯á Wigner ááᯠááŒááºááá¯áááºá áá»áœááºá¯ááºááá¯á· á€ááá¯á·ááŒá±á¬ááá¯ááºáááº- á áááºáá°ážááááºááá¯ááºáá±á¬ á áœááºážáá±á¬ááºáááºááẠá¡á¶á·á©á áá¬ááŒá áºáááºá á¡áááºááá¯ááŸáááºáá« ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááá¯ááºáᬠá¡ááá®áá±ážááŸááºážáá»á¬ážá áœá¬ááœááºá
á¥ááᬠáá°ááŒáá«á
áá¯á· á¡áá»áááºááŸáá·áºáááŒá±ážáá® áá±áá¬ááá¯áá±á«ááºáá±áá¬ááᯠá¡áááºáááŒááºáá®ážáá«áž áááºáá±áá«áááºá áá¯áááááŸá±á¬áá·áºááŸá±ážááŸá¯ááŒáá·áº áááºážáá¶á០áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áááºáá¶ááá¯áá«áááºá áá»á±ážáá°ážááŒá¯á á¡áá¯á¶ážááŒá¯áá«á á¡áááºááá¯ááŸáááºáá«á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áááºážááẠáááºážá¡ááœáẠáááºáá®ážáá¬ážááá·áº ááŒááºááœááºážááŒá
áºáááºá á¡áááºááá¯ááŸáááºáá« áááºážááᯠáááºáá±á«áºááœááºáá¬áá á
á»á±ážááœááºááŸá¬ááœá±áá±ážááŸáá·áº ááœá±ááŒá±ážááá¯ááºáᬠááœá²ááŒááºážá
áááºááŒá¬ááŸá¯ááœááºáá« á¡áá¯á¶ážááŒá¯ááá·áºáá¯á¶á
á¶á AdTech, á¡ááŒááºá ááááºáááºááŸá¯ááᯠáá±á¬ááºááŸááºážááŒááºážán. IN á¡áá»áááºááŸáá·áºáááŒá±ážáá® áá±áá¬ááá¯áá±á«áẠ"ááŒááº" ááá¯á·ááá¯áẠ"ááŸááºážááœáá·áº" áá²á·ááá¯á·áá±á¬ ááŸá¯ááºááœá±ážáá±á¬ááœá²á·á
ááºážáá¯á¶á¡á
á®á¡á
á¥áºááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž ááá¬ážáá»á¬ážá
áœá¬ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá JOIN (ááá«ááᶠá¡áá»á¬ážá¡ááŒá¬áž) ááŸáá·áº áá±áá¬áá»á¬ážááᯠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áá»áá¯á·áá±á¬ á
áá
áºáá»á¬ážááœáẠááááºážáááºážááŒá®áž ááŒá±á¬ááºážáá²áá«áááºá
áá±á¬ááºááẠáá¬ááºáááºážáá
áºáá¯ááᯠááŒáá·áºáá¡á±á¬ááº- á¡áá»áááºá
á®ážáá®áž: á
ááºáá
á¹á
ááºážáá»á¬ážá ááœááºáááºáá»á¬ážá á¡áá¯á¶ážááŒá¯ááŸá¯á
á¬áááºážá¡ááºážáá»á¬ážá á¡áá¬áá»á¬ážá á¡ááºáá¬áááºááᯠá
á±á¬áá·áºááŒáá·áºááŒááºážá á€ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® ááá¯ážááŸááºážáá±á¬ á¡ááŒá
áºá¡áá»ááºáá»á¬ážááᯠááŒá¯á¶ááœá±á·ááááºá á¡áááºááá¯ááŸáááºáá« áááºážá¡ááœáẠáá°áá áá®ááœááºáá¬ážááŒááºážááá¯ááºáá±á¬áºáááºáž áá±á¬ááºážá
áœá¬á¡áá¯ááºáá¯ááºááẠáá°á·ááá¯ááºáá° ááŒááá²á·ááŒá®ážááŒá
áºáá±á¬ááŒá±á¬áá·áº áá¯áá¹ááá®ááŒá®ážáá»á¬ážá á¡áá¯á¶ážááŒá¯ááŒáááºá á¡áááºááá¯ááŸáááºáá« ááááºážá¡áá»ááºá¡áááºá
á±á¬áá·áºááŒáá·áºááŒááºážá¡ááœááºááá¯ááŸá±á¬ááºáá¬á¡ááŒá
áºá ááá·áºáá±á¬áºááá¬áž á
á°ážá
ááºážáá«á á¡áááºááá¯ááŸáááºáá« á¡áá»áááºá
á®ážáá®ážá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá»ááºážáááºááŸá¯ááŸáá·áº ááááºáá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á á
á¶áááºááŸááºáá»ááºáá
áºáᯠááŒá¯áá¯ááºáá²á·áááºá InfluxDB О áááºá¹ááá¬áá« - á¡áá°ážááŒá¯ á¡áá»áááºá
á®ážáá®áž áá±áá¬áá±á·á
áºáá»á¬ážá
Ð á¡áá»áááºá
á®ážáá®áž á¡áá»á¬ážá¡á¬ážááŒáá·áº ááá¬ážáá»ááºážááᯠáá¯á¶ážááẠ- áá±á¬áºáá¶áááºáá»á¬ážá
áœá¬á áá±áá¬á¡áá»á¬ážá¡ááŒá¬ážááẠá
á±á¬áá·áºááŒáá·áºááŒááºážâáá
áºá
áá¹ááá·áºáá»áŸáẠáááºážáá±á«ááºážáá»á¬ážá
áœá¬áá±á¬ ááŸááºáááºážáá»á¬ážâááŸáá·áº áááºážááá¯á·ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áá±ážáááºáá±á¬ áá±á«ááºááœá²ááœááºáá¬ááŒááºáž (á¡áá»áááºááŸáẠáá¯ááºááœáŸáá·áºááŒááºáž)á ááá¯á·ááŒá±á¬áá·áºá ááá°áá®áá±á¬ááá·áºááœááºážááŸá¯ script áá
áºáá¯ááá¯á¡ááºááŒá®áž queries áá»á¬ážááá¯ááºááá¯ááºááœááºáááºážááá¯á·áááá¯ááºááá¯ááºáááºááŸááºáá»ááºáá»á¬ážááŸááááºá
á á®áá¶áááºá·ááœá²ááŸá¯ Log. áá±áá¬áá±á·á áºáá áºáá¯ááá¯á· ááŸááºáááºážáá»á¬áž á á¯áá±á¬ááºážááŒááºážááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº ááá±á¬ááºážáá±á¬áºáááºážá á¡áááºááá¯ááŸáááºáá« á¡áááºáá±á¬áºááŒáá«á¡ááá¯ááºáž ááŸááºáá»ááºá¡áá»áá¯á·ááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáá«áááºá áá¯áá¹ááá®áá±á¬áºáá±á¬áºáá»á¬ážáá»á¬ážá áá¯á¶ážáá«áááºá á¡áááºááá¯ááŸáááºáá« á€áááºááœááºáá»ááºá¡ááœááºá¡ááá¡áá»á á€ááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·ááẠááŸááºáááºážáá áºáá¯áá¯á¶ážááᯠááááºážáááºážáá¬ážááá·áº ááŒá¬ážáá»ááºáá»ááºáá»áẠá á¬ážááœá²ááᯠá¡áá¯á¶ážááŒá¯ááẠ(á¥ááá¬á áá¯á¶á á¶ááŒáá·áº JSON) ááá¯á·ááá¯áẠá¡ááá¯ááºážááá¯ááºážááŒááºáá«á áá±áá¬áá»á¬ážááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº á¡á á¯á¡áá±ážááŒá®ážáá»á¬áž (ááá¯ááºáá»á¬áž) ááœáẠáááºáá±á¬ááºááŒááŒá®áž á¡áá»áá¯á·á¡ááœááºáá»á¬ážááŒáá·áº ááŸá¬ááœá±ááŒáááºá
á€áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯á á®á¡ááœáẠá¡áá°ážááŒá¯áá±áá¬áá±á·á áºáá»á¬ážááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº á¡áá¯á¶ážááŒá¯ááŒáááºá á¡áááºááá¯ááŸáááºáá« áá áºá á¯á¶áá áºáá±á¬ááºááẠáááºážááᯠá¡áá¯á¶ážá á¯á¶ á áœááºážáá±á¬ááºááá¯ááºááŒá®áž áááºážááá¯á·ááẠáá¬ááœááºáá±á¬ááºážááœááºáááºá á¡áᯠá¡áá®ážááẠáá±á·áá¬ááŒáá·áºáá¡á±á¬áẠá¡áá»áááºá á®ážáá®áž áá¬ááºááœáŸááºážááŸáá·áº ááŸááºáááºá áœá¬ áá»ááºááŒá¯ááºáááºáž á¡áááºááá¯ááŸáááºáá« á€áá¬ááºáááºážá¡ááœááºá
á¡áá»áááº-á á®ážáá®áž
áá±á¬áá±á¬áááºáá±á¬á· áá«á á¡ááá áá¬ááºááœáŸááºážáá«áá²á á¡áááºááá¯ááŸáááºáá« á á¶ááŒá±ááŸááºážáá»ááºáᯠáá°ááá«áááºá á¡áá»áááº-á á®ážáá®áž á¡áá»áááºááŸáá·áºá¡áá»áŸ á¡áá»áá¯á·áá±á¬ áá¯ááºáááºážá ááºáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá¯ááºá á¬ážááŒá¯áá±á¬ á¡ááŒá áºá¡áá»ááºáá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® á á¯á ááºážáá¬ážáá±á¬ ááŒá áºáááºáá áºáá¯ááŒá áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºážááẠáá áºáá±á·áá»áŸáẠááŸáá¯á¶ážáá¯ááºááŸá¯ááºáž ááá¯á·ááá¯áẠá áá áºá¡ááœááºážááŸá áá¯ááºáááºážá ááºá¡áá±á¡ááœáẠááŒá áºááá¯ááºáááºá á¡áá»áá¯á·áá±á¬á¡ááá¯ááºážá¡áá¬áá»á¬ážááŒáá·áº á¡áá»áááºááᯠá¡ááŸááºá¡áá¬ážááŒá¯áá±ážááá·áº á¡áá¬á¡á¬ážáá¯á¶ážááẠááŒá áºáá á¡áá»áááºá á®ážáá®áž:
á€ááŒá
áºáááºá¡áá»áá¯ážá¡á
á¬ážá¡áá»á¬ážá
á¯ááẠá
á±á¬áá·áºááŒáá·áºááŒááºážááŸáá¬áá«áááºá áááºážááẠáááºááᯠá
á±á¬áá·áºááŒáá·áºáá¯á¶áá¬áá á
á
áºááŸááºáá±á¬ áááááá¬áá»á¬ážáá«- áá¬ážáá»á¬ážá á
ááºááŸá¯á
áá
áºáá»á¬ážá IoTYandex á áááºáá¬ážááŒá®ážáá¬ážá áá¯ááºáá¯ááºááŸá¯ ááá¯á·ááá¯áẠáá±á¬ááºážáá°áá²á· ááá¹áá
á®áá»á¬áž á¡áááºááá¯ááŸáááºáá«- áá¬áá¬á
á¥ááá¬á¡á¬ážááŒáá·áºá áááºá¹áá±á¬áá»á¬ážá០á¡áá»ááºá¡áááºá á¯áá±á¬ááºážááá·áº áá¯áá¹ááá®áá»á¬áž ááŸááááºá á áá¹ááá·áºá¡áááºážáááºááá¯ááºážá ááœááºááááºáá¬áááºá¹áá±á¬áá±á«áºááŸá á¡á¬áá¯á¶áá¶áááááá¬áá»á¬ážááẠááá°áá®áá±á¬ ááá¯ááºážáá¬ááŸá¯áá¬áá±á«ááºážáá»á¬ážá áœá¬ááᯠáá±ážááá¯á·áááºá á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠáááºážááá¯á·á¡á¬áž áá±á·áá¬áᬠáá±á¬áºáááºáá»á¬ážááᯠáááºáá±á¬ááºáᬠáááºá¹áá±á¬ááᯠáááºáá²á·ááá¯á· áááááá±á¬ááºáá±á¬áẠá¡áá¯á¶ážááŒá¯ááŒá±á¬ááºáž áá¬ážáááºááẠááŒáá¯ážá á¬ážááŒáááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº ááœááºááááºáá¬áááºá¹áá±á¬ááẠáá áºá áá¹ááá·áºááẠáááºáá¬ážáá¬ážááá·áºáááºá áááºááá·áºá ááºáááºáááºáááᯠááœá±áá¯á¶ážááŸá¯á¶ážááŸá¯ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº áááºááá·áºááŒááºážáááºážáá«ážá á±ááẠáááºážááŒá±á¬ááºážááŒáá¯áááºááá·áºááŸááºážááẠá¡áá±ážááŒá®ážáá«áááºá
ááá±á·áá±ááºááœáẠááá¯ááºážáá¬ááá¯ááºáá±á¬ á¡áá°ážááŒá¯áá±áá¬áá±á·á áºáá»á¬áž ááá¯ážááœá¬ážáá¬áá«áááºá á¡áá»áááºá á®ážáá®áž. site áá±á«áºááœáẠDB-á¡ááºáá»ááºáá»á¬áž ááá°áá®áá±á¬áá±áá¬áá±á·á áºáá»á¬ážááᯠáá áºáááºážáááºážááŒáá·áº á¡ááá·áºáááºááŸááºáá¬ážááŒá®áž áááºážááá¯á·ááᯠá¡áá»áá¯ážá¡á á¬ážá¡ááá¯áẠááŒáá·áºááŸá¯ááá¯ááºáááº-
ááŒá®ážááœá¬ážááŸá¯á¡ááŒááºáá¯á¶ážá¡áá»áá¯ážá¡á
á¬ážááŒá
áºáááºá á¡áá»áááºá
á®ážáá®ážáá ááááºááºáá±áá¬áá±á·á
áºáá»á¬ážáááºáááºážááŒá®ážááœá¬ážáá¬áá±á¬áºáááºážá á¡áá»áááºá
á®ážáá®ážááœááºáá²á·ááá·áº ááŸá
áºá¡áááºážáááºá¡ááœááºáž ááá¯ááá¯ááŒááºáááºá
áœá¬ ááŒá®ážááœá¬ážáá¬áá²á·áááºá á€áá±áá¬áá±á·á
áºáááá¬ážá
á¯á áá¯á¶ááŸááºááá¯ááºá
á¬ážááŸááºáá»á¬ážááŒá
áºáááºá InfluxDB, Prometheus, KDB, áááºá¹ááá¬áá« (áááºáá±á¬ááºáá¬ážáááºá PostgreSQL) ááá¯á·á០ááŒá±ááŸááºážáá»áẠá¡áá±áá¯á¶. á¡áááºááá¯ááŸáááºáá« á€áá±áá¬ááœááºáááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºááŒá®áž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡áá»á¬ážáá°ááŸá¬ááá°áá¬á¡áááºážáááºáá±ážáá«áá
á±á
ááŸá±á·áá±á¬ááºáá»á¬ážáá²á០áá áºáŠážááŸá¬ áá¯áá¹ááá®ááŒá áºáááºá CloudFlare (CDN- áá¶á·ááá¯ážáá°)á áá°ááá¯á· á á±á¬áá·áºááŒáá·áºáá±ááŒáááºá CDN ááŒááº. á¡áááºááá¯ááŸáááºáá« (DNS ááá¯- áá±á¬ááºážááá¯áá»ááºáá»á¬ážá ááẠHTTPááŒá®ážáá¬ážáá±á¬áááºááŸáá·áºá¡áá°) - áá áºá áá¹ááá·áºáá»áŸááºááŒá áºáááºáá±á«ááºáž 6 áááºážá á¡áá¬áá¬ááá¯ááºážááᯠááŒááºáááºážáá«á Kafka, ááœá¬ážááẠá¡áááºááá¯ááŸáááºáá«á áá áºá¡ááœááºážááŸá á¡ááŒá áºá¡áá»ááºáá»á¬ážá áááºááŸáºáá¯ááºáá»á¬ážááᯠá¡áá»áááºááŸáá·áºáááŒá±ážáá® ááŒáá·áºááŸá¯ááẠá¡ááœáá·áºá¡áááºážáá±ážááá·áºá
Comcast - á¡áá±áááááºááŒááºáá±á¬ááºá á¯ááŸá áááºáá®áá¯ááºážáááºááœááºáá±ážááá¯ááºáᬠáá±á«ááºážáá±á¬ááºáá»á¬ážáá²á០ááŠáž - á¡ááºáá¬áááºá áá áºáá»á áºááẠáá¯ááºááŒááºáá¶ááŒá¬ážá áááºáá®áá¯ááºážá á¡áá¬ážáá° ááááºážáá»á¯ááºááŸá¯á áá áºááᯠáááºáá®ážáá²á·ááŒáááºá CDN á¡ááœááºáž ááœááºá·áááºážáá²á·á¡áááºážá¡ááŒá Ạá á®áá¶ááááºáž Apache Traffic Control áááºáááŒá®ážáá¬ážáá±á¬áá±áá¬ááŸáá·áºá¡áá¯ááºáá¯ááºáááºá á¡áááºááá¯ááŸáááºáá« ááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡ááœáẠáá±á¬ááºáá¶á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áááºá
percona built in á¡áááºááá¯ááŸáááºáá« ááá·áºá¡ááœááºážááá¯ááºáž PMMá¡áá»áá¯ážáá»áá¯ážáá±á¬ á á±á¬áá·áºááŒáá·áºááááºážáááºážááẠá MySQL.
áááá»áá±á¬ááá¯á¡ááºáá»ááºáá»á¬áž
Time-series databases áá»á¬ážááœáẠáááºážááá¯á·á ááá¯ááºááá¯áẠáá®ážááŒá¬ážááá¯á¡ááºáá»ááºáá»á¬ážááŸááááºá
- á¡á±ážáá»áá·áºáá»á¬ážá áœá¬áá¶á០áá»ááºááŒááºá áœá¬ ááá·áºááœááºážááŒááºážá. áá¯ááºááœáŸáá·áºááŸá¯áá»á¬ážá áœá¬á០áá±áá¬ááᯠá¡ááœááºáá»ááºááŒááºá áœá¬ ááá·áºááœááºážááá«áááºá á¡áááºááá¯ááŸáááºáá« áááºážáááá·áºááœááºážááŸá¯á¡á¬ážáá¯á¶ážááẠááááºááá¯á·ááŒááºážáááŸááá±á¬ááŒá±á¬áá·áº áááºážááᯠáá±á¬ááºážááœááºá áœá¬áá¯ááºáá±á¬ááºáááºá áá áºáá¯áᯠááá·áºááœááºáž áá áºááºáá±á«áºááœáẠááá¯ááºá¡áá áºáá áºáá¯ááŒá áºááŒá®áž áá±ážáááºáá±á¬ááá·áºááœááºážááŸá¯áá»á¬ážááᯠáá áºáááºážááá¯ááºáá áºáááºážááŒáá·áº ááŒá¬ážáá¶ááá¯ááºáááºá IN á¡áááºááá¯ááŸáááºáá« áá áºááŒáááºáá»áŸáẠá á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºážááẠááŒá®ážáá¬ážáá±á¬á¡á á®á¡á á¥áºááœáẠáá±áá¬ááá·áºááœááºážááŒááºážááẠááá¯áá±á¬ááºážáááºá
- ááŒá±á¬ááºážááœááºááŒááºááœááºá¡á á®á¡á á¥áºá á¡ááá¯áá« á¡áá»áááºá á®ážáá®áž áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠáá±áá¬ááœá²á·á ááºážáá¯á¶ááᯠáá¯á¶ážá áááááŒáá«á áá®ážááŒá¬ážá¡ááá®áá±ážááŸááºážáá áºáá¯á¡ááœáẠá á±á¬áá·áºááŒáá·áºáá±ážá áá áºáá áºáᯠáááºáá±á¬ááºááẠááŒá áºááá¯ááºáá±á¬áºáááºáž á¡ááŒá¬ážá¡ááá®áá±ážááŸááºážáá áºáá¯á¡ááœáẠáááºážááᯠá¡áá¯á¶ážááŒá¯ááẠáááºáá²áááºá áááºážááẠááá¯á ááá¯ááºáá»á±á¬áá®ááœá±ááŸááá±á¬ á¡á á®á¡á ááºáá áºáᯠááá¯á¡ááºáá«áááºá á¡áááºááá¯ááŸáááºáá«ááŒááºážááŒááºážáááºááẠááá¯ááºááŸáááºáá¬ážáá±á¬áºáááºážá á€á¡áá¬ááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºá á±áá«áááºá
- áááá±á¬ááºá áœá¬ ááááºážáááºážááŒááºážááŸáá·áº áá±áá¬áá»á¬ážááᯠáá±á·áá»á±á¬á·ááŒááºážá. áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áá»áááºá á®ážáá®áž áá±áá¬ááá¬á áá»á¬ážááŒá¬ážáá±á¬ááŒá±á¬áá·áº áááºááá¯ááºááá»áŸ áááá±á¬ááºá áœá¬ ááááºážáááºážáá¬ážááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá InfluxDB áá±á¬ááºážáá±á¬ compression áááºáááºážáá¡áááá¡ááºá¹áá«áááºááŒá áºáááºá ááá¯á·áá±á¬áº ááááºážáááºážááŒááºážá¡ááŒááºá áááºááẠáá±áá¬áá±á¬ááºážáá»á¬ážááᯠâáá±á·â ááá¯ááºááŒá®áž áá áºáá»áá¯ážáá»áá¯áž áá¯ááºáá±á¬ááºááá¯ááºáááºááá¯á¡ááºáááºá ááŸááá·áºáá»ááŒááºáž - á¡á á¯á¡áá±ážáá»á¬ážááá¯á¡ááá¯á¡áá»á±á¬ááºáá±ááœááºááŒááºážá
- áá±á«ááºážá ááºážáá¬ážáá±á¬áá±áá¬á¡ááœáẠááŒááºáááºáá±á¬áá±ážááœááºážáá»á¬áž. ááá«ááᶠáá±á¬ááºáá¯á¶áž 5 áááá áºááᯠáá®áá®á áá¹ááá·áºáá»á¬áž áááá»ááŸá¯ááŒáá·áº ááŒáá·áºááẠá áááºáááºá á¬ážá áá¬áá±á¬ááºážáá±á¬áºáááºáž áá ááºáá±áᬠáááá Ạááá¯á·ááá¯áẠáá¯ááá á¡áá±ážá áááºáá±á¬áºááŒáá»áẠáááá¯á¡ááºááá¯ááºáá± - áá±áá¯áá»ááááºážááááºážáá»á¬ážááẠáá¯á¶áá±á¬ááºáá«áááºá á€áá²á·ááá¯á·áá±á¬áá¶á·ááá¯ážááŸá¯ááá¯á¡ááºáááºá ááá¯á·ááá¯ááºáá«á 3 ááá±á¬ááºážááá¯áá»ááºáá áºáá¯ááŒá®ážááŒá±á¬ááºáááºáááºá¡áá»áááºááŒá¬ááŒáá·áºáááá·áºáááºá á¡áááºááá¯ááŸáááºáá«.
- áá±á¬ááºážááá¯áá»ááºáá»á¬áž "ááá±á¬ááºáá¯á¶ážá¡áá»ááºÂ». áá«ááœá±á áá¯á¶ááŸááºáá«áá²á á¡áá»áááºá á®ážáá®áž áá±ážááœááºážáá»á¬áž- á¡áá»áááºáá®á áá áºá áá±á¬ááºáá¯á¶ážááá¯ááºážáá¬ááŸá¯ ááá¯á·ááá¯áẠá¡ááŒá±á¡áá±á¡á¬áž á¡áá»áááºáá®ááŒáá·áºááŸá¯áá«á t. á€á¡áá¬áá»á¬ážááẠáá±áá¬áá±á·á áºáá áºáá¯á¡ááœáẠá¡ááœááºáá¬áá¬áá±á¬áá±ážááœááºážáá»á¬ážááá¯ááºáá±á¬áºáááºáž áááºážááá¯á·ááá¯áááºáž áá¯ááºáá±á¬ááºááá¯ááºáááºááá¯á¡ááºáááºá
- "áá»áááº" á¡áá»áááºá á®ážáá®áž. á¡áá»áááº-á á®ážáá®áž á¡áá»áááºá á®ážáá®ážáá áºáá¯ááŒá áºáááºá á¡áá»áááºá á®ážáá®ážááŸá áºáá¯ááŸááá»áŸáẠáááºážááá¯á·ááẠáááŒá¬áááá»áááºáááºááŒá®áž áááºá ááºáá±ááẠááá¯á¡ááºáááºá á¡áá°ážáááŒáá·áº áá»áááºááŸáááá¬ážáá±á¬ á¡áá»áááºá á®ážáá®ážáá»á¬ážááŸáá·áº áá±áá¬áá±á·á áºá¡á¬ážáá¯á¶ážááœáẠáááºážááᯠááŒá¯áá¯ááºááẠá¡áááºáááŒá±áá«- á€áá±áá¬ááœáẠá¡áá»áá¯á·áá±á¬ á¡áá»áááºá¡áá»ááºáá»á¬ážá á¡ááŒá¬ážáá»á¬ážááŸááá«áááºá ááẠáá»ááºážáá»áŸ á ááºážá á¬ážááá¯ááºáá±á¬áºáááºáž áá¯ááºáááẠááá¯áá±áá¬ááœáẠá¡áá±á«ááºáá áºáᯠááŸááá±áááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááẠáááŸááºážáááºážáá«á
áá®ááá¯á¡ááºáá»ááºááœá±ááᯠáááºááá¯ááŒáá·áºáááºážáá±ážááá²ááá¯áᬠááŒáá·áºááá¯ááºáá¡á±á¬áẠá¡áááºááá¯ááŸáááºáá«.
á¡á á®á¡á ááº
Ð á¡áááºááá¯ááŸáááºáá« á¡á á®á¡á áẠá¡áá»áááºá á®ážáá®áž áá±áá¬á áá¯á¶ááŸááºááŸá¯ááºážáá±á«áºáá°áááºá áááºážáááºážá¡áá»áá¯ážáá»áá¯ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáááºá áááºááá áºá¡á¬ážáá¯á¶ážááᯠááŒáá¯áááá¬ážáá±á¬á¡áá«ááœáẠáá¯á¶ááŸááºáá±áá¬á áá áºáá áºáᯠáááºáá±á¬ááºááá¯ááºáááºá á¥ááᬠáá«áá®ááá¯áá¯ááºáááºá CloudFlare á á±á¬áá·áºááŒáá·áºááŸá¯ááŸáá·áºá¡áá° CDN áá±á¬ááºážááœááºáá±á¬ optimized á áá áºáá áºáá¯ááŒá áºáááºá á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠáá áºáá¯áá¯á¶ážááŸáá·áº áááºáá±á¬ááºááŸá¯á¡áá»áá¯ážáá»áá¯ážááᯠá á±á¬áá·áºááŒáá·áºááá·áº ááá¯ááá¯áá±áá¯áá»á áá áºáá áºáá¯ááᯠáááºáááºáá±á¬ááºááá¯ááºáááºá áááŸááºáá±á¬áá±áá¬ááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·á á±á¬áá·áºááŒáá·áºáá±áá±á¬á¡áá¬ááᯠááŒáá¯ááááá« - á€áááºááŸá¬ á¡ááŒá áºá¡áá»á¬ážáá¯á¶ážááá á¹á ááŒá áºááá¯ááºáááºá
áá¯á¶ááŸááºáá±áá¬á áá±á¬áºáá¶áá»á¬ážá á¡á á®á¡á á¥áºááẠááá¯ážááŸááºážááẠ- ááá¯á¡ááºáá±á¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážáá«ááŸááá±á¬ áá±á¬áºáá¶áá»á¬áž
CREATE TABLE cpu (
created_date Date DEFAULT today(),
created_at DateTime DEFAULT now(),
time String,
tags_id UInt32, /* join to dim_tag */
usage_user Float64,
usage_system Float64,
usage_idle Float64,
usage_nice Float64,
usage_iowait Float64,
usage_irq Float64,
usage_softirq Float64,
usage_steal Float64,
usage_guest Float64,
usage_guest_nice Float64
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);
á€áááºááŸá¬ á áá áºá áááºááŒááºážáá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯á·ááᯠá á±á¬áá·áºááŒáá·áºá á áºáá±ážááá·áº áá¯á¶ááŸááºááá¬ážáá áºáá¯ááŒá áºááẠ(á¡áá¯á¶ážááŒá¯áá°ááá¯, á á¶áá áº, áá»ááºážáááá±á¬, áá±á¬ááºážáá²á·) ááá¯ážááŸááºážááŒá®áž á¡áááºááŒá±áá±ááá·áº ááŒá±á¬ááºážááœááºááŒááºááœááºáá±á¬á· ááá¯ááºáá«áá°ážá áá»áœááºá¯ááºááá¯á·ááẠááá¯á ááá¯ááºáá»á±á¬áá®ááœá±ááŸááá±á¬ á¡á á®á¡á á¥áºááᯠááá¯áá»ááºáá«áá áá»áœááºá¯ááºááá¯á·ááẠarray áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
áááŸááºáá±á¬á¡áá»ááºá¡áááºá á¡áááºážáá»á¬áž:
CREATE TABLE cpu_alc (
created_date Date,
created_at DateTime,
time String,
tags_id UInt32,
metrics Nested(
name LowCardinality(String),
value Float64
)
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);
SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...
ááœá²á·á ááºážáá¯á¶ááŸá¬ á¡ááá¯áẠarray ááŸá áºáá¯ááŒá áºáááº- metrics.name О metrics.value. á€ááœáẠáááºááẠááá¯áá²á·ááá¯á· ááááºáááŸá¬áž á á±á¬áá·áºááŒáá·áºááŒááºážáá±áá¬ááᯠá¡áááºáá»á¬ážáááºážáá»ááºážááŒá®áž ááŒá áºáááºáá áºáá¯á á®á¡ááœáẠááá¯ááºážáá¬ááŸá¯áááºážáá áºáá¯á¡ááŒá Ạááááºážáááºážááá¯ááºáá«áááºá áá±á¬ááºááẠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºáááºá¡ááœááºá ááá¯áá²á·ááá¯á·áá±á¬ ááœá²á·á ááºážáá¯á¶áá áºáá¯á¡á á¬ážá áááºááẠáá»á¬ážá áœá¬ááŒá¯áá¯ááºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŒá±á¬-value, another - for int- ááá¯á· á¡áááá¹áá«ááºááá«áááºá int ááá¯áááá±á¬ááºá¡á±á¬áẠááááºážáá¬ážáá»ááºáááºá
áá«áá±ááá·áº áá®ááá¯ááœá²á·á ááºážáá¯á¶á ááá¯áááºáááºá áááá¡ááœáŸááºážááŸáá·áº array ááááºááá¯ážáá»á¬ážááá¯ááœá²áá¯ááºááẠá¡áá°ážáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá°ážáááºáá±á¬ááºááŸá¯áá áºáá¯ááᯠáááºá¡áá¯á¶ážááŒá¯ááááºááŒá áºáá«áááºá
SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...
áá«áá±ááá·áº áá«áᬠá¡áá±á¬áºáá±ážááᯠáá»ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºáá±áá²áá«á áááŸááºáá±á¬áá±áá¬ááᯠááááºážáááºážááẠáá±á¬ááºáá áºáááºážááŸá¬ á¡áááºážá¡ááá¯ááºááŒá áºáááºá
áááŸááºáá±á¬á¡áá»ááºá¡áááºá ááŒáá¯ážááœá±á. á€ááá¬ážááá¯ážáá»áááºážáááºážááœáẠarray áá»á¬ážááá«áá²á á¡áááºáá»á¬ážááŸáá·áº áááºááá¯ážáá»á¬ážááᯠáá áºááŒáá¯ááºááẠááááºážáááºážáá¬ážáááºá á¡áááºá ááá¯ááºážáá¬ááŸá¯ 5 ááẠá ááºáá áºáá¯á០áá áºááŒáááºáá»áŸáẠáá±áá¬áá±á·á áºááœáẠá¡áááºáž 000 ááᯠáá¯ááºáá±ážáááº-
CREATE TABLE cpu_rlc (
created_date Date,
created_at DateTime,
time String,
tags_id UInt32,
metric_name LowCardinality(String),
metric_value Float64
) ENGINE = MergeTree(created_date, (metric_name, tags_id, created_at), 8192);
SELECT
maxIf(metric_value, metric_name = 'usage_user'),
...
FROM cpu_r
WHERE metric_name IN ('usage_user', ...)
á¡áááºááá¯ááŸáááºáá« áááºážááá¯ááŒá±ááŸááºážááá¯ááºááẠ- áááºážááœááºá¡áá°ážááá¯ážáá»á²á·ááŸá¯áá»á¬ážááŸááááºá á¡áááºááá¯ááŸáááºáá« SQLá á¥ááá¬á¡á¬ážááŒáá·áº, á¡ááŒáá·áºáá¯á¶áž If â á¡ááŒá±á¡áá±á¡áá»áá¯á·ááŸáá·áº ááŒáá·áºáá®áá±á¬á¡áá« á¡ááŒáá·áºáá¯á¶ážááᯠáááºááá áºááŒáá·áº ááœááºáá»ááºááá·áº á¡áá°ážáá¯ááºáá±á¬ááºáá»ááºá áá±á¬ááºážááá¯áá»ááºáá áºáá¯ááœáẠááá¯ááá¯á·áá±á¬á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážá áœá¬ááᯠáááºáá±ážáá¬ážááá¯ááºááŒá®áž áááºááá áºáá»á¬ážá áœá¬á¡ááœáẠáááºááá¯ážááᯠáá»ááºáá»ááºážááœááºáá»ááºááá¯ááºáááºá
áá»ááºážáááºááŸá¯áá¯á¶ážáá¯ááᯠááŸáá¯ááºážááŸááºááŒáá·áºáá¡á±á¬ááºá
á€ááœáẠáá»áœááºá¯ááºááẠá ááºážáááºááŸá¯áá±áá¬á¡á á¯á¶á¡ááœáẠ"Disk Data Size" ááᯠááá·áºááœááºážáá¬ážáá«áááºá áá±á¬áºáá¶áá»á¬ážááœááºá áá»áœááºá¯ááºááá¯á·ááœáẠá¡áá±ážáááºáá¯á¶ážáá±áá¬á¡ááœááºá¡á á¬áž- á¡áá»á¬ážáá¯á¶ážáá»á¯á¶á·ááŸá¯á á¡áá»á¬ážáá¯á¶ážáá±ážááŒááºážááŸá¯á¡ááŒááºááŸá¯ááºážá ááá¯á·áá±á¬áº á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá áºááŒáá¯ááºáááºááŸááºáááºážáááºááẠááá¯á¡ááºáá«áááºá
array áá»á¬ážááœááºá á¡áá¬á¡á¬ážáá¯á¶ážáááºá¡áááºážáááºááá¯ááá¯ážáááºá áá±áá¬ááᯠáá±á¬ááºážá áœá¬ ááááááºáá¬ážáá²ááŒá áºááŒá®áž áá¯á¶ááŸááºááá¯ááºáá±á¬ áá¯á¶á á¶áá áºáá¯ááᯠááááºážáááºážááá¯ááºáááºá áá«áá±ááá·áº á¡áááºááá¯ááŸáááºáá« - áá±á¬áºáá¶áá¬ážáá±áá¬áá±á·á áºáá áºáá¯á áá»áœááºá¯ááºááá¯á·ááẠáááºážáá»ááºážáá áºáá¯ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠá áááºááááºážáááºážáá±á¬á¡áá«á áááºážááẠá¡áááºážáá áºáá¯á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáᬠáááá±á¬ááºááŸá¯ááŸáá·áºá¡áá° ááá¯ááºáá»á±á¬áá®ááœá±ááŸáááŸá¯á¡ááœáẠáá»áœááºá¯ááºááá¯á· áá±ážáá±á¬ááºáá«áááºá áááºááá·áºáá¯ááºáá±á¬ááºáá»ááºá¡ááœááºáááᯠarray áá áºáá¯áá¯á¶ážááᯠmemory áá²ááá¯á· áááºááááºááŒá áºááŒá®áž áááºážááœáẠááá¯áá»ááºáá±á¬ááŒááºá ááºááᯠááŸá¬áá« - array ááŒá®ážááœá¬ážáá¬áá«á speed áá»áááºážááœá¬ážáááºááŒá áºáááºá
á€áá»ááºážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááá·áº áá¯áá¹ááá®áá
áºáá¯ááœáẠ(á¥ááá¬á
á¡ááá¯ážááŸááºážáá¯á¶ážáááºážáááºážááŸá¬ ááŒáá¯ážáá»á¬ážááŒáá·áºááŒá áºáááºá ááá¯á·áá±á¬áº áá±áá¬áá»á¯á¶á·ááŸá¯ áá¶á·áá»ááºážááŒááºážá ááá¬ážá¡ááœááºá¡á á¬áž ááŒá®ážáá¬ážááŒá®áž áááºááá áºáá»á¬ážá áœá¬ááᯠá¡ááŒá±áá¶ááá·áº á á¯á¶á ááºážáá±ážááŒááºážááŸá¯áá»á¬áž ááŒá¯áá¯ááºááá·áºá¡áá«ááœááºááẠClickHouse ááẠáá±á¬ááºážááœááºá áœá¬ á¡áá¯ááºááá¯ááºáá«á
áá±á«ááºážá ááºá¡á á®á¡á ááº
áá»áœááºá¯ááºááá¯á·ááẠarray circuit áá áºáá¯ááᯠááœá±ážáá»ááºáá²á·áááºáᯠáá°áááŒáá«á áá¯á·á ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·á áááºááŸáºáá¯ááºá¡áá»á¬ážá á¯ááẠá¡áá¯á¶ážááŒá¯áá°ááŸáá·áº á áá áºáááºááá áºáá»á¬ážááá¯áᬠááŒáááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áááá«áá áá»áœááºá¯ááºááá¯á·ááẠá€áááºážááŒáá·áº ááá¬ážá¡ááá·áºááŸá array áá áºáá¯á០áá±á¬áºáá¶áá»á¬ážá¡áá á€áááºááá áºáá»á¬ážááᯠáááºáá¶á áá¯ááºáá¯á¶ážáá±á«áºáá¬ááá¯ááºáááº-
CREATE TABLE cpu_alc (
created_date Date,
created_at DateTime,
time String,
tags_id UInt32,
metrics Nested(
name LowCardinality(String),
value Float64
),
usage_user Float64
MATERIALIZED metrics.value[indexOf(metrics.name,'usage_user')],
usage_system Float64
MATERIALIZED metrics.value[indexOf(metrics.name,'usage_system')]
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);
ááá·áºááœááºážááá·áºá¡áá« á¡áááºááá¯ááŸáááºáá« áááºážááá¯á·ááᯠá¡ááá¯á¡áá»á±á¬áẠáá±ááœááºáááºááŒá áºáááºá á€áááºážááŒáá·áº áááºááẠá á®ážááœá¬ážáá±ážáá¯ááºáááºážááᯠáá»á±á¬áºááœáŸááºá áœá¬ áá±á«ááºážá ááºááá¯ááºáááº- á¡á á®á¡á ááºááẠááá¯ááºáá»á±á¬áá®ááœá±ááŸáááŒá®áž áá±áá°áá»ááŒá áºáá±á¬áºáááºážá á¡áá¯á¶ážá¡áá»á¬ážáá¯á¶áž áá±á¬áºáá¶áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áááºááŸá¬ážáá²á·áááºá ááá·áºááœááºážááŒááºážááŸáá·áº ááŒá±á¬ááºážáá²ááŒááºáž áááá¯á¡ááºááŒá±á¬ááºáž áááááŒá¯áá«á ETLáááºážááẠááá¬ážáá²ááá¯á· array áá»á¬ážááᯠáááºáááºááá·áºááœááºážáá±áá«áááºá áá«ááá¯á·áá²áá¯ááºáá²á·áááºá TABLE ALTERá áá®áá¬á¡áá»áá¯á·ááᯠáá±á«ááºážááá·áºáá²á·ááŒá®áž áááºáá»ááºáá»ááºážá áááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áá±á«ááºážá ááºááŒá®áž ááá¯ááá¯ááŒááºáááºáá±á¬ á¡á á®á¡á ááºáá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á·áááŸááááºá
áá¯ááºáá áºáá»á¬ážááŸáá·áºáá»á¯á¶á·
á¡ááœáẠá¡áá»áááºá á®ážáá®áž á¡áá»ááºá¡áááºááá¬á á¡ááœááºááŒá®ážáá¬ážáá±á¬ááŒá±á¬áá·áº áá±áá¬ááᯠáááºáááºáá»áŸ áá±á¬ááºážááœááºá áœá¬ áá¯ááºááá¯ážááẠá¡áá±ážááŒá®ážáá«áááºá IN á¡áááºááá¯ááŸáááºáá« 1:10á 1:20 ááŸáá·áº ááá«ááá¶ááœáẠááá¯á·áááºááá¯áá±á¬ compression effect ááá¯áááŸáááẠáááááá¬á¡á á¯á¶ááŸááá«áááºá ááá¯ááá¯áááºááŸá¬ áá áºááºáá±á«áºááŸá áá¯ááºááá¯ážáá¬ážáá±á¬ áá±áᬠ1 TB ááẠ50-100 GB á¡áá áá°áááºá á¡ááœááºá¡á á¬ážáá±ážáááºááẠá áá±áá¬ááᯠáááºááŸá¯ááá¯ááºááŒá®áž ááá¯ááá¯ááŒááºáááºá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááºá
ááááááºááŸá¯á¡ááá·áºááŒáá·áºáá¬ážá¡á±á¬ááºááŒááºáááºá á¡áááºááá¯ááŸáááºáá« á¡á±á¬ááºáá«áá¯ááºáá áºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááº-
ááá°áá¬ááá¬áž-
CREATE TABLE benchmark.cpu_codecs_lz4 (
created_date Date DEFAULT today(),
created_at DateTime DEFAULT now() Codec(DoubleDelta, LZ4),
tags_id UInt32,
usage_user Float64 Codec(Gorilla, LZ4),
usage_system Float64 Codec(Gorilla, LZ4),
usage_idle Float64 Codec(Gorilla, LZ4),
usage_nice Float64 Codec(Gorilla, LZ4),
usage_iowait Float64 Codec(Gorilla, LZ4),
usage_irq Float64 Codec(Gorilla, LZ4),
usage_softirq Float64 Codec(Gorilla, LZ4),
usage_steal Float64 Codec(Gorilla, LZ4),
usage_guest Float64 Codec(Gorilla, LZ4),
usage_guest_nice Float64 Codec(Gorilla, LZ4),
additional_tags String DEFAULT ''
)
ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);
á€ááœááºáá»áœááºá¯ááºááá¯á·ááẠcodec ááá¯áááºááŸááºáááºá DoubleDelta ááá á¹á áá áºáá¯ááœááºá áá¯áááááœááºá á¡á¬ááááááá¯ááºáá°áá¶ááŸáá·áºáá»áœááºá¯ááºááá¯á·áá»áááºážáá±ááá¯ááá·áºáá«áááºá LZ4 áá»á¯á¶á·á ááááºá¡áá±ááŒáá·áºá disk áá±á«áºááŸá áá±áá¬á¡ááœááºá¡á á¬ážááᯠá¡ááœááºáá»áŸá±á¬á·áá»ááá¯ááºáááº-
áááºážááẠáá°áá®áá±á¬áá±áá¬ááẠáá±áá¬áááºáá»áŸáá°áááºááᯠááŒááá±á¬áºáááºáž ááá°áá®áá±á¬áá¯ááºáá
áºáá»á¬ážááŸáá·áº áá»á¯á¶á·ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááº-
- áá áºááºáá±á«áºááŸá GZIP ááá¯ááºáá áºáá¯á
- Codecs ááá«áá² ClickHouse ááœáẠZSTD áá»á¯á¶á·ááŒááºážááŒáá·áºá
- Codecs ááŸáá·áº compression LZ4 ááŸáá·áº ZSTD áá«ááŸááá±á¬ ClickHouse ááœááºá
áá¯ááºáá áºáá«áá±á¬ ááá¬ážáá»á¬ážááẠáá±áá¬ááœááºáá»á¬ážá áœá¬áá°áááºááᯠááœá±á·ááá¯ááºáááºá
Size ááá¯ááá á¹á áááºáá»á¬áž
á¡áá±ážáááŒá®ážáá«áá°ážá
á¡áááºáá±á¬áºááŒáá« á¥ááá¬áá»á¬ážá¡á¬ážáá¯á¶ážááœáẠáá»áœááºáá±á¬áºá¡áá¯á¶ážááŒá¯áá²á·áááºá Float áá. á¡á²á·ááá¯ááœá±ážáááºá Float áááá«ááá¯ááẠááá¯áá±á¬ááºážáááá·áºáááºá á¡áááºáá±á¬áºááŒáá« áá±á¬ááºážáá«ážááœáẠPerkona á០á¡áá»áá¯ážáá¬ážáá»á¬ážá áááºážááᯠáá±á¬ááºážááœááºá
áœá¬ ááá¯ááºááŒáá²á·áááºá á¡áá¯ááºá¡ááœáẠá¡ááá·áºáá»á±á¬áºáá¯á¶ážáá±á¬ áá»á
áºáá
áºááááºáááºážáá±á¬ á¡áá»áá¯ážá¡á
á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡áá±ážááŒá®ážáááº- áá
áºááºá¡ááœááºá¡á
á¬ážá¡ááœáẠquery speed áááºááẠáááºážáá«áááºá á¡áááºááá¯ááŸáááºáá« á€á¡ááœáẠá¡ááœááºá¡áá²áááºáááºá
áá¯á¶ážááá¯ááºááẠint32 á¡á á¬áž int64ááá¯á·áá±á¬áẠá áœááºážáá±á¬ááºááẠááŸá áºááá®ážáá«áž ááá¯ážáá¬áááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá áá±áá¬ááẠááŸááºáá¬ááºáááºážáá«ážááŒá®áž "ááááºážáááºá¹áá»á¬" á¡á¬ážáá¯á¶ážááẠááá¯ááá¯ááŒááºáááºá áœá¬ á¡áá¯ááºáá¯ááºáá«áááºá á¡áááºááá¯ááŸáááºáá« á¡ááœááºážááá¯ááºážááœáẠáááºážááẠá¡ááœááºáááºážáá»ááºá áœá¬ ááá¯ááºááŸáááºáá¬ážáá±á¬ á áá áºáá áºáá¯ááŒá áºááŒá®áž áááºážááẠáá±ááºáá®á áá áºáá»á¬áž áá±ážá áœááºážááá¯ááºááá·áº ááŒá áºááá¯ááºááŒá±á¡á¬ážáá¯á¶ážááᯠá¡áá»á¬ážáá¯á¶áž á¡áá¯á¶ážááŒá¯á á±áááºá
á á¯á ááºážááŸá¯ááŸáá·áº áá¯ááºááŒááºáá¶ááŒá¬áž
á á¯á ááºážááŸá¯ááŸáá·áº áá¯ááºáá¯á¶ážáá±á«áºáá¬áá±á¬ á¡ááŒááºáá»á¬ážááẠááá°áá®áá±á¬ á¡áá»áááºá¡áá«áá»á¬ážá¡ááœáẠá á¯á ááºážááŸá¯áá»á¬ážááᯠáááºáá®ážááá¯ááºá á±áááº-
á¥ááá¬á¡á¬ážááŒáá·áºá ááá·áºááœáẠá
á¯á
ááºážááá¯ááºáá±á¬ áááºážááŒá
áºáá±áá¬áá»á¬áž ááŸáááá¯ááºááŒá®ážá á¡áá°ážá¡ááºáá»ááºááŒáá·áº á¡ááá¯á¡áá»á±á¬áẠá
á¯á
ááºážááŸá¯ááŒáá·áº áááºážááá¯á·áᶠá¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¯ááºáá¯á¶ážáá±á«áºáá¬áá±á¬ á¡ááŒááºáá»á¬ážááᯠáááºážááá¯á·áᶠáá°ážááœá²áá±ážááá¯á·ááá¯ááºáá«áááºá SummingMergeTree (SMT). Smt á
á¯á
ááºážááŸá¯áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºááœááºáá»ááºáá±ážááá·áº á¡áá°ážá
á¯á
ááºážáá±áá¬ááœá²á·á
ááºážáá¯á¶ááŒá
áºáááºá áá±áá¬á¡ááŒááºážááᯠáá±áá¬áá±á·á
áºáá²ááá¯á· ááá·áºááœááºážáááºá áááºážááᯠá¡ááá¯á¡áá»á±á¬áẠá
á¯á
ááºážááŒá®áž áááºááŸáºáá¯ááºáá»á¬ážááᯠáááºážááœáẠáá»ááºáá»ááºážá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
TTL - áá±áá¬áá±á¬ááºážááᯠ"áá±á·"
áááá¯á¡ááºáá±á¬á·áá²á· data ááœá±ááᯠáááºááᯠ"áá±á·" ááá²á á¡áááºááá¯ááŸáááºáá« áá«ááᯠáááºááá¯áá¯ááºáááá² áááááºá ááá¬ážáá»á¬ážááá¯áááºáá®ážáá±á¬á¡áá«á áááºáááºááŸááºááá¯ááºáááºá TTL á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬áž- á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá áºáááºá¡ááœáẠáááá áºáá±áá¬ááᯠááááºážáááºážáá¬ážááŒááºážá áá±á·á ááºáá±áá¬ááᯠáááºáá±á«ááºáž 30 ááŒá¬á¡á±á¬ááºá á¡áááºá áẠááá¯á·ááá¯áẠáá ááºáá±áá¬ááᯠáááºáá±á¬á·á០ááááá«ááŸáá·áºá
CREATE TABLE aggr_by_minute
âŠ
TTL time + interval 1 day
CREATE TABLE aggr_by_day
âŠ
TTL time + interval 30 day
CREATE TABLE aggr_by_week
âŠ
/* no TTL */
á¡ááœáŸá¬áá±á«ááºážá á¯á¶ - disks áá»á¬ážáá áºáá»áŸá±á¬ááºáá±áá¬ááá¯ááœá²áá«á
á€á¡ááŒá¶á¥á¬ááºááᯠáááºáá¶ááá°ááŒááºážááŒáá·áº áá±áá¬áá»á¬ážááᯠááááºážáááºážááá¯ááºáá«áááºá á¡áááºááá¯ááŸáááºáá« ááá°áá®áá±á¬áá±áá¬áá»á¬ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºáá»ááºááŒááºáá±á¬ áá±ááá áºáá¯ááœáẠááŒá®ážáá²á·ááá·áºá¡áááºá¡ááœáẠáá°ááŒááºážáá±á¬áá±áá¬ááᯠááááºážáááºážááá¯áááºááá¯áá«á áá¯á· SSD ááá¯ááŒá®ážáá±á¬á· áá±á¬ááºááẠáááá¯ááºážá¡áá»ááºá¡áááºááœá±ááᯠáááŒá¬ážáá±áá¬ááŸá¬ áá¬ážáááºá IN á¡áááºááá¯ááŸáááºáá« ááá¯ááŒá áºááá¯ááºáááº-
ááá¯ááŸá±á¬ááºááŸá¯áá°áá«áááᯠáááºááŒááºáááºáááºááŸááºááá¯ááºááẠ(ááá¯ááŸá±á¬ááºááŸá¯áá°áá«á) áá«ááᯠá¡áááºááá¯ááŸáááºáá« á¡áá»áá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážáá±á¬ááºááŸááááºááŸáá·áºá¡ááŒá¬ážááá¯ááŸá±á¬ááºááŸá¯ááá¯á·áá±áá¬ááá¯á¡ááá¯á¡áá»á±á¬ááºááœáŸá²ááŒá±á¬ááºážáá±ážáááá·áºáááºá
áá«áá±ááá·áº áá«á¡áá¯ááºáá±á¬á· ááá¯ááºáá«áá°ážá ááá¬ážáá áºáá¯áá¡ááá·áºááœááºá áá±áá¬ááẠá¡á¡á±ážáááºážáá²ááá¯á· áá±á¬ááºááœá¬ážááá·áºá¡áá»áááºá¡ááœáẠá ááºážáá»ááºážáá»á¬ážááᯠáááºááŸááºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá±áá¬ááᯠá¡ááœááºááŒááºáááºáá±á¬ áá áºááºáá±á«áºááœáẠ7 áááºááŒá¬ ááááºážáááºážáá¬ážááŒá®áž á¡áá±á¬ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŸá±ážááœá±ážáá±á¬á áá áºááá¯á· ááœáŸá²ááŒá±á¬ááºážáá¬ážáááºá áá¯ááºáá»á ááááºáá»á¬ážááᯠááááºážáá»á¯ááºáᬠá¡á±ážáá±á¬áá±áá¬á¡ááœáẠááá¯ááºáá¶áááŒá¯ááºážáá®ážáá² á áá áºáá¡ááŒáá·áºáá¯á¶ážá áœááºážáá±á¬ááºáááºááᯠááááºážáá¬ážááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááẠáá±á¬ááºážááœááºáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
CREATE TABLE
...
TTL date + INTERVAL 7 DAY TO VOLUME 'cold_volume',
date + INTERVAL 180 DAY DELETE
áá°ážááŒá¬ážáá±á¬á¡ááºá¹áá«áááºáá»á¬áž á¡áááºááá¯ááŸáááºáá«
á¡á¬ážáá¯á¶ážáá®ážáá«ážááœáẠá¡áááºááá¯ááŸáááºáá« ááá¯áá²á·ááá¯á·áá±á¬ "áá±á«áºááœááºáá»ááºáá»á¬áž" ááŸááááºá ááá¯á·áá±á¬áº áááºážááá¯á·ááẠá¡ááŒá¬ážáá±áá¬áá±á·á áºáá»á¬ážááœááºááá¯ááºáá±á¬ áá®ážááá·áºáá«áááºááŸá¯ááŒáá·áº ááŸáááºáá¶ááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á€áááºááŸá¬ áá°ážááŒá¬ážáá±á¬á¡ááºá¹áá«áááºá¡áá»áá¯á·ááŒá áºáááºá á¡áááºááá¯ááŸáááºáá«:
- Array áá»á¬ážá á¡ááá¯áá« á¡áááºááá¯ááŸáááºáá« arrays áá»á¬ážá¡ááœáẠá¡ááœááºáá±á¬ááºážááœááºáá±á¬ áá¶á·ááá¯ážááŸá¯á ááŸáá·áº áááºážááá¯á·á¡áá±á«áº ááŸá¯ááºááœá±ážáá±á¬ ááœááºáá»ááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸááááºá
- áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬áž áá±á«ááºážá ááºážááŒááºážá. á€áááºááŸá¬ "áá°áááºááá¬ážáá¡ááºá¹áá«áááºáá»á¬áž" ááŸáá áºáá¯ááŒá áºáááºá á¡áááºááá¯ááŸáááºáá«. Yandex ááŸá¡áá»áá¯ážáá¬ážáá»á¬ážáááºáá»áœááºá¯ááºááá¯á·áá±áá¬ááá¯ááá±á«ááºážááá¯áá«áá¯ááŒá±á¬áá±á¬áºáááºážá á¡áá¬á¡á¬ážáá¯á¶ážááá¯á á¯á ááºážáá¬ážáááºá á¡áááºááá¯ááŸáááºáá«ááŒááºáááºá¡áááºááŒá±áá²á·á¡ááœááºááŒá±á¬áá·áºáá«á
- áá¯ááºáá¯á¶ážáá±á«áºáá¬áá±á¬ á¡ááŒááºáá»á¬áž. áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááᯠáá±á«ááºážá ááºážááŒááºážááŒáá·áº áá¯ááºáá¯á¶ážáá±á«áºáá¬áá±á¬ á¡ááŒááºáá»á¬ážááẠááá·áºá¡á¬áž á¡áááºááŒá±á á±áá«áááºá á¡áá»áááºááŸáẠá á¯á ááºážááŸá¯á
- ClickHouse SQL. áááºážááẠáá¬áá¬á áá¬ážááá¯ážáá»á²á·ááŸá¯áá áºáá¯ááŒá áºáááºá SQL á¡áá»áá¯á·áá±á¬ á¡ááá¯áá±á¬ááºážááŸáá·áº áá®ážááá·áºá¡ááºá¹áá«áááºáá»á¬ážááŒáá·áºáᬠáááŸáááá¯ááºáá«áááºá á¡áááºááá¯ááŸáááºáá«. ááááºá áá áºáááºááœáẠáá»á²á·ááœááºááŸá¯áá áºáá¯ááŸáá·áº áá áºáááºááœáẠá¡á¬ážáááºážáá»ááºáá áºáá¯áá²á·ááá¯á· ááŒá áºáá²á·áááºá á¡áᯠááŸááºááẠá¡á¬ážáá¯á¶ážáá®ážáá«áž á¡á¬ážáááºážáá»ááºááœá±ááŸááááºá SQL á áááºážááᯠáá»áœááºá¯ááºááá¯á·áááºááŸá¬ážááá¯ááºáááºá ááá¯á¡áá« áááºážááẠááá¯ážáá»á²á·ááŸá¯áá áºáá¯áá¬ááŒá áºáááºá
- Lambda- á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬áž. áááºážááá¯á·ááẠáááºááá·áºáá±áá¬áá±á·á áºááœáẠááŸááá«áá±ážááááºážá
- ML- áá¶á·ááá¯ážááŸá¯. áááºážááᯠááá°áá®áá±á¬áá±áá¬áá±á·á áºáá»á¬ážááœáẠáááá¯ááºáááºá á¡áá»áá¯á·ááẠááá¯áá±á¬ááºážáááºá á¡áá»áá¯á·ááŸá¬ ááá¯ááá¯ážáááºá
- ááœááºá·áááºážá¡áááºážá¡ááŒá áº. áá»á²á·ááá¯á·ááááºá á¡áááºááá¯ááŸáááºáá« á¡áá°á ááᯠááœáẠá¡áááºááá¯ááŸáááºáá« áá¶á·ááá¯ážáá°áá®áá° 500 ááá·áºááŸáááŒá®áž á€á¡áá±á¡ááœááºááẠá¡áááºáááŒááºááá¯ážááœá¬ážáá»ááºááŸááááºá
áááºážáá»ááºáá±á¬áá±ážááœááºážáá»á¬áž
Ð á¡áááºááá¯ááŸáááºáá« áá°áá®áá±á¬á¡áá¬ááá¯ááŒá¯áá¯ááºááẠááá°áá®áá±á¬áááºážáááºážáá»á¬ážá áœá¬ááŸááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠáááºážáááºážáá¯á¶ážáá»áá¯ážááŒáá·áº ááá¬ážáá áºáá¯á០áá±á¬ááºáá¯á¶ážáááºááá¯ážááᯠááŒááºáá±ážááá¯ááºáááºá á á®áá®áá° (á áá¯áá¹ááá áºáá¯áááºáž ááŸááá«áááºá áá«áá±ááá·áº ááá¯ááá¯á·áá±á¬áẠáá°ážááŒá¬ážáá«áááº)á
ááááá áºáá¯á áá¯ááºááᬠáááºáá±á¬ááºá¡áááºááŒá±áááºááá¯áᬠááŒáááºá á¡áááºááá¯ááŸáááºáá« á¡á²áá«ááᯠá á áºáá±ážáá»ááºáá²á·á¡áá« á á¯á¶á ááºážáá±ážááŒááºážáá«á ááŸá¯áẠsubquery ááœááºáá«ááŸááááºá á€á¡áá¬ááẠá¡ááŒá¬ážáá±áá¬áá±á·á áºáá»á¬ážááœáẠáá»áœááºá¯ááºááá¯ááºááá¯áẠá¡ááŸááºáááẠááœá²áá»á±á¬áºáá²á·áá±á¬ á¡áá¬ááŒá áºáááºá áá áºáá¯áá¯ááᯠsubquery áá áºáá¯ááŸáá·áº ááŸáá¯ááºážááŸááºááá¯áá«áá á¡ááŒá¬ážáá±á¬ databases áá»á¬ážááœáẠáááºážááŸáá·áº scalar áá áºáá¯áᬠááŸáá¯ááºážááŸááºááá¯ááºáá±á¬áºáááºáž áá±á¬áºáá¶áá»á¬ážá áœá¬á¡ááœáẠáá»áœááºáá±á¬áºáá±ážááẠááá¯á¡ááºáá«áááºá JOINá á¡ááá¯áá« á¡áááºááá¯ááŸáááºáá« tuple ááá¯áááºáá¯á¶ážááá¯ááºáááºá
SELECT *
FROM cpu
WHERE (tags_id, created_at) IN
(SELECT tags_id, max(created_at)
FROM cpu
GROUP BY tags_id)
áá¯ááááááºážáááºážááẠáá°áá®áá±á¬á¡áá»ááºááᯠáá¯ááºáá±á¬ááºáá±á¬áºáááºáž á á¯á á¯áá±á«ááºážáá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯áááºá argMax:
SELECT
argMax(usage_user), created_at),
argMax(usage_system), created_at),
...
FROM cpu
Ð á¡áááºááá¯ááŸáááºáá« áá±á«ááºážá ááºážáá¯ááºáá±á¬ááºáá»áẠáá«áááºáá»á¬ážá áœá¬ááŸáááŒá®áž á¡áááºá áááºááẠáá±á«ááºážá ááºáááááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á áá±á«ááºážá ááºááœá²á·á ááºážááŸá¯ááá¯ááºáᬠá¥ááá±áá»á¬ážááŸáá·áºá¡áá® áááºážááá¯á·áá²á០áá áºáá±á¬ááºááá·áºááᯠáááŸááááºááŒá áºáááºá ArgMax - á¡áá»á¬ážáá¯á¶ážáááºááá¯ážááᯠááœááºáá»ááºááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážáá²á០áá áºáá¯- áá±á¬ááºážááá¯áá»ááºááẠáááºááá¯ážááᯠááŒááºáá±ážáááºá use_á¡áá¯á¶ážááŒá¯áá°á¡ááŒáá·áºáá¯á¶ážáááºááá¯ážááá¯á· áá±á¬ááºááŸááááºá created_at:
SELECT now() as created_at,
cpu.*
FROM (SELECT DISTINCT tags_id from cpu) base
ASOF LEFT JOIN cpu USING (tags_id, created_at)
ASOF Join áá«á - ááá°áá®áá±á¬á¡áá»áááºáá»á¬ážááŒáá·áº á¡áááºážáá»á¬ážááᯠ"áá»áááºááœá²ááŒááºáž" áááºážááẠáá±áá¬áá±á·á áºáá»á¬ážááœááºáᬠáááŸáááá¯ááºáá±á¬ áá°ážááŒá¬ážáá±á¬á¡ááºá¹áá«áááºáá áºáá¯ááŒá áºáááºá kdb+. ááá°áá²á· á¡áá»áááºáá²á· ááœá²ááŸá áºáá¯ááŸááááºá ASOF Join áá«á áá±á¬ááºážááá¯áá»ááºáá áºáá¯áááºážááœáẠáááºážááá¯á·ááᯠááœáŸá±á·ááŒá®áž áá±á«ááºážá ááºážááá¯ááºá á±áá«áááºá áá áºááŒáááºá á®ážáá®ážááŸá áááºááá¯ážáá áºáá¯á á®á¡ááœááºá á¡ááŒá¬ážáá áºáá¯ááŸá á¡áá®ážá ááºáá¯á¶ážáááºááá¯ážááᯠááœá±á·ááŸáááŒá®áž áááºážááá¯á·ááᯠáá°áá®áá±á¬áá»ááºážáá±á«áºááœáẠááŒááºááá¯á·áá±ážáááº-
ááá¯ááºááœá²áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž
á ᶠSQL-2003 áááºá€áá²á·ááá¯á·áá±ážááá¯ááºáááº-
SELECT origin,
timestamp,
timestamp -LAG(timestamp, 1) OVER (PARTITION BY origin ORDER BY timestamp) AS duration,
timestamp -MIN(timestamp) OVER (PARTITION BY origin ORDER BY timestamp) AS startseq_duration,
ROW_NUMBER() OVER (PARTITION BY origin ORDER BY timestamp) AS sequence,
COUNT() OVER (PARTITION BY origin ORDER BY timestamp) AS nb
FROM mytable
ORDER BY origin, timestamp;
Ð á¡áááºááá¯ááŸáááºáá« áááºá¡á²áá«ááá¯ááá¯ááºááá¯ááºáá°áž - á á¶ááŸá¯ááºážááá¯ááá±á¬ááºáá¶áá«á SQL-2003 áááºáá±á¬á·á០ááá¯ááºááŒá áºáá°ážá á¡á á¬ážá á¡áááºááá¯ááŸáááºáá« áá®ááá¯áá±ážááᬠáá¯á¶ážá á¶á¡ááá¯ááºáž
áá« lambdas ááœá±ááᯠááááá±ážáá²á·ááẠ- áá°ááá¯á·á áá®ááŸá¬!
áááºážááẠá á¶ááŸá¯ááºážááŸá ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááá¯ááºáᬠáá±ážááŒááºážááŸá¯á analogue áá áºáá¯ááŒá áºáááºá SQL-2003: ááŸá áºáá¯ááŒá¬ážá ááŒá¬ážáá¬ážáá»ááºááᯠáá±ááœááºáááºá á¡áá»áááºáá¶ááááºá ááŒá¬áá»áááº, ordinal number - áá»áœááºá¯ááºááá¯á· á¡áá»á¬ážá¡á¬ážááŒáá·áº ááœá²ááŒááºážá áááºááŒá¬ááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážááá·áº á¡áá¬á¡á¬ážáá¯á¶ážá IN á¡áááºááá¯ááŸáááºáá« áááºážááá¯á·ááᯠarray áá»á¬ážááŸáááá·áº áá±ááœááºáááº- ááááŠážá áœá¬ áá»áœááºá¯ááºááá¯á·ááẠdata ááᯠarray áá áºáá¯á¡ááŒá áºááá¯á· ááŒáá¯áá»ááŒá®ážá ááá¯á·áá±á¬áẠarray ááœáẠáá»áœááºá¯ááºááá¯á· á¡ááá¯ááŸáááá»áŸááᯠááŒá¯áá¯ááºááŒá®ážáá±á¬áẠáááºážááᯠááŒááºáá»á²á·áá«áááºá áááºážááẠá¡ááœááºá¡áááºááŒá±áááºááá¯ááºáá«á áááºážááẠá¡áááºážáá¯á¶áž áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áááá¯ááááºáá±ážáá¬ážááŒááºážááᯠááŸá áºáááºáá±á¬áºáááºáž áááºážááẠá¡ááœááºááŒá±á¬ááºážááœááºááŒááºááœááºááŒá áºáááºá
á¡áá°ážá¡ááºá¹áá«áááºáá»á¬áž
ááá¯á·á¡ááŒááºá á¡áááºááá¯ááŸáááºáá« á¡áá°ážááŒá¯áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá áœá¬á á¥ááá¬á¡á¬ážááŒáá·áºá áá áºáá»áááºáááºážááœáẠsessions áááºáá»áŸááŸááááºááá¯áá¯á¶ážááŒááºáááºáááºááá¯á·áá¯á¶ážááŒááºáááºáááºážá áá¯á¶ááŸááºá á±á¬áá·áºááŒáá·áºááŒááºážáá¯ááºáááºážááŸá¬ áá±á¬ááºážááá¯áá»ááºáá áºáá¯ááŒáá·áº á¡áá»á¬ážáá¯á¶ážáááºááᯠáá¯á¶ážááŒááºáááºááŒá áºáááºá IN á¡áááºááá¯ááŸáááºáá« á€áááºááœááºáá»ááºá¡ááœáẠá¡áá°ážáá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááŸááá«áááºá
áá±áá¯áá»á¡á¬ážááŒáá·áºá ClickHouse ááœáẠáááºááœááºáá»ááºáá»á¬ážá
áœá¬á¡ááœáẠá¡áá°ážáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸááááºá
- á¡ááŒá±ážááœá¬ááŒá¬ážááŸá¯á
- sumMap(áá±á¬á·á áááºááá¯áž);
- timeSeriesGroupSum(uidá á¡áá»áááºáá¶ááááºá áááºááá¯áž);
- timeSeriesGroupRateSum(uidá á¡áá»áááºáá¶ááááºá áááºááá¯áž);
- skewPopá skewSampá kurtPopá kurtSamp;
- ááŒáá·áº/ááŒáá¯ážáá»á¬ážááŒáá·áº á
- ááá¯ážááŸááºážáá±á¬LinearRegressioná stochasticLinearRegressioná
á€áááºááŸá¬ ááŒá®ážááŒáá·áºá á¯á¶áá±á¬ áá¯ááºáá±á¬ááºáá»ááºá á¬áááºážááá¯ááºáá«á á á¯á á¯áá±á«ááºáž 500-600 ááŸááá«áááºá á¡ááááºá¡ááŒáœááº- áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶áž á¡áááºááá¯ááŸáááºáá« á áá áºááá¬ážááœáẠááŸáááẠ(á¡á¬ážáá¯á¶ážááᯠááŸááºáááºážáááºáá¬ážááŒááºážáááŸááá±á¬áºáááºáž á¡á¬ážáá¯á¶ážá áááºáááºá á¬ážááœááºááŒá áºáááº)á
select * from system.functions order by name
á¡áááºááá¯ááŸáááºáá« áááºáž á¡áá«á¡ááẠáá°á·á¡ááŒá±á¬ááºáž á¡áá»ááºá¡ááẠá¡áá»á¬ážá¡ááŒá¬áž ááááºážáááºážáá¬ážáááºá ááŸááºáááºážááá¬ážáá»á¬áž, query_logá ááŒá±áá¬áá¶ááŸááºáááºáž á áá±áá¬ááááºááá¯á·áá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºááŸááºáááºáž (part_log) áááºááá áºááŸááºáááºáž ááŸáá·áº á áá áºááŸááºáááºážá áááºážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº disk ááá¯á·áá±ážáááºá ááŸááºáááºáž ááá¯ááºážááœá¬ááŸá¯áá»á¬áž ááŒá¯áá¯ááºáááºá á¡áá»áááºá á®ážáá®áž в á¡áááºááá¯ááŸáááºáá« ááááºáá±á¬á· á¡áááºááá¯ááŸáááºáá«: áá±áá¬áá±á·á áºááá¯ááºááá¯ááºá á¡áááºážááá¹ááá áºáá¯á០áá«áááºááá¯ááºáááºá á¡áá»áááºá á®ážáá®áž áá±áá¬áá±á·á áºáá»á¬ážá ááá¯á·ááŒá±á¬áá·áº áá°á·áá¬áá¬áá° âáá«ážáá»áá¯â áááºá
áá«ááááºáž áá°ážááŒá¬ážáá²á·á¡áá¬áá
áºáá¯áá« - áá«ááá¯á·á á¡áá¯ááºáá±á¬ááºážáá±á¬ááºážáá¯ááºáá²á·á¡ááœáẠá¡áá»áááºá
á®ážáá®ážá¡ááá·áºááŒá±á¬áá·áºááá¯áá±á¬áº áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá¯ááºááœááºážá ááá¯á¡ááºááá»áŸááᯠáááááºážáááºážááá¯ááºáááááºážá áááá¯áá«áá°ážá Prometheusáá»áœááºá¯ááºááá¯á·ááẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠááááááá¯ááºááᯠá
á±á¬áá·áºááŸá±á¬ááºáááºá áá»áááºáááºáá¬ážáááºá Grafana áá«ááá¯á·áááºááá¯ááºááá¯ááá¯ááºá
á±á¬áá·áºááŒáá·áºá ááá¯á·áá±á¬áº á¡áááºá á¡áááºááá¯ááŸáááºáá« ááŒá¯ááºáá»áá¬á áá¬ááŒá±á¬áá·áºáá²ááá¯áᬠáááŒááºááá°ážá áá«ááŒá±á¬áá·áº áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡á²áá«ááᯠááá¯ááºáááºáá°ážá
á¡á á¯á¡áá±ážááŒá®áž ááá¯á·ááá¯áẠá¡áá±ážáá»á¬ážá áœá¬ á¡áááºááá¯ááŸáááºáá«
áááºá¡áá¬á ááá¯áá±á¬ááºážáá² - á¡á á¯á¡áá±ážááŒá®ážáá áºáᯠááá¯á·ááá¯áẠáá±ážáááºáá±á¬ ClickHouse á¡áá»á¬ážá¡ááŒá¬ážá ááááá¯ážááá¬áá»ááºážáááºááá¯á· DWH á¡ááá®áá±ážááŸááºážáá áºáá¯á á®á¡ááœáẠáá¬ážáá áºáá»á¬ážááᯠááœá²áá±áá»áá¬ážáá±ážááá·áº ááŒá®ážáá¬ážáá±á¬á¡á á¯á¡áá±ážáá áºáá¯ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá±áá¬áá±á·á áºá á®áá¶ááá·áºááœá²áá°áá¶ááá¯á· áá±á¬ááºáá¬ááẠ- áá»áœááºá¯ááºááá¯á·á¡á¬áž áá¯á¶áá áºáá¯á¶áá±ážá áááºážááá¯á·á áá»áœááºá¯ááºááá¯á·á¡á¬áž áá áºáá¯áá±ážáááº-
Ð á¡áááºááá¯ááŸáááºáá« ááœá²ááŒá¬ážá
áœá¬ áááºááŒá¯áá¯ááºááá¯ááºáá«áááºá á¡ááá®áá±ážááŸááºážáá
áºáá¯á
á®ááᯠáááºááá¯ááºááá¯ááºááŒá¯áá¯ááºááá¯ááºáá«áááºá á¡áááºááá¯ááŸáááºáá«:
ááŒá®ážáá»ááºáááºážáá¬ážáá²á· á¡áá±á¬ááºááŒá®ážááᯠáááá¯á¡ááºáá±á¬á·áá°ážá DWH ááŸáá·áº ááœá²áá±á¬ááºááá¯ááºáá±á¬ á
á®áá¶ááá·áºááœá²áá°áá»á¬ážá áá»áŸá±á¬ááºááœáŸá¬áá
áºáá¯á
á®ááᯠáá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯áẠáá±ážááá¯ááºáá«áááºá á¡áááºááá¯ááŸáááºáá«ááŸáá·áº developer ááẠáááºážááᯠááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááá¯ááºááẠá¡áááºááá¯ááŸáááºáá« áááºáááºááẠá¡ááœááºááœááºáá°ááŒá®áž ááŸá¯ááºááœá±ážáá±á¬ á
á®áá¶ááá·áºááœá²ááŸá¯ áááá¯á¡ááºáá«á
á¡á²á·ááá¯ááœá± á¡áá»á¬ážááŒá®ážááŸááááºá á¡áááºááá¯ááŸáááºáá«áááºážááᯠáááŒá¬áá ááá·áºááœááºážááẠááá¯á¡ááºááŒá®áž áááºááẠá€áá¯ááºáááºážá
ááºááᯠá¡ááá¯á¡áá»á±á¬áẠáá¯ááºáá±á¬ááºááá¯áá«áááºá á¡á²áá«á¡ááœááºá á¥ááá¬á áá¯á¶ážááá¯á·ááááºá Kubernetes О clickhouse-á¡á±á¬áºááá±áá¬á IN Kubernetes ClickHouse "on-click" ááá¯áááºáá¬ážááá¯ááºáááº- ááá¯ááºáá
áºáá¯ááá¯ááŸáááºááá¯ááºáááºá áááºáá®ážáááºá
áºááá¯ááœáá·áºááá¯ááºááŒá®ážáá±áá¬áá±á·á
áºá¡áááºááá·áºááŒá
áºáá«ááŒá®á áá»áœááºá¯ááºááẠáá¯á¶ááŒááºážáá
áºáá¯ááᯠáá»ááºáá»ááºážáááºáá®ážááá¯ááºáááºá ááá¯áá±áá¬ááœáẠáááºááá
áºáá»á¬ážááᯠá¡ááºáá¯ááºáá¯ááºááá¯ááºááŒá®áž 5 áááá
áºá¡ááœááºáž áá»áœááºá¯ááºááœáẠáááºááŸáºáá¯ááºáá
áºáᯠá¡ááá·áºááŸááá«ááẠGrafana. á¡áááºážááá¯ážááŸááºážáá«áááºá
ááááºááá¬áá²?
ááá¯á·ááŒá±á¬áá·áº á¡áááºááá¯ááŸáááºáá« - á€-
- áá»ááºááŒááºá áœá¬. áá«ááᯠáá°ááá¯ááºážáááá«áááºá
- áá¯á¶. á¡áááºážááẠá¡ááŒááºážááœá¬ážááœááºááŸááá±á¬áºáááºáž áá±á·áá»áá·áºáá±ážááœáẠáááºáá²áááºá ááá¯ááºááœá²ááœáẠááœááºáá°áááºáᯠáá»áœááºáá±á¬áºáá¯á¶ááŒááºáá«áááºá áá¬ážáááºááẠáááºááá¯áá¯ááºááá²á á¡áááºááá¯ááŸáááºáá« áááºážáááºá¡áá¯ááºáá¯ááºáááºá ááá¯á·áá±á¬ááºá¡áá¬á¡á¬ážáá¯á¶ážáááºá¡ááœááºááá¯ážááŸááºážáááºá
- áá áºááá¹áá¬áá¯á¶ážá¡ááá¯ááºážá¡áá¬áá²á·. ááá°áá®áá±á¬ á¡ááŒá±á¡áá±áá»á¬ážá¡ááœáẠááá·áºáá»á±á¬áºáááº- DWHá á¡áá»áááºá á®ážáá®ážá ááŸááºáááºážááá¯ááŸá±á¬ááºááŸá¯. áá«áá±ááá·áº ááá¯ááºáá«áá°ážá OLTP áá±áá¬áá±á·á áºá ááá¯á·ááŒá±á¬áá·áº ááá¯ááá¯ááá·áºááœááºážááŸá¯áá»á¬áž ááŒá¯áá¯ááºáááºááŸáá·áº ááá¯áá±áá¬ááœáẠáááºááẠáááŒáá¯ážá á¬ážáá«ááŸáá·áºá
- á áááºáááºá á¬ážá áá¬. áá°áá²á· á¡áá¯ááºááœá²áá¯ááºáá°ááŒá áºááá¯ááºáá«áááºá á¡áááºááá¯ááŸáááºáá«á áááºáááºá á¬ážá áᬠá¡ááá¯ááºá¡ááá·áºáá»á¬ážá áœá¬ááᯠá¡áá±á¬ááºážááŸáá·áº á¡ááá¯ážááá±á¬ááŒáá·áº ááœá±á·ááŒá¯á¶áá²á·ááááºá á¥ááá¬á áá¯ááºáá±ááŸá¯á¡áá áºáá áºáá¯ááœááºáá¬áá±á¬á· á¡áá¬á¡á¬ážáá¯á¶áž á¡áá¯ááºááá¯ááºáá±á¬á·áá°ážá áá«ááŸááá¯áẠá¡áá¯ááºáá áºáá¯ááᯠááŸá áºáááºááŒá¬á¡á±á¬áẠáá¯ááºážáááºáá²á·ááá±ááá·áº Telegram chat ááŸá¬ áá±ážááœááºážáá áºáá¯áá±ážááŒá®ážáá±á¬ááºá á¡áá¯ááºáá áºáá¯ááᯠááŸá áºáááá áºá¡ááœááºáž ááŒá±ááŸááºážááá¯ááºáá²á·áá«áááºá áá«ááŸááá¯áẠLesha Milovidov áá²á· á¡á á®áááºáá¶á á¬ááŸá¬áá«áá²á· ááœááºáááá·áºááŸá¬ááá¯áá²á á¡áááºááá¯ááŸáááºáá« áá¯ááºááœáŸáá·áºááŸá¯ááᯠáá»áá¯ážáá»ááºáá²á·áááºá HighLoad++. áá®ááá¯áá»áá¯ážááœá± áá áºáá»áááºáá¯á¶áž ááŒá áºáá»ááºáá±ááŒá®áž áá»áœááºáá±á¬áºááá¯á·áá²á· ááááœá±ááᯠáááºáá²á á±áááºá á¡áááºááá¯ááŸáááºáá« áá±á¬ááºáááŒá®áž á áááºáááºá á¬ážá áá¬á
áááºáááºááŸá¯ááᯠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
ááŒá¬ááŒáá·áºá áœá¬á á±á¬áá·áºááá¯ááºážáá²á·ááá±á¬ high-load á áá áºáá»á¬ážá developer áá»á¬ážá¡á ááºážá¡áá±áž
HighLoad++ Skolkovo ááœáẠááá¯áááºáᬠá áááºááŸáá·áº áá áááºááá¯á·ááœáẠáá»ááºážááááºááŒá áºáááºá áá±á¬ááºáá¯á¶ážááœááºá áááºážááẠHighLoad++ áá áœááºážá¡ááºááá¯á¡áœááºááá¯ááºážááœááºáá¯ááºááá¯ážááááá±á¬ááŒá±á¬áá·áºáááºážáááºá¡á±á¬á·ááºááá¯ááºážááœááºáááá·áºáá áºáᯠ(áá±áá¬áááááá¬ážááŸá¯áá»á¬ážááŸááá±á¬áºáááºáž)áááœááºáááá·áºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¬á á¡ááŒáá·áºáá¯á¶ážá áœááºážáá±á¬ááºááá¯ááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºážááᯠááá·áºá¡á¬áž ááŸá¬ááœá±ááŒáááá¯ááºáááº- HighLoad++ ááẠFacebooká Yandexá VKontakteá Google ááŸáá·áº Amazon ááá¯á·á á¡áá¯ááºáá¯ááºáá¯á¶ááᯠááŸá áºáááºá¡ááœááºáž áááºáá±á·áá¬ááá¯ááºááá·áº áá áºáá¯áááºážáá±á¬áá±áá¬ááŒá áºáááá·áºáááºá
2007 áá¯ááŸá áºááááºážá ááŒááºáá±á¬ááºááŸá¯áááŸááá²á· á¡á ááºážá¡áá±ážááœá±ááᯠáá»ááºážááá²á·ááŒá®áž áá®ááŸá áºááŸá¬áá±á¬á· (áá) ááŒáááºááŒá±á¬áẠááœá±á·áá¯á¶ááŸá¬ááŒá áºáá«áááºá á€á¡áá»áááºá¡áá±á¬á¡ááœááºáž áá®áá¬áá¶ááẠáá ááŒááẠááá¯ážáá¬áá²á·ááŒá®áž ááááºááŸá áºááœáẠá¡áááá ááºááŸá¯áá¯ááºáááºáž á¡áááºážá¡áá¬ážááœáẠáá«áááºáá° áááá áŠážá á áá®áᬠááá áŠážá á¡á á®áááºáá¶áá»ááºáá»á¬ážááŸáá·áº ááœá±á·áá¯á¶ááœá²áá»á¬áž áá«áááºáá²á·ááŒá®áž áá áá¯áẠáááŒáá¯ááºááẠáá¯ááºáá±á¬ááºáá²á·áááºá
ááááºááŸá áºá áááºá áºáá¬ážá¡á á®ážáá± ááá áááºáááºáááºááŸáá·áº áá±á¬áºáá® á ááá áá®áá¬á áá áºáá®ážá¡áá»áá¯ááẠááá á áá®áá¬ááŸáá·áº áá±ááá·áºáá¯áááºáž ááááá ááŸááááºá á¡á á¬ážá¡áá±á¬áẠá,ááá áá®ááá¯ááááºá áááºážáááºááŒá¬áž áá,ááá ááŸáá·áº ááœáẠáá ,ááá áá«áááºáááºá á áá¬ážáá ááºá ááŒááºáááºá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ á áá¹áá°ááŸáááŸááá±á¬ááœá±ááŒáá·áº áááºáá áºáá»ááẠ20 ááᯠá áá¯ááºáá»áá¯ážáá²á·ááẠ:)áááºááŸááºááœá± áááºááá¯á·ááááºá
áá®ááŸá¬ áá®áá¬áá¶á¡ááŒá±á¬ááºáž ááááºážááá°áá« -áá®ááŸá¬ áá°ááŸá¯ááœááºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááœáẠá áá¬ážááŒá±á¬áá«áááœá±ážááá»ážá ᬠ,Facebook á ,vKontakte Оááœá áºáᬠ.
source: www.habr.com