Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Π—Π° послСдниС нСсколько Π»Π΅Ρ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов (Time-series databases) ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ ΠΈΠ· Π΄ΠΈΠΊΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ ΡˆΡ‚ΡƒΠΊΠΈ (узкоспСциализированно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ Π»ΠΈΠ±ΠΎ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… систСмах ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° (ΠΈ привязанной ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ), Π»ΠΈΠ±ΠΎ Π² Big Data ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…) Π² Β«Ρ‚ΠΎΠ²Π°Ρ€ Π½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ потрСблСния». На Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π Π€ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ спасибо Π·Π° это Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ЯндСксу ΠΈ ClickHouse’у. Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Ссли Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большоС количСство time-series Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π»ΠΈΠ±ΠΎ ΡΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ монструозный Hadoop-стэк ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ систСмы.

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² 2019-ΠΌ Π³ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ TSDB стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ лишь ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСдлоТСния: «просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ClickHouseΒ». Но… Π΅ΡΡ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹.

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ClickHouse Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Π±Π°Π·Π° растСт, Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° вСдСтся ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π½ΠΎ Π½Π΅ стали Π»ΠΈ ΠΌΡ‹ Π·Π°Π»ΠΎΠΆΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ClickHouse’Π°, которая Π·Π°Ρ‚ΠΌΠΈΠ»Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ эффСктивныС/Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ?

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° ΠΌΡ‹ занялись ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ нашСй собствСнной систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π² процСссС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ встал вопрос ΠΎ Π²Ρ‹Π±ΠΎΡ€Π΅ подходящСй Π±Π°Π·Ρ‹ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Об истории этого Π²Ρ‹Π±ΠΎΡ€Π° я ΠΈ Ρ…ΠΎΡ‡Ρƒ здСсь Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ прСдисловиС. Π—Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ собствСнная систСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±Ρ‹Π»Π° устроСна?

ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ услуги ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² 2008 Π³ΠΎΠ΄Ρƒ, ΠΈ ΠΊ 2010-ΠΌΡƒ стало понятно, Ρ‡Ρ‚ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ происходящих Π² клиСнтской инфраструктурС процСссах Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠΌΠΈ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, стало слоТно (ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ, прости господи, Cacti, Zabbix-Π΅ ΠΈ Π·Π°Ρ€ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΌΡΡ Graphite).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ нашими трСбованиями Π±Ρ‹Π»ΠΈ:

  • сопровоТдСниС (Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” дСсятков, Π° Π² пСрспСктивС β€” сотСн) ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ систСмы ΠΈ ΠΏΡ€ΠΈ этом Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы управлСния оповСщСниями;
  • Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ систСмой ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ (эскалация ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π΅ΠΆΡƒΡ€Π½Ρ‹ΠΌΠΈ, ΡƒΡ‡Π΅Ρ‚ расписания, Π±Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ);
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² (Zabbix Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ отрисовывал Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ);
  • Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ большого количСства Π΄Π°Π½Π½Ρ‹Ρ… (Π³ΠΎΠ΄ ΠΈ Π±ΠΎΠ»Π΅Π΅) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ… быстрой Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ нас интСрСсуСт послСдний ΠΏΡƒΠ½ΠΊΡ‚.

Говоря ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, трСбования Π±Ρ‹Π»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • систСма Π΄ΠΎΠ»ΠΆΠ½Π° быстро Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ;
  • ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСма ΠΈΠΌΠ΅Π»Π° SQL-интСрфСйс;
  • систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π±Π°Π·Ρƒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ (ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ систСмы, ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ MemcacheDB, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ пСрСстали Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ распрСдСлСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ MooseFS, Π±Π°Π³Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ вСлся Π½Π° китайском языкС: повторСния этой истории для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π°ΠΌ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ);
  • соотвСтствиС CAP-Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ΅: Consitency (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ) β€” Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ систСма управлСния оповСщСниями Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ»ΡŽΠ½ΡƒΠ»Π°ΡΡŒ Π°Π»Π΅Ρ€Ρ‚Π°ΠΌΠΈ ΠΎ Π½Π΅ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ всСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ; Partition Tolerance (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ) β€” ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Split Brain систСмы; Availability (Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, Π² случаС сущСствования Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ) β€” ΠΌΠΎΠΆΠ΅ΠΌ сами ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ систСму Π² случаС Π°Π²Π°Ρ€ΠΈΠΈ, ΠΊΠΎΠ΄ΠΎΠΌ.

