ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืœืคื ื™ ืฉืœื•ืฉ ืฉื ื™ื ื•ื™ืงื˜ื•ืจ ื˜ืจื ื‘ืกืงื™ ื•ืืœื›ืกื™ื™ ืžื™ืœื•ื‘ื™ื“ื•ื‘ ืžื™ืื ื“ืงืก ืขืœ ื”ื‘ืžื” HighLoad ++ ืกื™ืคืจ, ื›ืžื” ื˜ื•ื‘ ืงืœื™ืงื”ืื•ืก, ื•ืื™ืš ื”ื•ื ืœื ืžืื˜. ื•ื‘ืฉืœื‘ ื”ื‘ื ื”ื™ื” ืืœื›ืกื ื“ืจ ื–ื™ื™ืฆื‘ ั ืœื”ื’ื™ืฉ ืชืœื•ื ื” ืœื’ื‘ื™ ืžืขื‘ืจ ืœ ืงืœื™ืงื”ืื•ืก ืž-DBMS ืื ืœื™ื˜ื™ ืื—ืจ ื•ื‘ืžืกืงื ื” ืฉ ืงืœื™ืงื”ืื•ืก, ื›ืžื•ื‘ืŸ, ื˜ื•ื‘, ืื‘ืœ ืœื ืžืื•ื“ ื ื•ื—. ื›ืืฉืจ ื‘ืฉื ืช 2016 ื”ื—ื‘ืจื” LifeStreet, ืฉื ืขื‘ื“ ืื– ืืœื›ืกื ื“ืจ, ื”ืžื™ืจ ืžืขืจื›ืช ืื ืœื™ื˜ื™ืช ืžืจื•ื‘ื” ืคื˜ื”-ื‘ื™ื™ื˜ ืœ ืงืœื™ืงื”ืื•ืก, ื–ื• ื”ื™ื™ืชื” "ื“ืจืš ืœื‘ื ื™ื ืฆื”ื•ื‘ื•ืช" ืžืจืชืงืช ืžืœืื” ื‘ืกื›ื ื•ืช ืœื ื™ื“ื•ืขื•ืช - ืงืœื™ืงื”ืื•ืก ืื– ื–ื” ื ืจืื” ื›ืžื• ืฉื“ื” ืžื•ืงืฉื™ื.

ืฉืœื•ืฉ ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ ืงืœื™ืงื”ืื•ืก ื”ืคืš ืœื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ - ื‘ืžื”ืœืš ื”ื–ืžืŸ ื”ื–ื” ืืœื›ืกื ื“ืจ ื”ืงื™ื ืืช ื—ื‘ืจืช Altinity, ืฉืœื ืจืง ืขื•ื–ืจืช ืœืื ืฉื™ื ืœืขื‘ื•ืจ ืืœื™ื” ืงืœื™ืงื”ืื•ืก ืขืฉืจื•ืช ืคืจื•ื™ืงื˜ื™ื, ืื‘ืœ ื’ื ืžืฉืคืจ ืืช ื”ืžื•ืฆืจ ืขืฆืžื• ื™ื—ื“ ืขื ืขืžื™ืชื™ื ืž-Yandex. ืขึทื›ืฉืึธื™ื• ืงืœื™ืงื”ืื•ืก ืขื“ื™ื™ืŸ ืœื ื˜ื™ื•ืœ ื—ืกืจ ื“ืื’ื•ืช, ืื‘ืœ ื›ื‘ืจ ืœื ืฉื“ื” ืžื•ืงืฉื™ื.

ืืœื›ืกื ื“ืจ ืขื•ื‘ื“ ืขื ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช ืžืื– 2003, ื•ืžืคืชื— ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ื‘ื ื•ืฉื MySQL, ืื•ืจืงืœ ะธ Vertica. ืขืœ ื”ืื—ืจื•ืŸ + + 2019 ืืœื›ืกื ื“ืจ, ืžื—ืœื•ืฆื™ ื”ืฉื™ืžื•ืฉ ืงืœื™ืงื”ืื•ืก, ืกื™ืคืจ ืžื” ื–ื” ื”-DBMS ื”ื–ื” ืขื›ืฉื™ื•. ื ืœืžื“ ืขืœ ื”ืชื›ื•ื ื•ืช ื”ืขื™ืงืจื™ื•ืช ืงืœื™ืงื”ืื•ืก: ื‘ืžื” ื”ื•ื ืฉื•ื ื” ืžืžืขืจื›ื•ืช ืื—ืจื•ืช ื•ื‘ืื™ืœื• ืžืงืจื™ื ื™ืขื™ืœ ื™ื•ืชืจ ืœื”ืฉืชืžืฉ ื‘ื•. ื‘ืขื–ืจืช ื“ื•ื’ืžืื•ืช, ื ื‘ื—ืŸ ืคืจืงื˜ื™ืงื•ืช ืขื“ื›ื ื™ื•ืช ื•ื ื‘ื“ืงื• ื‘ืคืจื•ื™ืงื˜ ืœื‘ื ื™ื™ืช ืžืขืจื›ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืงืœื™ืงื”ืื•ืก.


ื‘ื“ื™ืขื‘ื“: ืžื” ืงืจื” ืœืคื ื™ 3 ืฉื ื™ื

ืœืคื ื™ ืฉืœื•ืฉ ืฉื ื™ื ื”ืขื‘ืจื ื• ืืช ื”ื—ื‘ืจื” LifeStreet ืขืœ ืงืœื™ืงื”ืื•ืก ืžืžืกื“ ื ืชื•ื ื™ื ืื ืœื™ื˜ื™ ืื—ืจ, ื•ื”ื”ื’ื™ืจื” ืฉืœ ื ื™ืชื•ื— ืจืฉืช ื”ืžื•ื“ืขื•ืช ื ืจืืชื” ื›ืš:

  • ื™ื•ื ื™ 2016. ื‘ ืงื•ื“ ืคืชื•ื— ื”ื•ืคื™ืข ืงืœื™ืงื”ืื•ืก ื•ื”ืคืจื•ื™ืงื˜ ืฉืœื ื• ื”ืชื—ื™ืœ;
  • ืื•ื’ื•ืกื˜. ื”ื•ื›ื—ื” ืฉืœ ืจืขื™ื•ืŸ ืื• ืชืื•ืจื™ื”: ืจืฉืช ืคืจืกื•ื ื’ื“ื•ืœื”, ืชืฉืชื™ืช ื•-200-300 ื˜ืจื”-ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื;
  • ืื•ึนืงึฐื˜ื•ึนื‘ึผึถืจ. ื ืชื•ื ื™ ื™ื™ืฆื•ืจ ืจืืฉื•ื ื™ื;
  • ื“ึตืฆึถืžื‘ึผึถืจ. ืขื•ืžืก ื”ืžื•ืฆืจ ื”ืžืœื ื”ื•ื 10-50 ืžื™ืœื™ืืจื“ ืื™ืจื•ืขื™ื ื‘ื™ื•ื.
  • ื™ื•ื ื™ 2017. ื”ื’ื™ืจื” ืžื•ืฆืœื—ืช ืฉืœ ืžืฉืชืžืฉื™ื ืœ ืงืœื™ืงื”ืื•ืก, 2,5 ืคื˜ื”-ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื ืขืœ ืืฉื›ื•ืœ ืฉืœ 60 ืฉืจืชื™ื.

ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ื”ื’ื™ืจื”, ื’ื‘ืจื” ื”ื”ื‘ื ื” ืœื›ืš ืงืœื™ืงื”ืื•ืก ื”ื™ื ืžืขืจื›ืช ื˜ื•ื‘ื” ืฉื ืขื™ื ืœืขื‘ื•ื“ ืื™ืชื”, ืื‘ืœ ื–ื” ืคืจื•ื™ืงื˜ ืคื ื™ืžื™ ืฉืœ Yandex. ืœื›ืŸ, ื™ืฉื ื ื ื™ื•ืื ืกื™ื: Yandex ืชืขืกื•ืง ืงื•ื“ื ื›ืœ ื‘ืœืงื•ื—ื•ืช ืคื ื™ืžื™ื™ื ืžืฉืœื” ื•ืจืง ืœืื—ืจ ืžื›ืŸ ื‘ืงื”ื™ืœื” ื•ื‘ืฆืจื›ื™ื ืฉืœ ืžืฉืชืžืฉื™ื ื—ื™ืฆื•ื ื™ื™ื, ื•- ClickHouse ืœื ื”ื’ื™ืขื” ืื– ืœืจืžืช ื”ืืจื’ื•ืŸ ื‘ืชื—ื•ืžื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืจื‘ื™ื. ื–ื• ื”ืกื™ื‘ื” ืฉื”ืงืžื ื• ืืช Altinity ื‘ืžืจืฅ 2017 ื›ื“ื™ ืœืขืฉื•ืช ืงืœื™ืงื”ืื•ืก ืืคื™ืœื• ื™ื•ืชืจ ืžื”ื™ืจ ื•ื ื•ื— ืœื ืจืง ืขื‘ื•ืจ Yandex, ืืœื ื’ื ืขื‘ื•ืจ ืžืฉืชืžืฉื™ื ืื—ืจื™ื. ื•ืขื›ืฉื™ื• ืื ื—ื ื•:

  • ืื ื• ืžืืžื ื™ื ื•ืขื•ื–ืจื™ื ื‘ื‘ื ื™ื™ืช ืคืชืจื•ื ื•ืช ื”ืžื‘ื•ืกืกื™ื ืขืœ ืงืœื™ืงื”ืื•ืก ื›ื“ื™ ืฉื”ืœืงื•ื—ื•ืช ืœื ื™ืกืชื‘ื›ื•, ื•ื›ื“ื™ ืฉื”ืคืชืจื•ืŸ ื™ืขื‘ื•ื“ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ;
  • ืื ื• ืžืกืคืงื™ื ืชืžื™ื›ื” 24/7 ืงืœื™ืงื”ืื•ืก- ื”ืชืงื ื•ืช;
  • ืื ื• ืžืคืชื—ื™ื ืคืจื•ื™ืงื˜ื™ื ืฉืœ ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืžืฉืœื ื•;
  • ืื ื• ืžืชื—ื™ื™ื‘ื™ื ืœืขืฆืžื ื• ื‘ืื•ืคืŸ ืคืขื™ืœ ืงืœื™ืงื”ืื•ืก, ืžืขื ื” ืœื‘ืงืฉื•ืช ืฉืœ ืžืฉืชืžืฉื™ื ืฉืจื•ืฆื™ื ืœืจืื•ืช ืชื›ื•ื ื•ืช ืžืกื•ื™ืžื•ืช.

ื•ื›ืžื•ื‘ืŸ, ืื ื—ื ื• ืขื•ื–ืจื™ื ื‘ืžืขื‘ืจ ืงืœื™ืงื”ืื•ืก ั MySQL, Vertica, ืื•ืจืงืœ, ื’ืจื™ื ืคืœื•ื, ื”ื™ืกื˜ ืœืื“ื•ื ื•ืžืขืจื›ื•ืช ื ื•ืกืคื•ืช. ื”ื™ื™ื ื• ืžืขื•ืจื‘ื™ื ื‘ืžื’ื•ื•ืŸ ืžื”ืœื›ื™ื, ื•ื›ื•ืœื ื”ืฆืœื™ื—ื•.

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืœืžื” ืœืขื‘ื•ืจ ืœ ืงืœื™ืงื”ืื•ืก

ืœื ืžืื˜! ื–ื• ื”ืกื™ื‘ื” ื”ืขื™ืงืจื™ืช. ืงืœื™ืงื”ืื•ืก - ืžืกื“ ื ืชื•ื ื™ื ืžื”ื™ืจ ืžืื•ื“ ืขื‘ื•ืจ ืชืจื—ื™ืฉื™ื ืฉื•ื ื™ื:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืฆื™ื˜ื•ื˜ื™ื ืืงืจืื™ื™ื ืฉืœ ืื ืฉื™ื ืฉืขื•ื‘ื“ื™ื ืขื ืื ืฉื™ื ื‘ืžืฉืš ื–ืžืŸ ืจื‘ ืงืœื™ืงื”ืื•ืก.

ืžื“ืจื’ื™ื•ืช. ื‘ืžืกื“ ื ืชื•ื ื™ื ืื—ืจ ืืชื” ื™ื›ื•ืœ ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ืขืœ ืคื™ืกืช ื—ื•ืžืจื” ืื—ืช, ืื‘ืœ ืงืœื™ืงื”ืื•ืก ืืชื” ื™ื›ื•ืœ ืœืฉื ื•ืช ืงื ื” ืžื™ื“ื” ืœื ืจืง ืื ื›ื™ืช, ืืœื ื’ื ืื•ืคืงื™ืช, ืคืฉื•ื˜ ืขืœ ื™ื“ื™ ื”ื•ืกืคืช ืฉืจืชื™ื. ื”ื›ืœ ืœื ืขื•ื‘ื“ ื‘ืฆื•ืจื” ื—ืœืงื” ื›ืžื• ืฉื”ื™ื™ื ื• ืจื•ืฆื™ื, ืื‘ืœ ื–ื” ืขื•ื‘ื“. ืืชื” ื™ื›ื•ืœ ืœื”ืจื—ื™ื‘ ืืช ื”ืžืขืจื›ืช ื›ื›ืœ ืฉื”ืขืกืง ืฉืœืš ื’ื“ืœ. ื—ืฉื•ื‘ ืฉืœื ื ื”ื™ื” ืžื•ื’ื‘ืœื™ื ืขืœ ื™ื“ื™ ื”ืคืชืจื•ืŸ ืขื›ืฉื™ื• ื•ืชืžื™ื“ ื™ืฉ ืคื•ื˜ื ืฆื™ืืœ ืœืคื™ืชื•ื—.

ื”ึดื˜ึทืœื˜ึฐืœื•ึผืช. ืื™ืŸ ืงืฉืจ ืœื“ื‘ืจ ืื—ื“. ืœืžืฉืœ, ืขื ื”ืื“ื•ื ืฉืœ ืืžื–ื•ืŸ ืงืฉื” ืœื–ื•ื– ืœืžืงื•ื ื›ืœืฉื”ื•. ื ืงืœื™ืงื”ืื•ืก ืืชื” ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ ืื•ืชื• ืขืœ ื”ืžื—ืฉื‘ ื”ื ื™ื™ื“, ื”ืฉืจืช ืฉืœืš, ืœืคืจื•ืก ืื•ืชื• ื‘ืขื ืŸ, ืขื‘ื•ืจ ืืœ ืงื•ื‘ืจื ื˜ - ืื™ืŸ ื”ื’ื‘ืœื•ืช ืขืœ ืชืคืขื•ืœ ื”ืชืฉืชื™ืช. ื–ื” ื ื•ื— ืœื›ื•ืœื, ื•ื–ื”ื• ื™ืชืจื•ืŸ ื’ื“ื•ืœ ืฉืžืื’ืจื™ ืžื™ื“ืข ื“ื•ืžื™ื ืจื‘ื™ื ืื—ืจื™ื ืœื ื™ื›ื•ืœื™ื ืœื”ืชื”ื“ืจ ื‘ื•.

ื’ืžื™ืฉื•ืช. ืงืœื™ืงื”ืื•ืก ืœื ืขื•ืฆืจ ื‘ื“ื‘ืจ ืื—ื“, ืœืžืฉืœ, Yandex.Metrica, ืืœื ืžืคืชื—ืช ื•ืžืฉืžืฉืช ืœื™ื•ืชืจ ื•ื™ื•ืชืจ ืคืจื•ื™ืงื˜ื™ื ื•ืชืขืฉื™ื•ืช ืฉื•ื ื•ืช. ื ื™ืชืŸ ืœื”ืจื—ื™ื‘ ืื•ืชื• ืขืœ ื™ื“ื™ ื”ื•ืกืคืช ื™ื›ื•ืœื•ืช ื—ื“ืฉื•ืช ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื—ื“ืฉื•ืช. ืœื“ื•ื’ืžื”, ื”ื•ื ื”ืืžื™ืŸ ื›ื™ ืื—ืกื•ืŸ ื™ื•ืžื ื™ื ื‘ืžืกื“ ื ืชื•ื ื™ื ื”ื•ื ื ื™ืžื•ืกื™ื ื’ืจื•ืขื™ื, ืื– ื”ื ื”ื’ื™ืขื• ืขื Elasticsearch. ืื‘ืœ ื‘ื–ื›ื•ืช ื”ื’ืžื™ืฉื•ืช ืงืœื™ืงื”ืื•ืก, ืืชื” ื™ื›ื•ืœ ื’ื ืœืื—ืกืŸ ื‘ื• ื™ื•ืžื ื™ื, ื•ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื–ื” ืืคื™ืœื• ื˜ื•ื‘ ื™ื•ืชืจ ืžืืฉืจ ื‘ Elasticsearch - ืคื ื™ืžื” ืงืœื™ืงื”ืื•ืก ื–ื” ื“ื•ืจืฉ ืคื™ 10 ืคื—ื•ืช ื‘ืจื–ืœ.

ื—ื•ืคืฉื™ ืงื•ื“ ืคืชื•ื—. ืืชื” ืœื ืฆืจื™ืš ืœืฉืœื ืขืœ ืฉื•ื ื“ื‘ืจ. ืื™ืŸ ืฆื•ืจืš ืœื ื”ืœ ืžืฉื ื•ืžืชืŸ ืขืœ ื”ืจืฉืื” ืœื”ืชืงื ืช ื”ืžืขืจื›ืช ืขืœ ื”ืžื—ืฉื‘ ื”ื ื™ื™ื“ ืื• ื”ืฉืจืช ืฉืœืš. ืœืœื ืขืžืœื•ืช ื ืกืชืจื•ืช. ื™ื—ื“ ืขื ื–ืืช, ืฉื•ื ื˜ื›ื ื•ืœื•ื’ื™ื™ืช ืžืกื“ ื ืชื•ื ื™ื ืื—ืจืช ืฉืœ ืงื•ื“ ืคืชื•ื— ืœื ื™ื›ื•ืœื” ืœื”ืชื—ืจื•ืช ื‘ืžื”ื™ืจื•ืช ืงืœื™ืงื”ืื•ืก. MySQL, MariaDB, Greenplum - ื›ื•ืœื ื”ืจื‘ื” ื™ื•ืชืจ ืื™ื˜ื™ื™ื.

ืงื”ื™ืœื”, ื›ื•ื ืŸ ื• ื›ึผึตื™ืฃ. ื‘ืฉืขื” ืงืœื™ืงื”ืื•ืก ืงื”ื™ืœื” ืžืฆื•ื™ื ืช: ืžืคื’ืฉื™ื, ืฆ'ื˜ื™ื ื•ืืœื›ืกื™ื™ ืžื™ืœื•ื‘ื™ื“ื•ื‘, ืฉืžื˜ืขื™ืŸ ืืช ื›ื•ืœื ื• ื‘ืื ืจื’ื™ื” ื•ื‘ืื•ืคื˜ื™ืžื™ื•ืช ืฉืœื•.

ืขื•ื‘ืจื™ื ืœืงืœื™ืงื”ืื•ืก

ืœืœื›ืช ืœ ืงืœื™ืงื”ืื•ืก ืžืกื™ื‘ื” ื›ืœืฉื”ื™, ืืชื” ืฆืจื™ืš ืจืง ืฉืœื•ืฉื” ื“ื‘ืจื™ื:

  • ืœื”ื‘ื™ืŸ ืืช ื”ืžื’ื‘ืœื•ืช ืงืœื™ืงื”ืื•ืก ื•ืœืžื” ื–ื” ืœื ืžืชืื™ื.
  • ืœื ืฆืœ ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ื•ื”ื™ืชืจื•ื ื•ืช ื”ื’ื“ื•ืœื™ื ื‘ื™ื•ืชืจ ืฉืœื”.
  • ืœึฐื ึทืกื•ึนืช. ืืคื™ืœื• ืœื”ื‘ื™ืŸ ืื™ืš ื–ื” ืขื•ื‘ื“ ืงืœื™ืงื”ืื•ืก, ืœื ืชืžื™ื“ ื ื™ืชืŸ ืœื—ื–ื•ืช ืžืชื™ ื–ื” ื™ื”ื™ื” ืžื”ื™ืจ ื™ื•ืชืจ, ืžืชื™ ื–ื” ื™ื”ื™ื” ืื™ื˜ื™ ื™ื•ืชืจ, ืžืชื™ ื–ื” ื™ื”ื™ื” ื˜ื•ื‘ ื™ื•ืชืจ ื•ืžืชื™ ื–ื” ื™ื”ื™ื” ื™ื•ืชืจ ื’ืจื•ืข. ืื– ื ืกื” ืืช ื–ื”.

ื‘ืขื™ื” ื‘ืชื ื•ืขื”

ื™ืฉ ืจืง "ืื‘ืœ" ืื—ื“: ืื ืชืขื‘ื•ืจ ืœ ืงืœื™ืงื”ืื•ืก ืžืžืฉื”ื• ืื—ืจ, ืื– ื‘ื“ืจืš ื›ืœืœ ืžืฉื”ื• ืžืฉืชื‘ืฉ. ืื ื—ื ื• ืจื’ื™ืœื™ื ืœื›ืžื” ืคืจืงื˜ื™ืงื•ืช ื•ื“ื‘ืจื™ื ืฉืขื•ื‘ื“ื™ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืื”ื•ื‘ื™ื ืขืœื™ื ื•. ืœืžืฉืœ, ื›ืœ ืžื™ ืฉืขื•ื‘ื“ ืขื SQืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ L ืจื•ืื™ื ื‘ืกื˜ ื”ืคื•ื ืงืฆื™ื•ืช ื”ื‘ื ื—ื•ื‘ื”:

  • ืขืกืงืื•ืช;
  • ืื™ืœื•ืฆื™ื;
  • ืขึฒืงึตื‘ึดื™ื•ึผืช;
  • ืžื“ื“ื™ื;
  • ืขื“ื›ืŸ/ืžื—ืง;
  • NULLs;
  • ืืœืคื™ื•ืช ืฉื ื™ื•ืช;
  • ื™ืฆื™ืงื•ืช ืžืกื•ื’ ืื•ื˜ื•ืžื˜ื™;
  • ื—ื™ื‘ื•ืจื™ื ืžืจื•ื‘ื™ื;
  • ืžื—ื™ืฆื•ืช ืฉืจื™ืจื•ืชื™ื•ืช;
  • ื›ืœื™ื ืœื ื™ื”ื•ืœ ืืฉื›ื•ืœื•ืช.

ื”ื’ื™ื•ืก ื”ื•ื ื—ื•ื‘ื”, ืื‘ืœ ืœืคื ื™ ืฉืœื•ืฉ ืฉื ื™ื ื‘ ืงืœื™ืงื”ืื•ืก ืืฃ ืื—ืช ืžื”ืคื•ื ืงืฆื™ื•ืช ื”ืœืœื• ืœื ื”ื™ื™ืชื” ื–ืžื™ื ื”! ื›ืขืช ื ื•ืชืจ ืคื—ื•ืช ืžืžื—ืฆื™ืช ืžืžื” ืฉืœื ื™ื•ืฉื: ืขืกืงืื•ืช, ืื™ืœื•ืฆื™ื, ืขืงื‘ื™ื•ืช, ืืœืคื™ื•ืช ืฉื ื™ื•ืช ื•ื”ืœื™ื”ื•ืง ืกื•ื’.

ื•ื”ืขื™ืงืจ ืฉื‘ ืงืœื™ืงื”ืื•ืก ื—ืœืง ืžื”ืฉื™ื˜ื•ืช ื•ื”ื’ื™ืฉื•ืช ื”ืกื˜ื ื“ืจื˜ื™ื•ืช ืื™ื ืŸ ืคื•ืขืœื•ืช ืื• ืคื•ืขืœื•ืช ื‘ืฆื•ืจื” ืฉื•ื ื” ืžืžื” ืฉืื ื• ืจื’ื™ืœื™ื. ื›ืœ ืžื” ืฉืžื•ืคื™ืข ื‘ ืงืœื™ืงื”ืื•ืก, ืžืชืื™ื ืœ "ื“ืจืš ืงืœื™ืงื”ืื•ืก", ื›ืœื•ืžืจ. ืคื•ื ืงืฆื™ื•ืช ืฉื•ื ื•ืช ืžืžืื’ืจื™ ืžื™ื“ืข ืื—ืจื™ื. ืœื“ื•ื’ืžื”:

  • ืื™ื ื“ืงืกื™ื ืื™ื ื ื ื‘ื—ืจื™ื, ืืš ืžื“ืœื’ื™ื ืขืœื™ื”ื.
  • ืขื“ื›ืŸ/ืžื—ืง ืœื ืกื™ื ื›ืจื•ื ื™, ืืœื ืืกื™ื ื›ืจื•ื ื™.
  • ื™ืฉื ืŸ ืžืกืคืจ ื”ืฆื˜ืจืคื•ืช, ืืš ืื™ืŸ ืžืชื›ื ืŸ ืฉืื™ืœืชื•ืช. ืื™ืš ื”ื ืžื‘ื•ืฆืขื™ื ืื– ื‘ื“ืจืš ื›ืœืœ ืœื ื‘ืจื•ืจ ืžืื•ื“ ืœืื ืฉื™ื ืžืขื•ืœื ืžืกื“ื™ ื”ื ืชื•ื ื™ื.

ืกืงืจื™ืคื˜ื™ื ืฉืœ ClickHouse

ื‘ืฉื ืช 1960, ืžืชืžื˜ื™ืงืื™ ืืžืจื™ืงืื™ ืžืžื•ืฆื ื”ื•ื ื’ืจื™ ื•ื•ื™ื’ื ืจ EP ื›ืชื‘ ืžืืžืจ"ื”ืืคืงื˜ื™ื‘ื™ื•ืช ื”ื‘ืœืชื™ ืกื‘ื™ืจื” ืฉืœ ื”ืžืชืžื˜ื™ืงื” ื‘ืžื“ืขื™ ื”ื˜ื‘ืข" ("ื”ื™ืขื™ืœื•ืช ื”ื‘ืœืชื™ ืžื•ื‘ื ืช ืฉืœ ืžืชืžื˜ื™ืงื” ื‘ืžื“ืขื™ ื”ื˜ื‘ืข") ืฉื”ืขื•ืœื ืกื‘ื™ื‘ื ื• ืžืชื•ืืจ ืžืฉื•ื ืžื” ื”ื™ื˜ื‘ ืขืœ ื™ื“ื™ ื—ื•ืงื™ื ืžืชืžื˜ื™ื™ื. ืžืชืžื˜ื™ืงื” ื”ื™ื ืžื“ืข ืžื•ืคืฉื˜, ื•ื—ื•ืงื™ื ืคื™ื–ื™ืงืœื™ื™ื ื”ืžื•ื‘ืขื™ื ื‘ืฆื•ืจื” ืžืชืžื˜ื™ืช ืื™ื ื ื˜ืจื™ื•ื•ื™ืืœื™ื™ื, ื•ื›ืŸ ื•ื•ื™ื’ื ืจ EP ื”ื“ื’ื™ืฉ ืฉื–ื” ืžืื•ื“ ืžื•ื–ืจ.