Как Π½ΠΈ странно, Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для нас оказался MySQL. Наша структура Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»Π° ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ проста: id сСрвСра, id счСтчика, timestamp ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅; быстрая Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° горячих Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ большим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ buffer pool, Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° историчСских Π΄Π°Π½Π½Ρ‹Ρ… β€” SSD.

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ добились Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ свСТих Π΄Π²ΡƒΡ…Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, с Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄ΠΎ сСкунды Π·Π° 200 мс Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠ»Π½ΠΎΠΉ отрисовки Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΆΠΈΠ»ΠΈ Π² этой систСмС довольно Π΄ΠΎΠ»Π³ΠΎ.

ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, врСмя шло ΠΈ количСство Π΄Π°Π½Π½Ρ‹Ρ… росло. К 2016-ΠΌΡƒ Π³ΠΎΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… достигали дСсятков Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚, Ρ‡Ρ‚ΠΎ Π² условиях Π°Ρ€Π΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Ρ… SSD-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π±Ρ‹Π»ΠΎ сущСствСнным расходом.

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ распространСниС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ стали Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ: Π² ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Ρ… Π‘Π” Π΄Π°Π½Π½Ρ‹Π΅ хранятся, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, ΠΈ Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° наши Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ большоС количСство Π΄ΡƒΠ±Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹, Π² случаС использовании ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠΉ Π‘Π”, ΡΠΆΠ°Ρ‚ΡŒ компрСссиСй.

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Однако ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ систСма ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ.

Π’ 2017-ΠΌ Π³ΠΎΠ΄Ρƒ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Percona Live Π² Π‘Π°Π½-Π₯осС, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎ сСбС заявили Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Clickhouse. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, систСма Π±Ρ‹Π»Π° production-ready (Π½Ρƒ, ЯндСкс.ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° β€” это суровый ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ‹Π»Π° быстрой ΠΈ простой, ΠΈ, Π³Π»Π°Π²Π½ΠΎΠ΅, эксплуатация Π±Ρ‹Π»Π° простой. Π‘ 2018-Π³ΠΎ Π³ΠΎΠ΄Π° ΠΌΡ‹ затСяли процСсс ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. Но ΠΊ Ρ‚ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ «взрослых» ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ систСм TSDB стало ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Clickhouse-Ρƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, согласно нашим трСбованиям, Π½Π΅Ρ‚.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊ ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ трСбованиям ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ появились свСТиС:

  • новая систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ MySQL, Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ самом количСствС ΠΆΠ΅Π»Π΅Π·Π°;
  • Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½ΠΎΠ²ΠΎΠΉ систСмы Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС мСста;
  • Π‘Π£Π‘Π” ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ проста Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ;
  • Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ минимально ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ смСнС Π‘Π£Π‘Π”.

КакиС систСмы ΠΌΡ‹ стали Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ

Apache Hive/Apache Impala
Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ боями Hadoop-стэк. По сути, это SQL-интСрфСйс, построСнный ΠΏΠΎΠ²Π΅Ρ€Ρ… хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² собствСнных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Π½Π° HDFS.

ΠŸΠ»ΡŽΡΡ‹.

  • ΠŸΡ€ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ эксплуатации ΠΎΡ‡Π΅Π½ΡŒ просто ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.
  • Π•ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… (мСньшС мСста).
  • ΠžΡ‡Π΅Π½ΡŒ быстроС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ распаралСллСных Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ рСсурсов.

ΠœΠΈΠ½ΡƒΡΡ‹.

  • Π­Ρ‚ΠΎ Hadoop, ΠΈ ΠΎΠ½ слоТСн Π² эксплуатации. Если ΠΌΡ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π±Ρ€Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ (Π° ΠΌΡ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎ стоимости), вСсь стэк придСтся ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΎΠ², Π° этого ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ хочСтся.
  • Π”Π°Π½Π½Ρ‹Π΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстро.

Однако:

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ достигаСтся ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ числа Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвСров. ΠŸΡ€ΠΎΡ‰Π΅ говоря, Ссли ΠΌΡ‹ большая компания, занимаСмся Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΈ бизнСсу критичСски Π²Π°ΠΆΠ½ΠΎ максимально быстро Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (ΠΏΡƒΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Ρ†Π΅Π½ΠΎΠΉ использования большого количСства Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов), β€” это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нашим Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Но ΠΌΡ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊΡ€Π°Ρ‚Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΊ ΠΆΠ΅Π»Π΅Π·Π° для скорости выполнСния Π·Π°Π΄Π°Ρ‡.

Druid/Pinot

Π£ΠΆΠ΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΏΡ€ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ TSDB, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ β€” Hadoop-стэк.

Π•ΡΡ‚ΡŒ отличная ΡΡ‚Π°Ρ‚ΡŒΡ, ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы Druid ΠΈ Pinot Π² сравнСнии с ClickHouse .

Если Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… словах: Druid/Pinot выглядят Π»ΡƒΡ‡ΡˆΠ΅ Clickhouse’Π° Π² случаях, ΠΊΠΎΠ³Π΄Π°:

  • Π£ вас Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… (Π² нашСм случаС ΠΌΡ‹ записываСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ таймсСрии сСрвСрных ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΈ, ΠΏΠΎ сути, это ΠΎΠ΄Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°. Но ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ кСйсы: Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ряды оборудования, экономичСскиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ряды ΠΈ Ρ‚.Π΄. β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ со своСй структурой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ).
  • ΠŸΡ€ΠΈ этом этих Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ.
  • Π’Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ рядами ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡˆΠ΅Π», Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ).
  • НСт Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ критСрия, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Ρ… случаях Π»ΡƒΡ‡ΡˆΠ΅ сСбя ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ClickHouse, Π° это наш случай.