ืžื ืงื•ื“ืช ืžื‘ื˜ ืฉืœื™, ืงืœื™ืงื”ืื•ืก - ืื•ืชื” ืžื•ื–ืจื•ืช. ืื ืœื ืกื— ืžื—ื“ืฉ ืืช ื•ื•ื™ื’ื ืจ, ืืคืฉืจ ืœื•ืžืจ ื–ืืช: ื”ื™ืขื™ืœื•ืช ื”ื‘ืœืชื™ ื ืชืคืกืช ืžื“ื”ื™ืžื” ืงืœื™ืงื”ืื•ืก ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื™ื™ืฉื•ืžื™ื ืื ืœื™ื˜ื™ื™ื!

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืœื“ื•ื’ืžื”, ื‘ื•ืื• ื ื™ืงื— ืžื—ืกืŸ ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืืžืช, ืฉืืœื™ื• ื ื˜ืขื ื™ื ื ืชื•ื ื™ื ื›ืžืขื˜ ื‘ืจืฆื™ืคื•ืช. ืื ื—ื ื• ืจื•ืฆื™ื ืœืงื‘ืœ ืžืžื ื• ื‘ืงืฉื•ืช ื‘ืื™ื—ื•ืจ ืฉื ื™. ื‘ื‘ืงืฉื” - ื”ืฉืชืžืฉ ื‘ื• ืงืœื™ืงื”ืื•ืก, ื›ื™ ื–ื” ื”ืชืจื—ื™ืฉ ืฉื”ื•ื ืชื•ื›ื ืŸ ืขื‘ื•ืจื•. ืงืœื™ืงื”ืื•ืก ื–ื” ื‘ื“ื™ื•ืง ืื™ืš ื”ื•ื ืžืฉืžืฉ ืœื ืจืง ื‘ืื™ื ื˜ืจื ื˜, ืืœื ื’ื ื‘ืฉื™ื•ื•ืง ื•ื ื™ืชื•ื— ืคื™ื ื ืกื™, AdTech, ื›ืžื• ื’ื ื‘ ื’ื™ืœื•ื™ ื”ื•ื ืื”ื . IN ืžื—ืกืŸ ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืืžืช ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืกื›ื™ืžื” ืžื•ื‘ื ื™ืช ืžื•ืจื›ื‘ืช ื›ืžื• "ื›ื•ื›ื‘" ืื• "ืคืชื™ืช ืฉืœื’", ืขื ื˜ื‘ืœืื•ืช ืจื‘ื•ืช ืœื”ืฆื˜ืจืฃ (ืœืขื™ืชื™ื ืžืจื•ื‘ื™ื), ื•ื”ื ืชื•ื ื™ื ื‘ื“ืจืš ื›ืœืœ ืžืื•ื—ืกื ื™ื ื•ืžืฉืชื ื™ื ื‘ืžืขืจื›ื•ืช ืžืกื•ื™ืžื•ืช.

ื‘ื•ืื• ื ื™ืงื— ืชืจื—ื™ืฉ ืื—ืจ - ืกื“ืจืช ื–ืžืŸ: ื ื™ื˜ื•ืจ ืžื›ืฉื™ืจื™ื, ืจืฉืชื•ืช, ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืฉื™ืžื•ืฉ, ื”ืื™ื ื˜ืจื ื˜ ืฉืœ ื”ื“ื‘ืจื™ื. ื›ืืŸ ืื ื• ื ืชืงืœื™ื ื‘ืื™ืจื•ืขื™ื ืคืฉื•ื˜ื™ื ืœืžื“ื™ ืžืกื•ื“ืจื™ื ื‘ื–ืžืŸ. ืงืœื™ืงื”ืื•ืก ืœื ืคื•ืชื—ื” ืขื‘ื•ืจ ื–ื” ื‘ืžืงื•ืจ, ืื‘ืœ ื”ื•ื›ื™ื—ื” ืืช ืขืฆืžื” ืขื•ื‘ื“ืช ื”ื™ื˜ื‘, ื•ื–ื• ื”ืกื™ื‘ื” ืฉื—ื‘ืจื•ืช ื’ื“ื•ืœื•ืช ืžืฉืชืžืฉื•ืช ืงืœื™ืงื”ืื•ืก ื›ืžืื’ืจ ืœื ื™ื˜ื•ืจ ืžื™ื“ืข. ื›ื“ื™ ืœื‘ื“ื•ืง ืื ื–ื” ืžืชืื™ื ืงืœื™ืงื”ืื•ืก ืขื‘ื•ืจ ืกื“ืจื•ืช ื–ืžืŸ, ืขืฉื™ื ื• ืžื“ื“ ื”ืžื‘ื•ืกืก ืขืœ ื”ื’ื™ืฉื” ื•ื”ืชื•ืฆืื•ืช InfluxDB ะธ ื˜ื•ื•ื— ื–ืžื ื™ื DB - ืžืชืžื—ื” ืกื“ืจืช ื–ืžืŸ ืžืกื“ื™ ื ืชื•ื ื™ื. ื”ืชื‘ืจืจื›ื™ ืงืœื™ืงื”ืื•ืก, ืืคื™ืœื• ืœืœื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœืžืฉื™ืžื•ืช ื›ืืœื”, ืžื ืฆื— ื‘ืฉื“ื” ื–ืจ:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ะ’ ืกื“ืจืช ื–ืžืŸ ื‘ื“ืจืš ื›ืœืœ ืžืฉืชืžืฉื™ื ื‘ื˜ื‘ืœื” ืฆืจื” - ื›ืžื” ืขืžื•ื“ื•ืช ืงื˜ื ื•ืช. ื ืชื•ื ื™ื ืจื‘ื™ื ื™ื›ื•ืœื™ื ืœื”ื’ื™ืข ืžื ื™ื˜ื•ืจ - ืžื™ืœื™ื•ื ื™ ืจืฉื•ืžื•ืช ื‘ืฉื ื™ื™ื” - ื•ื”ื ื‘ื“ืจืš ื›ืœืœ ืžื’ื™ืขื™ื ื‘ืคืจืฆื™ื ืงื˜ื ื™ื (ื–ืžืŸ ืืžืช ื ึฐื”ึดื™ืจึธื”). ืœื›ืŸ, ื™ืฉ ืฆื•ืจืš ื‘ืกืงืจื™ืคื˜ ื”ื•ืกืคื” ืื—ืจ, ื•ืœืฉืื™ืœืชื•ืช ืขืฆืžืŸ ื™ืฉ ืคืจื˜ื™ื ืžืฉืœื”ืŸ.

ื ื™ื”ื•ืœ ื™ื•ืžืŸ. ืื™ืกื•ืฃ ื™ื•ืžื ื™ื ืœืžืกื“ ื ืชื•ื ื™ื ื”ื•ื ื‘ื“ืจืš ื›ืœืœ ื’ืจื•ืข, ืื‘ืœ ืงืœื™ืงื”ืื•ืก ื–ื” ื™ื›ื•ืœ ืœื”ื™ืขืฉื•ืช ืขื ื›ืžื” ื”ืขืจื•ืช ื›ืžืชื•ืืจ ืœืขื™ืœ. ื—ื‘ืจื•ืช ืจื‘ื•ืช ืžืฉืชืžืฉื•ืช ืงืœื™ืงื”ืื•ืก ื‘ื“ื™ื•ืง ืœืžื˜ืจื” ื–ื•. ื‘ืžืงืจื” ื–ื”, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื˜ื‘ืœื” ืจื—ื‘ื” ืฉื˜ื•ื—ื” ืฉื‘ื” ืื ื• ืžืื—ืกื ื™ื ืืช ื›ืœ ื”ื™ื•ืžื ื™ื (ืœื“ื•ื’ืžื”, ื‘ื˜ื•ืคืก JSON), ืื• ืœื—ืชื•ืš ืœื—ืชื™ื›ื•ืช. ื”ื ืชื•ื ื™ื ื ื˜ืขื ื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ืืฆื•ื•ืช ื’ื“ื•ืœื•ืช (ืงื‘ืฆื™ื), ื•ืื ื—ื ื• ืžื—ืคืฉื™ื ืœืคื™ ืฉื“ื” ื›ืœืฉื”ื•.

ืขื‘ื•ืจ ื›ืœ ืื—ืช ืžื”ืคื•ื ืงืฆื™ื•ืช ื”ืœืœื•, ืžืฉืชืžืฉื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ืžื™ื•ื—ื“ื™ื. ืงืœื™ืงื”ืื•ืก ืืคืฉืจ ืœืขืฉื•ืช ื”ื›ืœ ื•ื›ืœ ื›ืš ื˜ื•ื‘ ืขื“ ืฉื–ื” ืžืชืขืœื” ืขืœื™ื”ื. ื‘ื•ืื• ื ืกืชื›ืœ ืžืงืจื•ื‘ ื™ื•ืชืจ ืกื“ืจืช ื–ืžืŸ ืชืจื—ื™ืฉ, ื•ื›ื™ืฆื“ "ืœื‘ืฉืœ" ื ื›ื•ืŸ ืงืœื™ืงื”ืื•ืก ืœืชืจื—ื™ืฉ ื–ื”.

ืกื“ืจืช ื–ืžืŸ

ื ื›ื•ืŸ ืœืขื›ืฉื™ื• ื–ื” ื”ืชืจื—ื™ืฉ ื”ืขื™ืงืจื™ ืฉืขื‘ื•ืจื• ืงืœื™ืงื”ืื•ืก ื ื—ืฉื‘ ืœืคืชืจื•ืŸ ื”ืกื˜ื ื“ืจื˜ื™. ืกื“ืจืช ื–ืžืŸ ื”ื•ื ืงื‘ื•ืฆื” ืฉืœ ืื™ืจื•ืขื™ื ืžืกื•ื“ืจื™ื ื‘ื–ืžืŸ, ื”ืžื™ื™ืฆื’ื™ื ืฉื™ื ื•ื™ื™ื ื‘ืชื”ืœื™ืš ื›ืœืฉื”ื• ืœืื•ืจืš ื–ืžืŸ. ืœื“ื•ื’ืžื”, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืงืฆื‘ ื”ืœื‘ ืœื™ื•ื ืื• ืžืกืคืจ ื”ืชื”ืœื™ื›ื™ื ื‘ืžืขืจื›ืช. ื›ืœ ืžื” ืฉื ื•ืชืŸ ืœื–ืžืŸ ืžืชืงืชืง ืขื ื›ืžื” ืžืžื“ื™ื ื”ื•ื ืกื“ืจืช ื–ืžืŸ:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืจื•ื‘ ืกื•ื’ื™ ื”ืื™ืจื•ืขื™ื ื”ืœืœื• ืžื’ื™ืขื™ื ืžืžืขืงื‘. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืœื ืจืง ื ื™ื˜ื•ืจ ื”ืื™ื ื˜ืจื ื˜, ืืœื ื’ื ืžื›ืฉื™ืจื™ื ืืžื™ืชื™ื™ื: ืžื›ื•ื ื™ื•ืช, ืžืขืจื›ื•ืช ืชืขืฉื™ื™ืชื™ื•ืช, IOT, ืžืคืขืœื™ื ืื• ืžื•ื ื™ื•ืช ื‘ืœืชื™ ืžืื•ื™ืฉื•ืช, ื‘ืชื ื”ืžื˜ืขืŸ ืฉืœ Yandex ื›ื‘ืจ ืžื›ื ื™ืกื” ืงืœื™ืงื”ืื•ืก-ืฉืจืช.

ืœืžืฉืœ, ื™ืฉ ื—ื‘ืจื•ืช ืฉืื•ืกืคื•ืช ื ืชื•ื ื™ื ืžืื•ื ื™ื•ืช. ื›ืœ ื›ืžื” ืฉื ื™ื•ืช, ื—ื™ื™ืฉื ื™ื ื‘ืกืคื™ื ืช ื”ืžื›ื•ืœื•ืช ืฉื•ืœื—ื™ื ืžืื•ืช ืžื“ื™ื“ื•ืช ืฉื•ื ื•ืช. ืžื”ื ื“ืกื™ื ืœื•ืžื“ื™ื ืื•ืชื, ื‘ื•ื ื™ื ื“ื’ืžื™ื ื•ืžื ืกื™ื ืœื”ื‘ื™ืŸ ื‘ืื™ื–ื• ื™ืขื™ืœื•ืช ืžืฉืชืžืฉื™ื ื‘ื›ืœื™ ื”ืฉื™ื˜, ื›ื™ ืกืคื™ื ืช ืžื›ื•ืœื•ืช ืœื ืฆืจื™ื›ื” ืœื”ื™ื•ืช ื‘ื˜ืœื” ืืคื™ืœื• ืœืฉื ื™ื™ื”. ื›ืœ ื”ืฉื‘ืชื” ื”ื™ื ื”ืคืกื“ ื›ืกืฃ, ื•ืœื›ืŸ ื—ืฉื•ื‘ ืœื—ื–ื•ืช ืืช ื”ืžืกืœื•ืœ ื›ืš ืฉื”ืขืฆื™ืจื•ืช ื™ื”ื™ื• ืžื™ื ื™ืžืœื™ื•ืช.

ื›ื™ื•ื ื™ืฉ ื’ื™ื“ื•ืœ ืฉืœ ืžืื’ืจื™ ืžื™ื“ืข ืžื™ื•ื—ื“ื™ื ืฉืžื•ื“ื“ื™ื ืกื“ืจืช ื–ืžืŸ. ื‘ืืชืจ ืžื ื•ืขื™ DB ืžืกื“ื™ ื”ื ืชื•ื ื™ื ื”ืฉื•ื ื™ื ืžื“ื•ืจื’ื™ื ืื™ื›ืฉื”ื•, ื•ืชื•ื›ืœื• ืœื”ืฆื™ื’ ืื•ืชื ืœืคื™ ืกื•ื’:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื”ืกื•ื’ ื”ื’ื“ืœ ื”ื›ื™ ืžื”ืจ ื”ื•ื ืกื“ืจืช ื–ืžืŸืก. ื’ื ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ ื’ืจืคื™ื ืฆื•ืžื—ื™ื, ืื‘ืœ ืกื“ืจืช ื–ืžืŸs ื’ื“ืœ ืžื”ืจ ื™ื•ืชืจ ื‘ืžื”ืœืš ื”ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช. ื ืฆื™ื’ื™ื ืื•ืคื™ื™ื ื™ื™ื ืฉืœ ืžืฉืคื—ืช ืžืื’ืจื™ ืžื™ื“ืข ื–ื• ื”ื InfluxDB, ืคืจื•ืžืชืื•ืก, KDB, ื˜ื•ื•ื— ื–ืžื ื™ื DB (ื‘ื ื•ื™ ืขืœ PostgreSQL), ืคืชืจื•ื ื•ืช ืž ืืžื–ื•ืŸ ื‘ืขื‘ืจื™ืช. ืงืœื™ืงื”ืื•ืก ื™ื›ื•ืœ ืœืฉืžืฉ ื’ื ื›ืืŸ, ื•ื”ื•ื ืžืฉืžืฉ. ื”ืจืฉื• ืœื™ ืœืชืช ืœื›ื ื›ืžื” ื“ื•ื’ืžืื•ืช ืคื•ืžื‘ื™ื•ืช.

ืื—ืช ื”ื—ืœื•ืฆื•ืช ื”ื™ื ื”ื—ื‘ืจื” CloudFlare (CDN-ืกืคืง). ื”ื ืขื•ืงื‘ื™ื ืื—ืจื™ื”ื CDN ื“ืจืš ืงืœื™ืงื”ืื•ืก (DNS-ื‘ืงืฉื•ืช, HTTP-ืฉืื™ืœืชื•ืช) ืขื ืขื•ืžืก ืขืฆื•ื - 6 ืžื™ืœื™ื•ืŸ ืื™ืจื•ืขื™ื ื‘ืฉื ื™ื™ื”. ื”ื›ืœ ืขื•ื‘ืจ ืงืคืงื, ื”ื•ืœืš ืœ ืงืœื™ืงื”ืื•ืก, ื”ืžืกืคืง ื”ื–ื“ืžื ื•ืช ืœืจืื•ืช ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืฉืœ ืื™ืจื•ืขื™ื ื‘ืžืขืจื›ืช ื‘ื–ืžืŸ ืืžืช.

Comcast - ืžื”ืžื•ื‘ื™ืœื™ื ื‘ืชื—ื•ื ื”ื˜ืœืงื•ืžื•ื ื™ืงืฆื™ื” ื‘ืืจื”"ื‘: ืื™ื ื˜ืจื ื˜, ื˜ืœื•ื•ื™ื–ื™ื” ื“ื™ื’ื™ื˜ืœื™ืช, ื˜ืœืคื•ื ื™ื”. ื”ื ื™ืฆืจื• ืžืขืจื›ืช ื‘ืงืจื” ื“ื•ืžื” CDN ื‘ืชื•ืš ืงื•ื“ ืคืชื•ื— ืคืจื•ื™ื™ืงื˜ ื‘ืงืจืช ืชื ื•ืขื” ืฉืœ ืืคืืฆ'ื™ ืœืขื‘ื•ื“ ืขื ื”ื ืชื•ื ื™ื ื”ืขืฆื•ืžื™ื ืฉืœืš. ืงืœื™ืงื”ืื•ืก ืžืฉืžืฉ ื›ืงืฆื” ืื—ื•ืจื™ ืœื ื™ืชื•ื—.

ืคืจืงื•ื ื” ื ึดื‘ื ึธื” ื‘ึผึฐ ืงืœื™ืงื”ืื•ืก ื‘ืชื•ืš ืฉืœืš PMMืœืื—ืกืŸ ื ื™ื˜ื•ืจ ืฉืœ ืฉื•ื ื™ื MySQL.

ื“ืจื™ืฉื•ืช ืกืคืฆื™ืคื™ื•ืช

ืœื‘ืกื™ืกื™ ื ืชื•ื ื™ื ืฉืœ ืกื“ืจื•ืช ื–ืžืŸ ื™ืฉ ื“ืจื™ืฉื•ืช ืกืคืฆื™ืคื™ื•ืช ืžืฉืœื”ื.

  • ื”ื›ื ืกื” ืžื”ื™ืจื” ืžืกื•ื›ื ื™ื ืจื‘ื™ื. ืขืœื™ื ื• ืœื”ื›ื ื™ืก ื ืชื•ื ื™ื ืžื–ืจืžื™ื ืจื‘ื™ื ื‘ืžื”ื™ืจื•ืช ืจื‘ื”. ืงืœื™ืงื”ืื•ืก ื”ื•ื ืขื•ืฉื” ื–ืืช ื”ื™ื˜ื‘ ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ื”ืชื•ืกืคื•ืช ืฉืœื• ืœื ื—ื•ืกืžื•ืช. ื›ืœ ืœื”ื›ื ื™ืก ื”ื•ื ืงื•ื‘ืฅ ื—ื“ืฉ ื‘ื“ื™ืกืง, ื•ื ื™ืชืŸ ืœืื—ืกืŸ ืชื•ืกืคื•ืช ืงื˜ื ื•ืช ื‘ืฆื•ืจื” ื›ื–ื• ืื• ืื—ืจืช. IN ืงืœื™ืงื”ืื•ืก ืขื“ื™ืฃ ืœื”ื›ื ื™ืก ื ืชื•ื ื™ื ื‘ืืฆื•ื•ืช ื’ื“ื•ืœื•ืช ื•ืœื ืฉื•ืจื” ืื—ืช ื‘ื›ืœ ืคืขื.
  • ืชื›ื ื™ืช ื’ืžื™ืฉื”. ื‘ืชื•ืš ืกื“ืจืช ื–ืžืŸ ืื ื—ื ื• ื‘ื“ืจืš ื›ืœืœ ืœื ื™ื•ื“ืขื™ื ืืช ืžื‘ื ื” ื”ื ืชื•ื ื™ื ืœื—ืœื•ื˜ื™ืŸ. ืืคืฉืจ ืœื‘ื ื•ืช ืžืขืจื›ืช ื ื™ื˜ื•ืจ ืœืืคืœื™ืงืฆื™ื” ืกืคืฆื™ืคื™ืช, ืื‘ืœ ืื– ืงืฉื” ืœื”ืฉืชืžืฉ ื‘ื” ืœืืคืœื™ืงืฆื™ื” ืื—ืจืช. ื–ื” ื“ื•ืจืฉ ืชื•ื›ื ื™ืช ื’ืžื™ืฉื” ื™ื•ืชืจ. ืงืœื™ืงื”ืื•ืก, ืžืืคืฉืจ ืœืš ืœืขืฉื•ืช ื–ืืช, ืœืžืจื•ืช ืฉื–ื” ื‘ืกื™ืก ืžื•ืงืœื“ ื—ื–ืง.
  • ืื—ืกื•ืŸ ื™ืขื™ืœ ื•ืฉื›ื—ืช ื ืชื•ื ื™ื. ื‘ื“ืจืš ื›ืœืœ ื‘ ืกื“ืจืช ื–ืžืŸ ื›ืžื•ืช ืขืฆื•ืžื” ืฉืœ ื ืชื•ื ื™ื, ื•ืœื›ืŸ ื™ืฉ ืœืื—ืกืŸ ืื•ืชื ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื›ื›ืœ ื”ืืคืฉืจ. ืœื“ื•ื’ืžื”, ื‘ InfluxDB ื“ื—ื™ืกื” ื˜ื•ื‘ื” ื”ื™ื ื”ืชื›ื•ื ื” ื”ืขื™ืงืจื™ืช ืฉืœื•. ืื‘ืœ ืžืœื‘ื“ ืื—ืกื•ืŸ, ืืชื” ื’ื ืฆืจื™ืš ืœื”ื™ื•ืช ืžืกื•ื’ืœ "ืœืฉื›ื•ื—" ื ืชื•ื ื™ื ื™ืฉื ื™ื ื•ืœืขืฉื•ืช ืกื•ื’ ื›ืœืฉื”ื• ื“ื’ื™ืžืช ื”ืคื—ืชื” - ืกืคื™ืจื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ืื’ืจื’ื˜ื™ื.
  • ืฉืื™ืœืชื•ืช ืžื”ื™ืจื•ืช ืขืœ ื ืชื•ื ื™ื ืžืฆื˜ื‘ืจื™ื. ืœืคืขืžื™ื ืžืขื ื™ื™ืŸ ืœื”ืกืชื›ืœ ืขืœ 5 ื”ื“ืงื•ืช ื”ืื—ืจื•ื ื•ืช ื‘ื“ื™ื•ืง ืฉืœ ืืœืคื™ื•ืช ืฉื ื™ื•ืช, ืื‘ืœ ื‘ื ืชื•ื ื™ื ื—ื•ื“ืฉื™ื™ื ื™ื™ืชื›ืŸ ืฉืœื ื™ื”ื™ื” ืฆื•ืจืš ื‘ืคื™ืจื•ื˜ ื“ืงื” ืื• ืฉื ื™ื” - ื“ื™ ื‘ืกื˜ื˜ื™ืกื˜ื™ืงื” ื›ืœืœื™ืช. ืชืžื™ื›ื” ืžื”ืกื•ื’ ื”ื–ื” ื”ื›ืจื—ื™ืช, ืื—ืจืช ื‘ืงืฉื” ืœ-3 ื—ื•ื“ืฉื™ื ื™ื™ืงื— ื”ืจื‘ื” ืžืื•ื“ ื–ืžืŸ ืœื”ืฉืœื™ื ื’ื ื‘ ืงืœื™ืงื”ืื•ืก.
  • ื‘ืงืฉื•ืช ื›ืžื• "ื ืงื•ื“ื” ืื—ืจื•ื ื”, ื ื›ื•ืŸ ืœื™ื•ืยป. ืืœื” ืื•ืคื™ื™ื ื™ื™ื ืœ ืกื“ืจืช ื–ืžืŸ ืฉืื™ืœืชื•ืช: ื”ืกืชื›ืœ ืขืœ ื”ืžื“ื™ื“ื” ืื• ื”ืžืฆื‘ ื”ืื—ืจื•ืŸ ืฉืœ ื”ืžืขืจื›ืช ื‘ืจื’ืข ื‘ื–ืžืŸ t. ืืœื• ืฉืื™ืœืชื•ืช ืœื ืžืื•ื“ ื ืขื™ืžื•ืช ืขื‘ื•ืจ ืžืกื“ ื ืชื•ื ื™ื, ืื‘ืœ ืืชื” ื’ื ืฆืจื™ืš ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื‘ืฆืข ืื•ืชืŸ.
  • ืกื“ืจืช ื–ืžืŸ "ื”ื“ื‘ืงื”".. ืกื“ืจืช ื–ืžืŸ ื”ื™ื ืกื“ืจืช ื–ืžืŸ. ืื ื™ืฉ ืฉืชื™ ืกื“ืจื•ืช ื–ืžืŸ, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ืฉ ืฆื•ืจืš ื‘ื—ื™ื‘ื•ืจ ื•ื‘ืงื•ืจืœืฆื™ื” ื‘ื™ื ื™ื”ืŸ. ืœื ื ื•ื— ืœืขืฉื•ืช ื–ืืช ื‘ื›ืœ ืžืกื“ื™ ื”ื ืชื•ื ื™ื, ื‘ืžื™ื•ื—ื“ ืขื ืกื“ืจื•ืช ื–ืžืŸ ืœื ืžื™ื•ืฉืจื•ืช: ื”ื ื” ื›ืžื” ื ืงื•ื“ื•ืช ื–ืžืŸ, ื™ืฉ ืื—ืจื•ืช. ืืชื” ื™ื›ื•ืœ ืœืฉืงื•ืœ ืžืžื•ืฆืข, ืื‘ืœ ืคืชืื•ื ืขื“ื™ื™ืŸ ื™ื”ื™ื” ืฉื ื—ื•ืจ, ืื– ื–ื” ืœื ื‘ืจื•ืจ.

ื‘ื•ื ื ืจืื” ื›ื™ืฆื“ ื”ื“ืจื™ืฉื•ืช ื”ืœืœื• ืžืชืงื™ื™ืžื•ืช ืงืœื™ืงื”ืื•ืก.

ืขืจื›ืชื™