ClickHouse

  • SQL-like.
  • ΠŸΡ€ΠΎΡΡ‚ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.
  • Π›ΡŽΠ΄ΠΈ говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΡˆΠΎΡ€Ρ‚-лист тСстирования.

InfluxDB

ЗарубСТная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ClickHouse’Ρƒ. Из минусов: High Availability присутствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² коммСрчСской вСрсии, Π½ΠΎ Π½Π°Π΄ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ.

ΠŸΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΡˆΠΎΡ€Ρ‚-лист тСстирования.

Cassandra

Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для хранСния мСтричСских таймсСрий Ρ‚Π°ΠΊΠΈΠ΅ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SignalFX ΠΈΠ»ΠΈ OkMeter. Однако Π΅ΡΡ‚ΡŒ спСцифика.

Cassandra Π½Π΅ являСтся ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ. Выглядит ΠΎΠ½Π° большС ΠΊΠ°ΠΊ строчная, Π½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ΅ количСство столбцов, Π·Π° счСт Ρ‡Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС. Π’ этом смыслС понятно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ Π² 2 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° столбцов ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² столбцах (Π΄Π° Ρ‚Π΅ ΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ряды). НапримСр, Π² MySQL стоит ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° 4096 столбцов ΠΈ Ρ‚Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ‚ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ с ΠΊΠΎΠ΄ΠΎΠΌ 1117, Ссли ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ самоС.

Π”Π²ΠΈΠΆΠΎΠΊ Cassandra ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… Π² распрСдСлСнной систСмС Π±Π΅Π· мастСра, ΠΈ Π² Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠΉ CAP-Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ΅ Cassandra большС ΠΏΡ€ΠΎ AP, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, этот инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ, Ссли Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² эту Π±Π°Π·Ρƒ ΠΈ достаточно Ρ€Π΅Π΄ΠΊΠΎ ΠΈΠ· Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. И Ρ‚ΡƒΡ‚ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Cassandra Π² качСствС β€œΡ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠ³ΠΎβ€ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² качСствС Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ мСста хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов историчСских Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π΄ΠΊΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Π½ΠΎ ΠΏΡ€ΠΈ нСобходимости ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ€Π°Π΄ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹, протСстируСм ΠΈ Π΅Π΅. Но, ΠΊΠ°ΠΊ я Ρ€Π°Π½Π΅Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Π½Π΅Ρ‚ ТСлания Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π‘Π”-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, поэтому Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡ‹ Π΅Ρ‘ Π±ΡƒΠ΄Π΅ΠΌ нСсколько ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ β€” Π±Π΅Π· Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ структуры Π±Π°Π·Ρ‹ ΠΏΠΎΠ΄ спСцифику Cassandra.