ะ’ ืงืœื™ืงื”ืื•ืก ืชื•ื›ื ื™ืช ืขื‘ื•ืจ ืกื“ืจืช ื–ืžืŸ ื ื™ืชืŸ ืœืขืฉื•ืช ื‘ื“ืจื›ื™ื ืฉื•ื ื•ืช, ื‘ื”ืชืื ืœืžื™ื“ืช ืกื“ื™ืจื•ืช ื”ื ืชื•ื ื™ื. ืืคืฉืจ ืœื‘ื ื•ืช ืžืขืจื›ืช ืขืœ ื ืชื•ื ื™ื ืจื’ื™ืœื™ื ื›ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืืช ื›ืœ ื”ืžื“ื“ื™ื ืžืจืืฉ. ืœืžืฉืœ, ืขืฉื™ืชื™ ืืช ื–ื” CloudFlare ืขื ื ื™ื˜ื•ืจ CDN ื”ื™ื ืžืขืจื›ืช ืžื•ืชืืžืช ื”ื™ื˜ื‘. ื ื™ืชืŸ ืœื‘ื ื•ืช ืžืขืจื›ืช ื›ืœืœื™ืช ื™ื•ืชืจ ื”ืžื ื˜ืจืช ืืช ื›ืœ ื”ืชืฉืชื™ืช ื•ื”ืฉื™ืจื•ืชื™ื ื”ืฉื•ื ื™ื. ื‘ืžืงืจื” ืฉืœ ื ืชื•ื ื™ื ืœื ืกื“ื™ืจื™ื, ืื ื—ื ื• ืœื ื™ื•ื“ืขื™ื ืžืจืืฉ ืขืœ ืžื” ืื ื—ื ื• ืขื•ืงื‘ื™ื - ื•ื–ื” ื›ื ืจืื” ื”ืžืงืจื” ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ.

ื ืชื•ื ื™ื ืจื’ื™ืœื™ื. ืขืžื•ื“ื•ืช. ื”ืกื›ื™ืžื” ืคืฉื•ื˜ื” - ืขืžื•ื“ื•ืช ืขื ื”ืกื•ื’ื™ื ื”ื ื“ืจืฉื™ื:

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);

ื–ื•ื”ื™ ื˜ื‘ืœื” ืจื’ื™ืœื” ื”ืžื ื˜ืจืช ืื™ื–ื•ืฉื”ื™ ืคืขื™ืœื•ืช ื˜ืขื™ื ืช ืžืขืจื›ืช (ื”ืžืฉืชืžืฉ, ืžืขืจื›ืช, ืœื”ืชื‘ื˜ืœ, ื ื—ืžื“). ืคืฉื•ื˜ ื•ื ื•ื—, ืื‘ืœ ืœื ื’ืžื™ืฉ. ืื ืื ื—ื ื• ืจื•ืฆื™ื ืกื›ืžื” ื’ืžื™ืฉื” ื™ื•ืชืจ, ืื– ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืžืขืจื›ื™ื.

ื ืชื•ื ื™ื ืœื ืกื“ื™ืจื™ื. ืžืขืจื›ื™ื:

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 ...

ืžื‘ื ื” ืžืงื•ื ืŸ ื”ื ืฉื ื™ ืžืขืจื›ื™ื: metrics.name ะธ metrics.value. ื›ืืŸ ืืชื” ื™ื›ื•ืœ ืœืื—ืกืŸ ื ืชื•ื ื™ ื ื™ื˜ื•ืจ ืฉืจื™ืจื•ืชื™ื™ื ื›ืืœื” ื›ืžืขืจืš ืฉืœ ืฉืžื•ืช ื•ืžืขืจืš ืžื“ื™ื“ื•ืช ืขื‘ื•ืจ ื›ืœ ืื™ืจื•ืข. ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื ื•ืกืคืช, ื‘ืžืงื•ื ืžื‘ื ื” ืื—ื“ ื›ื–ื”, ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ื›ืžื”. ืœืžืฉืœ, ืื—ื“ ืขื‘ื•ืจ ืœืฆื•ืฃ-ืขืจืš, ืื—ืจ - ืขื‘ื•ืจ int-ื”ื›ื•ื•ื ื” ื›ื™ int ืื ื™ ืจื•ืฆื” ืœืื—ืกืŸ ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ.

ืื‘ืœ ืœืžื‘ื ื” ื›ื–ื” ืงืฉื” ื™ื•ืชืจ ืœื’ืฉืช. ืชืฆื˜ืจืš ืœื”ืฉืชืžืฉ ื‘ืžื‘ื ื” ืžื™ื•ื—ื“, ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ืžื™ื•ื—ื“ื•ืช ื›ื“ื™ ืœืฉืœื•ืฃ ืืช ื”ืขืจื›ื™ื ืฉืœ ืชื—ื™ืœื” ื”ืื™ื ื“ืงืก ื•ืœืื—ืจ ืžื›ืŸ ื”ืžืขืจืš:

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

ืื‘ืœ ื–ื” ืขื“ื™ื™ืŸ ืขื•ื‘ื“ ื“ื™ ืžื”ืจ. ื“ืจืš ื ื•ืกืคืช ืœืื—ืกืŸ ื ืชื•ื ื™ื ืœื ืกื“ื™ืจื™ื ื”ื™ื ืœืคื™ ืฉื•ืจื”.

ื ืชื•ื ื™ื ืœื ืกื“ื™ืจื™ื. ืžื—ืจื•ื–ื•ืช. ื‘ืฉื™ื˜ื” ืžืกื•ืจืชื™ืช ื–ื•, ืœืœื ืžืขืจื›ื™ื, ืฉืžื•ืช ื•ืขืจื›ื™ื ืžืื•ื—ืกื ื™ื ื‘ื• ื–ืžื ื™ืช. ืื 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. ืœื“ื•ื’ืžื”, maxIf - ืคื•ื ืงืฆื™ื” ืžื™ื•ื—ื“ืช ื”ืžื—ืฉื‘ืช ืืช ื”ืžืงืกื™ืžื•ื ืœืคื™ ืžื“ื“ ื›ืืฉืจ ืชื ืื™ ื›ืœืฉื”ื• ืžืชืงื™ื™ื. ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื›ืžื” ื‘ื™ื˜ื•ื™ื™ื ื›ืืœื” ื‘ื‘ืงืฉื” ืื—ืช ื•ืœื—ืฉื‘ ืžื™ื“ ืืช ื”ืขืจืš ืขื‘ื•ืจ ืžืกืคืจ ืžื“ื“ื™ื.

ื”ื‘ื” ื ืฉื•ื•ื” ืฉืœื•ืฉ ื’ื™ืฉื•ืช:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืคืจื˜ื™ื

ื›ืืŸ ื”ื•ืกืคืชื™ "ื’ื•ื“ืœ ื ืชื•ื ื™ ื“ื™ืกืง" ืขื‘ื•ืจ ืงื‘ื•ืฆืช ื ืชื•ื ื™ ื‘ื“ื™ืงื” ื›ืœืฉื”ื™. ื‘ืžืงืจื” ืฉืœ ืขืžื•ื“ื•ืช, ื™ืฉ ืœื ื• ืืช ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ: ื“ื—ื™ืกื” ืžืงืกื™ืžืœื™ืช, ืžื”ื™ืจื•ืช ืฉืื™ืœืชื” ืžืงืกื™ืžืœื™ืช, ืื‘ืœ ืื ื—ื ื• ืžืฉืœืžื™ื ืขืœ ื™ื“ื™ ื”ืฆื•ืจืš ืœื”ืงืœื™ื˜ ื”ื›ืœ ื‘ื‘ืช ืื—ืช.

ื‘ืžืงืจื” ืฉืœ ืžืขืจื›ื™ื, ื”ื›ืœ ืงืฆืช ื™ื•ืชืจ ื’ืจื•ืข. ื”ื ืชื•ื ื™ื ืขื“ื™ื™ืŸ ื“ื—ื•ืกื™ื ื”ื™ื˜ื‘ ื•ื ื™ืชืŸ ืœืื—ืกืŸ ื“ืคื•ืก ืœื ืกื“ื™ืจ. ืื‘ืœ ืงืœื™ืงื”ืื•ืก - ืžืกื“ ื ืชื•ื ื™ื ืขืžื•ื“ื™, ื•ื›ืฉืื ื—ื ื• ืžืชื—ื™ืœื™ื ืœืื—ืกืŸ ื”ื›ืœ ื‘ืžืขืจืš, ื”ื•ื ื”ื•ืคืš ืœืฉื•ืจื” ืื—ืช, ื•ืื ื—ื ื• ืžืฉืœืžื™ื ืขืœ ื’ืžื™ืฉื•ืช ื‘ื™ืขื™ืœื•ืช. ืœื›ืœ ืคืขื•ืœื” ืชืฆื˜ืจื›ื• ืœืงืจื•ื ืืช ื›ืœ ื”ืžืขืจืš ืœื–ื™ื›ืจื•ืŸ, ื•ืื– ืœืžืฆื•ื ื‘ื• ืืช ื”ืืœืžื ื˜ ื”ืจืฆื•ื™ โ€“ ื•ืื ื”ืžืขืจืš ื™ื’ื“ืœ, ืื– ื”ืžื”ื™ืจื•ืช ื™ื•ืจื“ืช.

ื‘ืื—ืช ื”ื—ื‘ืจื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘ื’ื™ืฉื” ื–ื• (ืœืžืฉืœ, ืกื•ืคืจ), ืžืขืจื›ื™ื ื ื—ืชื›ื™ื ืœื—ืชื™ื›ื•ืช ืฉืœ 128 ืืœืžื ื˜ื™ื. ื ืชื•ื ื™ื ืžื›ืžื” ืืœืคื™ ืžื“ื“ื™ื ื‘ื ืคื— ืฉืœ 200 TB ืฉืœ ื ืชื•ื ื™ื ืœื™ื•ื ืžืื•ื—ืกื ื™ื ืœื ื‘ืžืขืจืš ืื—ื“, ืืœื ื‘-10 ืื• 30 ืžืขืจื›ื™ื ืขื ื”ื™ื’ื™ื•ืŸ ืื—ืกื•ืŸ ืžื™ื•ื—ื“.

ื”ื’ื™ืฉื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ื”ื™ื ืขื ืžื—ืจื•ื–ื•ืช. ืื‘ืœ ื”ื ืชื•ื ื™ื ื“ื—ื•ืกื™ื ื‘ืฆื•ืจื” ื’ืจื•ืขื”, ื’ื•ื“ืœ ื”ื˜ื‘ืœื” ื’ื“ื•ืœ, ื•ื’ื ื›ืืฉืจ ื”ืฉืื™ืœืชื•ืช ืžื‘ื•ืกืกื•ืช ืขืœ ืžืกืคืจ ืžื“ื“ื™ื, ClickHouse ืœื ืขื•ื‘ื“ ื‘ืฆื•ืจื” ืื•ืคื˜ื™ืžืœื™ืช.

ืชื›ื ื™ืช ื”ื™ื‘ืจื™ื“ื™ืช

ื ื ื™ื— ืฉื‘ื—ืจื ื• ื‘ืžืขื’ืœ ืžืขืจืš. ืื‘ืœ ืื ืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉืจื•ื‘ ืœื•ื—ื•ืช ื”ืžื—ื•ื•ื ื™ื ืฉืœื ื• ืžืฆื™ื’ื™ื ืจืง ืžื“ื“ื™ ืžืฉืชืžืฉื™ื ื•ืžืขืจื›ืช, ื ื•ื›ืœ ื‘ื ื•ืกืฃ ืœืžืžืฉ ืืช ื”ืžื“ื“ื™ื ื”ืืœื” ืœืขืžื•ื“ื•ืช ืžืžืขืจืš ื‘ืจืžืช ื”ื˜ื‘ืœื” ื‘ื“ืจืš ื–ื•:

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);

ื‘ืขืช ื”ื›ื ืกืชื• ืงืœื™ืงื”ืื•ืก ื™ืกืคื•ืจ ืื•ืชื ืื•ื˜ื•ืžื˜ื™ืช. ื›ืš ืชื•ื›ืœื• ืœืฉืœื‘ ืขืกืงื™ื ืขื ื”ื ืื”: ื”ืชื›ื ื™ืช ื’ืžื™ืฉื” ื•ื›ืœืœื™ืช, ืื‘ืœ ืฉืœืคื ื• ืืช ื”ืขืžื•ื“ื•ืช ื”ื ืคื•ืฆื•ืช ื‘ื™ื•ืชืจ. ืฉื™ืžื• ืœื‘ ืฉื–ื” ืœื ื”ืฆืจื™ืš ืœืฉื ื•ืช ืืช ื”-Insert and ETLืฉืžืžืฉื™ืš ืœื”ื›ื ื™ืก ืžืขืจื›ื™ื ืœื˜ื‘ืœื”. ืคืฉื•ื˜ ืขืฉื™ื ื• ืœื•ื— ืืœื˜ืจ, ื”ื•ืกื™ืคื• ื›ืžื” ืจืžืงื•ืœื™ื ื•ืงื™ื‘ืœื ื• ืชื•ื›ื ื™ืช ื”ื™ื‘ืจื™ื“ื™ืช ื•ืžื”ื™ืจื” ื™ื•ืชืจ ืฉืชื•ื›ืœ ืœื”ืชื—ื™ืœ ืœื”ืฉืชืžืฉ ื‘ื” ืžื™ื“.

ืงื•ื“ืงื™ื ื•ื“ื—ื™ืกื”

ืขื‘ื•ืจ ืกื“ืจืช ื–ืžืŸ ื–ื” ืžืฉื ื” ื›ืžื” ื˜ื•ื‘ ืืชื” ืื•ืจื– ืืช ื”ื ืชื•ื ื™ื ื›ื™ ื›ืžื•ืช ื”ืžื™ื“ืข ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื’ื“ื•ืœื” ืžืื•ื“. IN ืงืœื™ืงื”ืื•ืก ื™ืฉ ืกื˜ ื›ืœื™ื ืœื”ืฉื’ืช ืืคืงื˜ ื“ื—ื™ืกื” ืฉืœ 1:10, 1:20 ื•ืœืคืขืžื™ื ื™ื•ืชืจ. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉ-1 TB ืฉืœ ื ืชื•ื ื™ื ืœื ืืจื•ื–ื™ื ื‘ื“ื™ืกืง ืชื•ืคืกื™ื 50-100 GB. ื’ื•ื“ืœ ืงื˜ืŸ ื™ื•ืชืจ ื”ื•ื ื˜ื•ื‘, ื ื™ืชืŸ ืœืงืจื•ื ื ืชื•ื ื™ื ื•ืœืขื‘ื“ ืื•ืชื ืžื”ืจ ื™ื•ืชืจ.

ื›ื“ื™ ืœื”ืฉื™ื’ ืจืžื” ื’ื‘ื•ื”ื” ืฉืœ ื“ื—ื™ืกื”, ืงืœื™ืงื”ืื•ืก ืชื•ืžืš ื‘ืงื•ื“ืงื™ื ื”ื‘ืื™ื:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื˜ื‘ืœื” ืœื“ื•ื’ืžื”:

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 ื“ึฐื—ึดื™ืกึธื”. ื›ืชื•ืฆืื” ืžื›ืš, ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ื‘ื“ื™ืกืง ืžืฆื˜ืžืฆื ืžืื•ื“:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื–ื” ืžืจืื” ื›ืžื” ืžืงื•ื ืชื•ืคืกื™ื ืื•ืชื ื ืชื•ื ื™ื, ืืš ื‘ืืžืฆืขื•ืช ืจื›ื™ื‘ื™ ืงื•ื“ืงื™ื ื•ื“ื—ื™ืกื•ืช ืฉื•ื ื•ืช:

  • ื‘ืงื•ื‘ืฅ GZIP ื‘ื“ื™ืกืง;
  • ื‘-ClickHouse ืœืœื ืงื•ื“ืงื™ื, ืื‘ืœ ืขื ื“ื—ื™ืกืช ZSTD;
  • ื‘-ClickHouse ืขื ืงื•ื“ืงื™ื ื•ื“ื—ื™ืกื” LZ4 ื•-ZSTD.

ื ื™ืชืŸ ืœืจืื•ืช ืฉื˜ื‘ืœืื•ืช ืขื ืงื•ื“ืงื™ื ืชื•ืคืกื™ื ื”ืจื‘ื” ืคื—ื•ืช ืžืงื•ื.

ื’ื•ื“ืœ ื—ืฉื•ื‘

ืœื ืคื—ื•ืช ื—ืฉื•ื‘ ะ’ั‹ะฑั€ะฐั‚ัŒ ืกื•ื’ ื”ื ืชื•ื ื™ื ื”ื ื›ื•ืŸ:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื‘ื›ืœ ื”ื“ื•ื’ืžืื•ืช ืœืžืขืœื” ื”ืฉืชืžืฉืชื™ 64. ืจื—ื•ื‘. ืื‘ืœ ืื ื‘ื—ืจื ื• 32. ืจื—ื•ื‘, ืื– ื–ื” ื™ื”ื™ื” ืืคื™ืœื• ื™ื•ืชืจ ื˜ื•ื‘. ื–ื” ื”ื•ื›ื— ื”ื™ื˜ื‘ ืขืœ ื™ื“ื™ ื”ื—ื‘ืจ'ื” ืžืคืจืงื•ื ื” ื‘ืžืืžืจ ื”ืžืงื•ืฉืจ ืœืžืขืœื”. ื—ืฉื•ื‘ ืœื”ืฉืชืžืฉ ื‘ืกื•ื’ ื”ืงื•ืžืคืงื˜ื™ ื‘ื™ื•ืชืจ ืฉืžืชืื™ื ืœืžืฉื™ืžื”: ืืคื™ืœื• ืคื—ื•ืช ืœื’ื•ื“ืœ ื”ื“ื™ืกืง ืžืืฉืจ ืœืžื”ื™ืจื•ืช ื”ืฉืื™ืœืชื”. ืงืœื™ืงื”ืื•ืก ืžืื•ื“ ืจื’ื™ืฉ ืœื–ื”.

ืื ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ int32 ื‘ืžืงื•ื int64, ืื– ืฆืคื• ืœืขืœื™ื™ื” ืฉืœ ื›ืžืขื˜ ืคื™ ืฉื ื™ื™ื ื‘ื‘ื™ืฆื•ืขื™ื. ื”ื ืชื•ื ื™ื ืชื•ืคืกื™ื ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ, ื•ื›ืœ ื”"ื—ืฉื‘ื•ืŸ" ืขื•ื‘ื“ ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ. ืงืœื™ืงื”ืื•ืก ืžื‘ื—ื™ื ื” ืคื ื™ืžื™ืช ื–ื•ื”ื™ ืžืขืจื›ืช ืžื•ื“ืคืกืช ืžืื•ื“; ื”ื™ื ืขื•ืฉื” ืฉื™ืžื•ืฉ ืžืจื‘ื™ ื‘ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ืฉืžืขืจื›ื•ืช ืžื•ื“ืจื ื™ื•ืช ืžืกืคืงื•ืช.

ืฆื‘ื™ืจื” ื• ืชืฆื•ื’ื•ืช ืžืžื•ืžืฉื•ืช

ืฆื‘ื™ืจื” ื•ืชืฆื•ื’ื•ืช ืžืžื•ืžืฉื•ืช ืžืืคืฉืจื•ืช ืœืš ืœื™ืฆื•ืจ ืื’ืจื’ื˜ื™ื ืœืื™ืจื•ืขื™ื ืฉื•ื ื™ื:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืœื“ื•ื’ืžื”, ื™ื™ืชื›ืŸ ืฉื™ืฉ ืœืš ื ืชื•ื ื™ ืžืงื•ืจ ืœื ืžืฆื˜ื‘ืจื™ื, ื•ืชื•ื›ืœ ืœืฆืจืฃ ืืœื™ื”ื ืชืฆื•ื’ื•ืช ืžื’ื•ืฉืžื•ืช ืขื ืกื™ื›ื•ื ืื•ื˜ื•ืžื˜ื™ ื‘ืืžืฆืขื•ืช ืžื ื•ืข ืžื™ื•ื—ื“ SummingMergeTree (SMT). SMT ื”ื•ื ืžื‘ื ื” ื ืชื•ื ื™ื ืฆื‘ื™ืจืช ืžื™ื•ื—ื“ ืฉืžื—ืฉื‘ ืื’ืจื’ื˜ื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™. ื ืชื•ื ื™ื ื’ื•ืœืžื™ื™ื ืžื•ื›ื ืกื™ื ืœืžืกื“ ื”ื ืชื•ื ื™ื, ื”ื ื ืฆื‘ืจื™ื ืื•ื˜ื•ืžื˜ื™ืช, ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืžื™ื™ื“ื™ืช ื‘ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื.

TTL - "ืœืฉื›ื—" ื ืชื•ื ื™ื ื™ืฉื ื™ื

ืื™ืš "ืœืฉื›ื•ื—" ื ืชื•ื ื™ื ืฉื›ื‘ืจ ืื™ืŸ ืฆื•ืจืš ื‘ื”ื? ืงืœื™ืงื”ืื•ืก ื™ื•ื“ืข ืื™ืš ืœืขืฉื•ืช ืืช ื–ื”. ื‘ืขืช ื™ืฆื™ืจืช ื˜ื‘ืœืื•ืช, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ 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 */

ืจื‘ ืฉื›ื‘ืชื™ - ืœื—ืœืง ื ืชื•ื ื™ื ืขืœ ืคื ื™ ื“ื™ืกืงื™ื

ืื ืœื•ืงื—ื™ื ืืช ื”ืจืขื™ื•ืŸ ื”ื–ื” ื”ืœืื”, ื ื™ืชืŸ ืœืื—ืกืŸ ื ืชื•ื ื™ื ืงืœื™ืงื”ืื•ืก ื‘ืžืงื•ืžื•ืช ืฉื•ื ื™ื. ื ื ื™ื— ืฉืื ื• ืจื•ืฆื™ื ืœืื—ืกืŸ ื ืชื•ื ื™ื ื—ืžื™ื ืขื‘ื•ืจ ื”ืฉื‘ื•ืข ื”ืื—ืจื•ืŸ ื‘ืžืงื•ืžื•ืŸ ืžื”ื™ืจ ืžืื•ื“ SSD, ื•ืฉืžื ื• ื ืชื•ื ื™ื ื”ื™ืกื˜ื•ืจื™ื™ื ื ื•ืกืคื™ื ื‘ืžืงื•ื ืื—ืจ. IN ืงืœื™ืงื”ืื•ืก ื–ื” ืืคืฉืจื™ ืขื›ืฉื™ื•:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืžื“ื™ื ื™ื•ืช ืื—ืกื•ืŸ (ืžื“ื™ื ื™ื•ืช ืื—ืกื•ืŸ) ื›ืš ืงืœื™ืงื”ืื•ืก ื™ืขื‘ื™ืจ ื ืชื•ื ื™ื ืื•ื˜ื•ืžื˜ื™ืช ืขื ื”ื’ืขื” ืœืชื ืื™ื ืžืกื•ื™ืžื™ื ืœืื—ืกื•ืŸ ืื—ืจ.

ืื‘ืœ ื–ื” ืœื ื”ื›ืœ. ื‘ืจืžืช ื˜ื‘ืœื” ืกืคืฆื™ืคื™ืช, ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ื›ืœืœื™ื ื‘ื“ื™ื•ืง ืžืชื™ ื”ื ืชื•ื ื™ื ื ื›ื ืกื™ื ืœืื—ืกื•ืŸ ืงืจ. ืœื“ื•ื’ืžื”, ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘ื“ื™ืกืง ืžื”ื™ืจ ืžืื•ื“ ืœืžืฉืš 7 ื™ืžื™ื, ื•ื›ืœ ืžื” ืฉื™ืฉืŸ ื™ื•ืชืจ ืžื•ืขื‘ืจ ืœืื™ื˜ื™. ื–ื” ื˜ื•ื‘ ื›ื™ ื–ื” ืžืืคืฉืจ ืœืš ืœืฉืžื•ืจ ืขืœ ื‘ื™ืฆื•ืขื™ื ืžืงืกื™ืžืœื™ื™ื ืฉืœ ื”ืžืขืจื›ืช, ืชื•ืš ืฉืœื™ื˜ื” ื‘ืขืœื•ื™ื•ืช ื•ืœื ื‘ื–ื‘ื•ื– ื›ืกืฃ ืขืœ ื ืชื•ื ื™ื ืงืจื™ื:

CREATE TABLE 
... 
TTL date + INTERVAL 7 DAY TO VOLUME 'cold_volume', 
    date + INTERVAL 180 DAY DELETE

ื”ื–ื“ืžื ื•ื™ื•ืช ื™ื™ื—ื•ื“ื™ื•ืช ืงืœื™ืงื”ืื•ืก