Prometheus

Ну, ΠΈ ΡƒΠΆΠ΅ ΠΈΠ· интСрСса ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сторадТа Prometheus β€” просто для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, быстрСС ΠΌΡ‹ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ насколько.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ протСстировали 5 Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… 6 конфигурациях: ClickHouse (1 Π½ΠΎΠ΄Π°), ClickHouse (распрСдСлСнная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π° 3 Π½ΠΎΠ΄Ρ‹), InfluxDB, Mysql 8, Cassandra (3 Π½ΠΎΠ΄Ρ‹) ΠΈ Prometheus. План тСстирования Ρ‚Π°ΠΊΠΎΠΉ:

  1. Π·Π°Π»ΠΈΠ²Π°Π΅ΠΌ историчСскиС Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° нСдСлю (840 ΠΌΠ»Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² сутки; 208 тысяч ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ);
  2. Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° запись (рассматривали 6 Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, см. Π½ΠΈΠΆΠ΅);
  3. ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с записью пСриодичСски Π΄Π΅Π»Π°Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, эмулируя запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ с Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ слишком ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ, Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ 10 ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ (ΠΊΠ°ΠΊ Ρ€Π°Π· ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ CPU) Π·Π° нСдСлю.

НагруТаСм, эмулируя ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Π° нашСго ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отправляСт Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ значСния Ρ€Π°Π· Π² 15 сСкунд. ΠŸΡ€ΠΈ этом Π½Π°ΠΌ интСрСсно Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

  • ΠΎΠ±Ρ‰Π΅Π΅ количСство ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅;
  • ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½Ρƒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ;
  • Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Ρ‚Ρ‡Π°.

ΠŸΡ€ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Ρ‚Ρ‡Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΡ‡Ρ‚ΠΈ всС наши ΠΏΠΎΠ΄ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π½Π΅ рСкомСндуСтся Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ инсСртами, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт приходящиС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΏΠΎ сколько-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚ Π² Π±Π°Π·Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ инсСртом.

Π’Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ просто ΡˆΠ»Ρ‘ΠΌ ΠΊΡƒΡ‡Ρƒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² сСрвСры β€” ΠΏΠΎ 125 ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½Π° сСрвСр. Π’ΡƒΡ‚ сСрвСр просто Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ β€” просто Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 10000 ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 80 сСрвСрам.

И Π²ΠΎΡ‚, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ этого всСго, наши 6 Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π°Π·Ρ‹ Π½Π° запись:

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, для кассандры Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π±Π°Ρ‚Ρ‡Π΅ΠΉ оказались слишком большими, Ρ‚Π°ΠΌ ΠΌΡ‹ использовали значСния 50 ΠΈΠ»ΠΈ 100. А Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ промСтСус Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ строго Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ pull, Ρ‚.Π΅. сам Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ с источников ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ (ΠΈ Π΄Π°ΠΆΠ΅ pushgateway, нСсмотря Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π² ΠΊΠΎΡ€Π½Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π½Π΅ мСняСт), ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ static configs.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования Ρ‚Π°ΠΊΠΈΠ΅:

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Как ΠΌΡ‹ тСстировали нСсколько Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов

Π§Ρ‚ΠΎ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ: фантастичСски быстрыС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Prometheus’a, ΡƒΠΆΠ°ΡΠ°ΡŽΡ‰Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Cassandra, Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· InfluxDB; ΠΏΠΎ скорости записи всСх ΠΏΠΎΠ±Π΅Π΄ΠΈΠ» ClickHouse, Π° Prometheus Π² конкурсС Π½Π΅ участвуСт, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ инсСрты сам Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ΠΈ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ замСряСм.

Π’ ΠΈΡ‚ΠΎΠ³Π΅: Π»ΡƒΡ‡ΡˆΠ΅ всСх сСбя ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ClickHouse ΠΈ InfluxDB, Π½ΠΎ кластСр ΠΈΠ· Influx’а ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основС Enterprise-вСрсии, которая стоит Π΄Π΅Π½Π΅Π³, Π° ClickHouse Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ стоит ΠΈ сдСлан Π² России. Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² БША Π²Ρ‹Π±ΠΎΡ€, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ inInfluxDB, Π° Ρƒ нас β€” Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ClickHouse’Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com