ื›ืžืขื˜ ื‘ื›ืœ ื“ื‘ืจ ืงืœื™ืงื”ืื•ืก ื™ืฉ "ื”ื™ื™ืœื™ื™ื˜ืก" ื›ืืœื”, ืื‘ืœ ื”ื ืžืชืงื–ื–ื™ื ืขืœ ื™ื“ื™ ื‘ืœืขื“ื™ื•ืช - ื“ื‘ืจ ืฉืœื ื ืžืฆื ื‘ืžืื’ืจื™ ืžื™ื“ืข ืื—ืจื™ื. ืœื“ื•ื’ืžื”, ื”ื ื” ื›ืžื” ืžื”ืชื›ื•ื ื•ืช ื”ื™ื™ื—ื•ื“ื™ื•ืช ืงืœื™ืงื”ืื•ืก:

  • ืžืขืจื›ื™ื. ื‘ืชื•ืš ืงืœื™ืงื”ืื•ืก ืชืžื™ื›ื” ื˜ื•ื‘ื” ืžืื•ื“ ืขื‘ื•ืจ ืžืขืจื›ื™ื, ื›ืžื• ื’ื ื”ื™ื›ื•ืœืช ืœื‘ืฆืข ื—ื™ืฉื•ื‘ื™ื ืžื•ืจื›ื‘ื™ื ืขืœื™ื”ื.
  • ืฆื‘ื™ืจืช ืžื‘ื ื™ ื ืชื•ื ื™ื. ื–ื• ืื—ืช ื”"ืชื›ื•ื ื•ืช ื”ืจื•ืฆื—ื•ืช" ืงืœื™ืงื”ืื•ืก. ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื”ื—ื‘ืจ'ื” ืžื™ืื ื“ืงืก ืื•ืžืจื™ื ืฉืื ื—ื ื• ืœื ืจื•ืฆื™ื ืœืฆื‘ื•ืจ ื ืชื•ื ื™ื, ื”ื›ืœ ืžืฆื˜ื‘ืจ ื‘ ืงืœื™ืงื”ืื•ืก, ื›ื™ ื–ื” ืžื”ื™ืจ ื•ื ื•ื—.
  • ืฆืคื™ื•ืช ืžืžื•ืžืฉื•ืช. ื™ื—ื“ ืขื ืžื‘ื ื™ ื ืชื•ื ื™ื ืžืฆื˜ื‘ืจื™ื, ืชืฆื•ื’ื•ืช ืžืžื•ืžืฉื•ืช ืžืืคืฉืจื•ืช ืœืš ืœืขืฉื•ืช ื ื•ื—ื•ืช ื–ืžืŸ ืืžืช ืฆื‘ื™ืจื”.
  • ClickHouse SQL. ื–ื•ื”ื™ ื”ืจื—ื‘ื” ืœืฉืคื” SQL ืขื ื›ืžื” ืชื›ื•ื ื•ืช ื ื•ืกืคื•ืช ื•ื‘ืœืขื“ื™ื•ืช ื”ื–ืžื™ื ื•ืช ืจืง ื‘ ืงืœื™ืงื”ืื•ืก. ื‘ืขื‘ืจ ื–ื” ื”ื™ื” ื›ืžื• ื”ืจื—ื‘ื” ืžืฆื“ ืื—ื“, ื•ื—ื™ืกืจื•ืŸ ืžืฆื“ ืฉื ื™. ืขื›ืฉื™ื• ื›ืžืขื˜ ื›ืœ ื”ื—ืกืจื•ื ื•ืช ืœืขื•ืžืช SQL 92 ื”ืกืจื ื• ืืช ื–ื”, ืขื›ืฉื™ื• ื–ื” ืจืง ื”ืจื—ื‘ื”.
  • ืœืžื‘ื“ื”-ื‘ื™ื˜ื•ื™ื™ื. ื”ืื ื”ื ืขื“ื™ื™ืŸ ื‘ื‘ืกื™ืก ื ืชื•ื ื™ื ื›ืœืฉื”ื•?
  • ML-ืชืžื™ื›ื”. ื–ื” ื–ืžื™ืŸ ื‘ืžืกื“ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื, ื—ืœืงื ื˜ื•ื‘ื™ื ื™ื•ืชืจ, ื—ืœืงื ื’ืจื•ืขื™ื ื™ื•ืชืจ.
  • ืงื•ื“ ืคืชื•ื—. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืจื—ื™ื‘ ืงืœื™ืงื”ืื•ืก ื™ึทื—ึทื“. ืขื›ืฉื™ื• ื‘ ืงืœื™ืงื”ืื•ืก ื›-500 ืชื•ืจืžื™ื, ื•ืžืกืคืจ ื–ื” ื’ื“ืœ ืœืœื ื”ืจืฃ.

ืฉืื™ืœืชื•ืช ืžืกื•ื‘ื›ื•ืช

ะ’ ืงืœื™ืงื”ืื•ืก ื™ืฉ ื”ืจื‘ื” ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœืขืฉื•ืช ืืช ืื•ืชื• ื”ื“ื‘ืจ. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœื”ื—ื–ื™ืจ ืืช ื”ืขืจืš ื”ืื—ืจื•ืŸ ืžื˜ื‘ืœื” ื‘ืฉืœื•ืฉ ื“ืจื›ื™ื ืฉื•ื ื•ืช ืขื‘ื•ืจ CPU (ื™ืฉ ื’ื ืจื‘ื™ืขื™ืช, ืื‘ืœ ื”ื™ื ืืคื™ืœื• ื™ื•ืชืจ ืืงื–ื•ื˜ื™ืช).

ื”ืจืืฉื•ืŸ ืžืจืื” ื›ืžื” ื ื•ื— ืœืขืฉื•ืช ื‘ื• ืงืœื™ืงื”ืื•ืก ืฉืื™ืœืชื•ืช ื›ืืฉืจ ืืชื” ืจื•ืฆื” ืœื‘ื“ื•ืง ืืช ื–ื” ื˜ื™ืคืœ ื”ื›ืœื•ืœ ื‘ืฉืื™ืœืชืช ื”ืžืฉื ื”. ื–ื” ืžืฉื”ื• ืฉืžืžืฉ ื”ืชื’ืขื’ืขืชื™ ืืœื™ื• ื‘ืžืื’ืจื™ ืžื™ื“ืข ืื—ืจื™ื. ืื ืื ื™ ืจื•ืฆื” ืœื”ืฉื•ื•ืช ืžืฉื”ื• ืขื ืฉืื™ืœืชืช ืžืฉื ื”, ืื– ื‘ืžืกื“ื™ ื ืชื•ื ื™ื ืื—ืจื™ื ื ื™ืชืŸ ืœื”ืฉื•ื•ืช ืื™ืชื• ืจืง ืกืงืœืืจ, ืื‘ืœ ืขื‘ื•ืจ ื›ืžื” ืขืžื•ื“ื•ืช ืื ื™ ืฆืจื™ืš ืœื›ืชื•ื‘ ืœื”ืฆื˜ืจืฃ. ื‘ืชื•ืš ืงืœื™ืงื”ืื•ืก ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ 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 

ะ’ ืงืœื™ืงื”ืื•ืก ื™ืฉ ื›ืžื” ืขืฉืจื•ืช ืคื•ื ืงืฆื™ื•ืช ืžืฆื˜ื‘ืจื•ืช, ื•ืื ืืชื” ืžืฉืชืžืฉ ื‘ืงื•ืžื‘ื™ื ื˜ื•ืจื™ื, ืื– ืœืคื™ ื—ื•ืงื™ ื”ืงื•ืžื‘ื™ื ื˜ื•ืจื™ืงื” ืชืงื‘ืœ ื›ืืœืฃ ืžื”ืŸ. ืืจื’ืžืงืก - ืื—ืช ื”ืคื•ื ืงืฆื™ื•ืช ืฉืžื—ืฉื‘ื•ืช ืืช ื”ืขืจืš ื”ืžืงืกื™ืžืœื™: ื”ื‘ืงืฉื” ืžื—ื–ื™ืจื” ืืช ื”ืขืจืš usage_user, ืฉื‘ื• ืžื’ื™ืขื™ื ืœืขืจืš ื”ืžืงืกื™ืžืœื™ ื ื•ืฆืจ ื‘:

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 ืžืืคืฉืจ ืœืš ืœื”ืขื‘ื™ืจ ื•ืœืžื–ื’ ืื•ืชื ื‘ื‘ืงืฉื” ืื—ืช. ืขื‘ื•ืจ ื›ืœ ืขืจืš ื‘ืกื“ืจืช ื–ืžืŸ ืื—ืช, ื ืžืฆื ื”ืขืจืš ื”ืงืจื•ื‘ ื‘ื™ื•ืชืจ ื‘ืื—ืจืช, ื•ื”ื ืžื•ื—ื–ืจื™ื ื‘ืื•ืชื” ืฉื•ืจื”:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืคื•ื ืงืฆื™ื•ืช ืื ืœื™ื˜ื™ื•ืช

ื‘ืชืงืŸ 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 ื•ื›ื ืจืื” ืœืขื•ืœื ืœื ื™ืขืฉื” ืืช ื–ื”. ื‘ืžืงื•ื ื–ืืช, ื‘ ืงืœื™ืงื”ืื•ืก ื ื”ื•ื’ ืœื›ืชื•ื‘ ื›ืš:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื”ื‘ื˜ื—ืชื™ ืœืžื‘ื“ื•ืช - ื”ื ื” ื”ืŸ ื›ืืŸ!

ื–ื”ื• ืื ืœื•ื’ื™ ืœืฉืื™ืœืชื” ื”ืื ืœื™ื˜ื™ืช ื‘ืชืงืŸ SQL-2003: ื”ื•ื ืกื•ืคืจ ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื”ืฉื ื™ื™ื ื—ื•ืชืžืช ื–ืžืŸ, ืžืฉืš, ืžืกืคืจ ืกื™ื“ื•ืจื™ - ื›ืœ ืžื” ืฉืื ื• ืžื—ืฉื™ื‘ื™ื ื‘ื“ืจืš ื›ืœืœ ืœืคื•ื ืงืฆื™ื•ืช ืื ืœื™ื˜ื™ื•ืช. IN ืงืœื™ืงื”ืื•ืก ืื ื—ื ื• ืกื•ืคืจื™ื ืื•ืชื ื“ืจืš ืžืขืจื›ื™ื: ืงื•ื“ื ืื ื—ื ื• ืžื›ื•ื•ืฆื™ื ืืช ื”ื ืชื•ื ื™ื ืœืžืขืจืš, ืื—ืจื™ ื–ื” ืื ื—ื ื• ืขื•ืฉื™ื ืืช ื›ืœ ืžื” ืฉืื ื—ื ื• ืจื•ืฆื™ื ืขืœ ื”ืžืขืจืš, ื•ืื– ืื ื—ื ื• ืžืจื—ื™ื‘ื™ื ืื•ืชื• ื‘ื—ื–ืจื”. ื–ื” ืœื ืžืื•ื“ ื ื•ื—, ื–ื” ื“ื•ืจืฉ ืื”ื‘ื” ืœืชื›ื ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ ืœื›ืœ ื”ืคื—ื•ืช, ืื‘ืœ ื–ื” ืžืื•ื“ ื’ืžื™ืฉ.

ืžืืคื™ื™ื ื™ื ืžื™ื•ื—ื“ื™ื

ื—ื•ืฅ ืžื–ื”, ื‘ ืงืœื™ืงื”ืื•ืก ืคื•ื ืงืฆื™ื•ืช ืžื™ื•ื—ื“ื•ืช ืจื‘ื•ืช. ืœื“ื•ื’ืžื”, ื›ื™ืฆื“ ืœืงื‘ื•ืข ื›ืžื” ืžืคื’ืฉื™ื ืžืชืงื™ื™ืžื™ื ื‘ื• ื–ืžื ื™ืช? ืžืฉื™ืžืช ื ื™ื˜ื•ืจ ื˜ื™ืคื•ืกื™ืช ื”ื™ื ืœืงื‘ื•ืข ืืช ื”ืขื•ืžืก ื”ืžืจื‘ื™ ื‘ืืžืฆืขื•ืช ื‘ืงืฉื” ืื—ืช. IN ืงืœื™ืงื”ืื•ืก ื™ืฉ ืคื•ื ืงืฆื™ื” ืžื™ื•ื—ื“ืช ืœืžื˜ืจื” ื–ื•:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื‘ืื•ืคืŸ ื›ืœืœื™, ืœ- ClickHouse ื™ืฉ ืคื•ื ืงืฆื™ื•ืช ืžื™ื•ื—ื“ื•ืช ืœืžื˜ืจื•ืช ืจื‘ื•ืช:

  • runningDifference, runningAccumulate, ืฉื›ืŸ;
  • sumMap(ืžืคืชื—, ืขืจืš);
  • timeSeriesGroupSum(uid, ื—ื•ืชืžืช ื–ืžืŸ, ืขืจืš);
  • timeSeriesGroupRateSum(uid, timestamp, value);
  • skewPop, skewSamp, kurtPop, kurtSamp;
  • ืขื ืžื™ืœื•ื™ / ืขื ืงืฉืจื™ื;
  • simpleLinearRegression, stochasticLinearRegression.

ื–ื• ืœื ืจืฉื™ืžื” ืžืœืื” ืฉืœ ืคื•ื ืงืฆื™ื•ืช, ื™ืฉ 500-600 ื‘ืกืš ื”ื›ืœ. ืจืžื–: ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช ื‘ ืงืœื™ืงื”ืื•ืก ื ืžืฆื ื‘ื˜ื‘ืœืช ื”ืžืขืจื›ืช (ืœื ื›ื•ืœื ืžืชื•ืขื“ื™ื, ืื‘ืœ ื›ื•ืœื ืžืขื ื™ื™ื ื™ื):

select * from system.functions order by name

ืงืœื™ืงื”ืื•ืก ื”ื•ื ืžืื—ืกืŸ ืžื™ื“ืข ืจื‘ ืขืœ ืขืฆืžื•, ื›ื•ืœืœ ื˜ื‘ืœืื•ืช ื™ื•ืžืŸ, query_log, ื™ื•ืžืŸ ืžืขืงื‘, ื™ื•ืžืŸ ืคืขื•ืœื•ืช ืขื ื‘ืœื•ืงื™ ื ืชื•ื ื™ื (ื—ืœืง_ื™ื•ืžืŸ), ื™ื•ืžืŸ ืžื“ื“ื™ื ื•ื™ื•ืžืŸ ืžืขืจื›ืช, ืฉื”ื•ื ื‘ื“ืจืš ื›ืœืœ ื›ื•ืชื‘ ืœื“ื™ืกืง. ืžื“ื“ื™ ื™ื•ืžืŸ ื”ื™ื ืกื“ืจืช ื–ืžืŸ ะฒ ืงืœื™ืงื”ืื•ืก ืœืžืขืฉื” ืงืœื™ืงื”ืื•ืก: ืžืกื“ ื”ื ืชื•ื ื™ื ืขืฆืžื• ื™ื›ื•ืœ ืœืฉื—ืง ืชืคืงื™ื“ ืกื“ืจืช ื–ืžืŸ ืžืื’ืจื™ ืžื™ื“ืข, ื•ื‘ื›ืš "ื–ื•ืœืœ" ืืช ืขืฆืžื•.

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื–ื” ื’ื ื“ื‘ืจ ื™ื™ื—ื•ื“ื™ - ืฉื›ืŸ ืื ื—ื ื• ืขื•ืฉื™ื ืขื‘ื•ื“ื” ื˜ื•ื‘ื” ืขื‘ื•ืจ ืกื“ืจืช ื–ืžืŸ, ืœืžื” ืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื ืœืื—ืกืŸ ืืช ื›ืœ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ื‘ืชื•ื›ื ื•? ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืคืจื•ืžืชืื•ืก, ืื ื—ื ื• ืฉื•ืžืจื™ื ื”ื›ืœ ืœืขืฆืžื ื•. ืžึฐื—ื•ึผื‘ึผึธืจ ื’ืจืคื ื” ื•ืื ื—ื ื• ืขื•ืงื‘ื™ื ืื—ืจ ืขืฆืžื ื•. ืœืขื•ืžืช ื–ืืช, ืื ืงืœื™ืงื”ืื•ืก ื ื•ืคืœ, ืœื ื ืจืื” ืœืžื”, ืื– ื”ื ื‘ื“ืจืš ื›ืœืœ ืœื ืขื•ืฉื™ื ืืช ื–ื”.

ืืฉื›ื•ืœ ื’ื“ื•ืœ ืื• ื”ืจื‘ื” ืงื˜ื ื™ื ืงืœื™ืงื”ืื•ืก

ืžื” ืขื“ื™ืฃ - ืืฉื›ื•ืœ ืื—ื“ ื’ื“ื•ืœ ืื• ื”ืจื‘ื” ื‘ืชื™ ืงืœื™ืงื™ื ืงื˜ื ื™ื? ื’ื™ืฉื” ืžืกื•ืจืชื™ืช ืœ DWH ื”ื•ื ืืฉื›ื•ืœ ื’ื“ื•ืœ ืฉื‘ื• ืžื•ืงืฆื™ื ืžืขื’ืœื™ื ืœื›ืœ ื™ื™ืฉื•ื. ื”ื’ืขื ื• ืœืžื ื”ืœ ืžืกื“ ื”ื ืชื•ื ื™ื - ืชืŸ ืœื ื• ืชืจืฉื™ื, ื•ื”ื ื ืชื ื• ืœื ื• ืื—ื“:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ะ’ ืงืœื™ืงื”ืื•ืก ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ืืช ื–ื” ืื—ืจืช. ืืชื” ื™ื›ื•ืœ ืœื”ืคื•ืš ื›ืœ ื™ื™ืฉื•ื ืœืฉืœืš ืงืœื™ืงื”ืื•ืก:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืืช ื”ืžืคืœืฆืชื™ืช ื”ื’ื“ื•ืœื” ื™ื•ืชืจ DWH ื•ืžื ื”ืœื™ื ื‘ืœืชื™ ืคืชื™ืจื™ื. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืชืช ืœื›ืœ ืืคืœื™ืงืฆื™ื” ืžืฉืœื” ืงืœื™ืงื”ืื•ืก, ื•ื”ืžืคืชื— ื™ื›ื•ืœ ืœืขืฉื•ืช ื–ืืช ื‘ืขืฆืžื•, ืฉื›ืŸ ืงืœื™ืงื”ืื•ืก ืงืœ ืžืื•ื“ ืœื”ืชืงื ื” ื•ืื™ื ื• ื“ื•ืจืฉ ื ื™ื”ื•ืœ ืžื•ืจื›ื‘:

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ืื‘ืœ ืื ื™ืฉ ืœื ื• ื”ืจื‘ื” ืงืœื™ืงื”ืื•ืก, ื•ืืชื” ืฆืจื™ืš ืœื”ืชืงื™ืŸ ืื•ืชื• ืœืขืชื™ื ืงืจื•ื‘ื•ืช, ืื– ืืชื” ืจื•ืฆื” ืœื”ืคื•ืš ืืช ื”ืชื”ืœื™ืš ื”ื–ื” ืœืื•ื˜ื•ืžื˜ื™. ืœืฉื ื›ืš ื ื•ื›ืœ, ืœืžืฉืœ, ืœื”ืฉืชืžืฉ ืงื•ื‘ืจื ื˜ ะธ ื‘ื™ืช ืงืœื™ืง-ืžึทืคืขึดื™ืœ. IN Kubernetes ClickHouse ืืชื” ื™ื›ื•ืœ ืœืฉื™ื ืืช ื–ื” "ื‘ืœื—ื™ืฆื”": ืื ื™ ื™ื›ื•ืœ ืœืœื—ื•ืฅ ืขืœ ื›ืคืชื•ืจ, ืœื”ืคืขื™ืœ ืืช ื”ืžื ื™ืคืกื˜ ื•ืžืกื“ ื”ื ืชื•ื ื™ื ืžื•ื›ืŸ. ืื ื™ ื™ื›ื•ืœ ืžื™ื“ ืœื™ืฆื•ืจ ื“ื™ืื’ืจืžื”, ืœื”ืชื—ื™ืœ ืœื”ืขืœื•ืช ืฉื ืžื“ื“ื™ื, ื•ืชื•ืš 5 ื“ืงื•ืช ื™ืฉ ืœื™ ืœื•ื— ืžื—ื•ื•ื ื™ื ืžื•ื›ืŸ ื’ืจืคื ื”. ื–ื” ื›ืœ ื›ืš ืคืฉื•ื˜!

ื”ืชื•ืฆืื”?

ืœืคื™ื›ืš, ืงืœื™ืงื”ืื•ืก - ื–ื”:

  • ืžื”ืจ. ื›ื•ืœื ื™ื•ื“ืขื™ื ืืช ื–ื”.
  • ืจืง. ืงืฆืช ืฉื ื•ื™ ื‘ืžื—ืœื•ืงืช, ืื‘ืœ ืื ื™ ืžืืžื™ืŸ ืฉื–ื” ืงืฉื” ื‘ืื™ืžื•ื ื™ื, ืงืœ ื‘ืœื—ื™ืžื”. ืื ืืชื” ืžื‘ื™ืŸ ืื™ืš ืงืœื™ืงื”ืื•ืก ื–ื” ืขื•ื‘ื“, ื•ืื– ื”ื›ืœ ืžืื•ื“ ืคืฉื•ื˜.
  • ื‘ืื•ืคืŸ ืื•ื ื™ื‘ืจืกืœื™. ื–ื” ืžืชืื™ื ืœืชืจื—ื™ืฉื™ื ืฉื•ื ื™ื: DWH, ืกื“ืจืช ื–ืžืŸ, ืื—ืกื•ืŸ ื™ื•ืžื ื™ื. ืื‘ืœ ื–ื” ืœื OLTP ืžืกื“ ื ืชื•ื ื™ื, ืื– ืืœ ืชื ืกื” ืœื‘ืฆืข ื”ื•ืกืคื•ืช ื•ืงืจื™ืื•ืช ืงืฆืจื•ืช ืฉื.
  • ืžืขื ื™ื™ืŸ. ื›ื ืจืื” ื–ื” ืฉืขื•ื‘ื“ ืื™ืชื• ืงืœื™ืงื”ืื•ืก, ื—ื•ื•ื” ืจื’ืขื™ื ืžืขื ื™ื™ื ื™ื ืจื‘ื™ื ื‘ืžื•ื‘ืŸ ื”ื˜ื•ื‘ ื•ื”ืจืข. ืœืžืฉืœ, ื™ืฆืื” ืžื”ื“ื•ืจื” ื—ื“ืฉื”, ื”ื›ืœ ื”ืคืกื™ืง ืœืขื‘ื•ื“. ืื• ื›ืืฉืจ ื ืื‘ืงืช ื‘ืžืฉื™ืžื” ื‘ืžืฉืš ื™ื•ืžื™ื™ื, ืืš ืœืื—ืจ ืฉืฉืืœืช ืฉืืœื” ื‘ืฆ'ืื˜ ื‘ื˜ืœื’ืจื, ื”ืžืฉื™ืžื” ื ืคืชืจื” ืชื•ืš ืฉืชื™ ื“ืงื•ืช. ืื• ื›ืžื• ื‘ื›ื ืก ื‘ื“ื™ื•ื•ื— ืฉืœ ืœืฉื” ืžื™ืœื•ื‘ื™ื“ื•ื‘, ืฆื™ืœื•ื ืžืกืš ืž ืงืœื™ืงื”ืื•ืก ืฉื‘ืจ ืืช ื”ืฉื™ื“ื•ืจ HighLoad ++. ื“ื‘ืจื™ื ื›ืืœื” ืงื•ืจื™ื ื›ืœ ื”ื–ืžืŸ ื•ืžืงืฉื™ื ืขืœ ื—ื™ื™ื ื•. ืงืœื™ืงื”ืื•ืก ื‘ื”ื™ืจ ื•ืžืขื ื™ื™ืŸ!

ื ื™ืชืŸ ืœืฆืคื•ืช ื‘ืžืฆื’ืช ื›ืืŸ.

ืžืขื‘ืจ ืœืงืœื™ืงื”ืื•ืก: 3 ืฉื ื™ื ืžืื•ื—ืจ ื™ื•ืชืจ

ื”ืžืคื’ืฉ ื”ืžื™ื•ื—ืœ ืฉืœ ืžืคืชื—ื™ ืžืขืจื›ื•ืช ืขื•ืžืก ื’ื‘ื•ื” ื‘ HighLoad ++ ื™ืชืงื™ื™ื ื‘-9 ื•ื‘-10 ื‘ื ื•ื‘ืžื‘ืจ ื‘ืกืงื•ืœืงื•ื‘ื•. ืœื‘ืกื•ืฃ, ื–ื” ื™ื”ื™ื” ื•ืขื™ื“ื” ืœื ืžืงื•ื•ื ืช (ืื ื›ื™ ืขื ื›ืœ ืืžืฆืขื™ ื”ื–ื”ื™ืจื•ืช ื‘ืžืงื•ื), ืžื›ื™ื•ื•ืŸ ืฉืœื ื ื™ืชืŸ ืœืืจื•ื– ืืช ื”ืื ืจื’ื™ื” ืฉืœ HighLoad++ ื‘ืื•ืคืŸ ืžืงื•ื•ืŸ.

ืœื›ื ืก ืื ื• ืžื•ืฆืื™ื ื•ืžืจืื™ื ืœื›ื ืžืงืจื™ื ืขืœ ื”ื™ื›ื•ืœื•ืช ื”ืžืงืกื™ืžืœื™ื•ืช ืฉืœ ื”ื˜ื›ื ื•ืœื•ื’ื™ื”: HighLoad++ ื”ื™ื”, ื”ื•ื ื•ื™ื”ื™ื” ื”ืžืงื•ื ื”ื™ื—ื™ื“ ื‘ื• ืชื•ื›ืœื• ืœืœืžื•ื“ ืชื•ืš ื™ื•ืžื™ื™ื ื›ื™ืฆื“ ืคื•ืขืœื•ืช ืคื™ื™ืกื‘ื•ืง, Yandex, VKontakte, ื’ื•ื’ืœ ื•ืืžื–ื•ืŸ.

ืœืื—ืจ ืฉืงื™ื™ืžื ื• ืืช ื”ืžืคื’ืฉื™ื ืฉืœื ื• ืœืœื ื”ืคืจืขื” ืžืื– 2007, ื”ืฉื ื” ื ื™ืคื’ืฉ ื‘ืคืขื ื”-14. ื‘ืžื”ืœืš ืชืงื•ืคื” ื–ื•, ื”ื›ื ืก ื’ื“ืœ ืคื™ 10; ื‘ืฉื ื” ืฉืขื‘ืจื”, ื”ืื™ืจื•ืข ื”ืžืจื›ื–ื™ ื‘ืชืขืฉื™ื™ื” ืจื™ื›ื– 3339 ืžืฉืชืชืคื™ื, 165 ื“ื•ื‘ืจื™ื, ื“ื•ื—ื•ืช ื•ืžืคื’ืฉื™ื, ื•-16 ืžืกืœื•ืœื™ื ืคืขืœื• ื‘ื• ื–ืžื ื™ืช.
ื‘ืฉื ื” ืฉืขื‘ืจื” ื”ื™ื• 20 ืื•ื˜ื•ื‘ื•ืกื™ื, 5280 ืœื™ื˜ืจ ืชื” ื•ืงืคื”, 1650 ืœื™ื˜ืจ ืžืฉืงืื•ืช ืคื™ืจื•ืช ื•-10200 ื‘ืงื‘ื•ืงื™ ืžื™ื. ื•ืขื•ื“ 2640 ืงื™ืœื•ื’ืจืžื™ื ืฉืœ ืื•ื›ืœ, 16 ืฆืœื—ื•ืช ื•-000 ื›ื•ืกื•ืช. ืื’ื‘, ื‘ื›ืกืฃ ืฉื ืืกืฃ ืžื ื™ื™ืจ ืžืžื•ื—ื–ืจ ืฉืชืœื ื• 25 ืฉืชื™ืœื™ ืืœื•ืŸ :)

ืืชื” ื™ื›ื•ืœ ืœืงื ื•ืช ื›ืจื˜ื™ืกื™ื ื›ืืŸ, ืงื‘ืœ ื—ื“ืฉื•ืช ืขืœ ื”ื›ื ืก - ื›ืืŸ, ื•ืœื“ื‘ืจ ื‘ื›ืœ ื”ืจืฉืชื•ืช ื”ื—ื‘ืจืชื™ื•ืช: ืžื‘ืจืง, ืคื™ื™ืกื‘ื•ืง, Vkontakte ะธ ื˜ื•ื™ื˜ืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”