Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

I nā makahiki i hala iho nei, ua huli ka ʻikepili manawa mai kahi mea ʻokoʻa (i hoʻohana nui ʻia i nā ʻōnaehana nānā ākea (a i hoʻopaʻa ʻia i nā hoʻonā kikoʻī) a i ʻole nā ​​papahana Big Data) i kahi "huahana kūʻai". Ma ka ʻāina o ka Russian Federation, pono e hāʻawi ʻia nā mahalo kūikawā iā Yandex a me ClickHouse no kēia. A hiki i kēia manawa, inā pono ʻoe e mālama i ka nui o ka ʻikepili manawa-series, pono ʻoe e hoʻokō me ka pono e kūkulu i kahi puʻupuʻu Hadoop monstrous a mālama iā ia, a i ʻole e kamaʻilio me nā protocols i kēlā me kēia ʻōnaehana.

Me he mea lā ma 2019 kahi ʻatikala e pili ana i ka TSDB pono e hoʻohana i hoʻokahi huaʻōlelo: "hoʻohana wale i ClickHouse." Akā ... aia nā nuances.

ʻOiaʻiʻo, ke ulu ikaika nei ʻo ClickHouse, ke ulu nei ka mea hoʻohana, a ʻoi aku ka ikaika o ke kākoʻo, akā ua lilo mākou i poʻe paʻa i ka kūleʻa o ka lehulehu o ClickHouse, ka mea i uhi i nā hopena ʻē aʻe, ʻoi aku ka maikaʻi / hilinaʻi?

I ka hoʻomaka ʻana o ka makahiki i hala, ua hoʻomaka mākou e hana hou i kā mākou ʻōnaehana nānā ponoʻī, i ka wā i ulu ai ka nīnau no ke koho ʻana i kahi waihona kūpono no ka mālama ʻana i nā ʻikepili. Makemake au e kamaʻilio e pili ana i ka mōʻaukala o kēia koho ma aneʻi.

Ka hoʻokumu ʻana i ka pilikia

ʻO ka mea mua, he ʻōlelo mua e pono ai. No ke aha mākou e pono ai i kā mākou ʻōnaehana nānā ponoʻī a pehea i hoʻolālā ʻia ai?

Ua hoʻomaka mākou e hāʻawi i nā lawelawe kākoʻo i ka makahiki 2008, a ma ka makahiki 2010 ua maopopo ua lilo i mea paʻakikī i ka hōʻuluʻulu ʻana i nā ʻikepili e pili ana i nā kaʻina hana i hana ʻia i loko o ka mea kūʻai aku me nā hoʻonā i loaʻa i kēlā manawa (ke kamaʻilio nei mākou, e kala mai ke Akua iaʻu, Cacti, Zabbix a me ka Graphite e puka mai ana).

ʻO kā mākou mau koi nui:

  • kākoʻo (i kēlā manawa - mau kakini, a i ka wā e hiki mai ana - he mau haneli) o nā mea kūʻai aku i loko o ka ʻōnaehana hoʻokahi a ma ka manawa like ke kū ʻana o kahi ʻōnaehana hoʻokele kikowaena kikowaena;
  • ka maʻalahi i ka mālama ʻana i ka ʻōnaehana makaʻala (ka piʻi ʻana o nā mākaʻikaʻi ma waena o nā luna hana, ka hoʻonohonoho ʻana, ka waihona ʻike);
  • ka hiki ke kikoo kiko'ī i nā kiʻi (Zabbix i kēlā manawa i hāʻawi i nā kiʻi ma ke ʻano o nā kiʻi);
  • ka mālama lōʻihi o ka nui o ka ʻikepili (hoʻokahi makahiki a ʻoi aku paha) a me ka hiki ke kiʻi koke.

Ma keia 'atikala mākou hoihoi i ka hope.

Ma ke kamaʻilio ʻana e pili ana i ka mālama ʻana, penei nā koi:

  • pono e hana wikiwiki ka ʻōnaehana;
  • makemake ʻia e loaʻa i ka ʻōnaehana kahi kikowaena SQL;
  • Pono e paʻa ka ʻōnaehana a loaʻa kahi waihona mea hoʻohana ikaika a me ke kākoʻo (i ka manawa i ʻike ʻia ai mākou i ka pono e kākoʻo i nā ʻōnaehana e like me MemcacheDB, ʻaʻole i kūkulu hou ʻia, a i ʻole ka MooseFS puʻupuʻu puʻupuʻu, ua mālama ʻia ka tracker bug ma ka ʻōlelo Kina: Ke hana hou nei mākou i kēia moʻolelo no ka makemake ʻole o kā mākou papahana);
  • ka hoʻokō ʻana i ka theorem CAP: Consitency (koi) - pono ka ʻikepili i kēia lā, ʻaʻole mākou makemake i ka ʻōnaehana hoʻokele makaʻala e loaʻa ʻole ka ʻikepili hou a kuha aku i nā mākaʻikaʻi e pili ana i ka hiki ʻole o ka ʻikepili no nā papahana āpau; ʻO ka hoʻomanawanui ʻokoʻa (koi) - ʻaʻole mākou makemake e kiʻi i kahi ʻōnaehana Split Brain; Loaʻa (ʻaʻole koʻikoʻi, inā loaʻa kahi kope hana) - hiki iā mākou ke hoʻololi i ka ʻōnaehana hoʻihoʻi iā mākou iho i ka wā o kahi pōʻino, me ka hoʻohana ʻana i ke code.

ʻO ka mea kupanaha, i kēlā manawa ua lilo ʻo MySQL i mea kūpono no mākou. He mea maʻalahi loa kā mākou ʻikepili: server id, counter id, timestamp a me ka waiwai; Ua hōʻoia ʻia ka hoʻokē ʻai ʻana o ka ʻikepili wela e kahi pūnāwai nui, a ua hōʻoia ʻia ka laʻana o ka ʻikepili mōʻaukala e SSD.

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

No laila, ua loaʻa iā mākou kahi laʻana o ka ʻikepili hou ʻelua pule, me ka kikoʻī a hiki i ka 200 ms kekona ma mua o ka hāʻawi ʻia ʻana o ka ʻikepili, a noho lōʻihi loa ma kēia ʻōnaehana.

I kēia manawa, ua hala ka manawa a ua ulu ka nui o ka ʻikepili. Ma ka makahiki 2016, hiki i ka nui o ka ʻikepili i ʻumi mau terabytes, he kumukūʻai koʻikoʻi ia i ka pōʻaiapili o ka waihona SSD hoʻolimalima.

I kēia manawa, ua hoʻolaha nui ʻia nā waihona columnar, a ua hoʻomaka mākou e noʻonoʻo e pili ana: i nā waihona columnar, mālama ʻia nā ʻikepili, e like me kāu e hoʻomaopopo ai, ma nā kolamu, a inā ʻoe e nānā i kā mākou ʻikepili, maʻalahi ke ʻike i kahi nui. ka helu o nā kope i hiki, i Inā hoʻohana ʻoe i kahi waihona columnar, e hoʻopaʻa iā ia me ka hoʻohana ʻana.

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

Eia naʻe, ua hoʻomau ka ʻōnaehana kī o ka ʻoihana i ka hana paʻa, a ʻaʻole makemake wau e hoʻokolohua me ka hoʻololi ʻana i kahi mea ʻē aʻe.

Ma 2017, ma ka hui Percona Live ma San Jose, ua hoʻolaha paha nā mea hoʻomohala Clickhouse iā lākou iho no ka manawa mua. I ka nānā mua ʻana, ua mākaukau ka ʻōnaehana (maikaʻi, ʻo Yandex.Metrica kahi ʻōnaehana hana koʻikoʻi), wikiwiki a maʻalahi ke kākoʻo, a ʻo ka mea nui, he maʻalahi ka hana. Mai ka makahiki 2018, ua hoʻomaka mākou i ke kaʻina hana hoʻololi. Akā i kēlā manawa, ua nui nā ʻōnaehana TSDB "mākua" a me ka manawa i ho'āʻo ʻia, a ua hoʻoholo mākou e hāʻawi i ka manawa nui a hoʻohālikelike i nā mea ʻē aʻe i mea e hōʻoia ai ʻaʻohe mea hoʻonā ʻē aʻe i Clickhouse, e like me kā mākou koi.

Ma waho aʻe o nā koi i hoʻopaʻa ʻia, ua ʻike ʻia nā mea hou:

  • pono e hāʻawi ka ʻōnaehana hou i ka liʻiliʻi o ka hana like me MySQL ma ka nui o nā lako lako;
  • ʻo ka waiho ʻana o ka ʻōnaehana hou e lawe i ka liʻiliʻi loa;
  • Pono e maʻalahi ka mālama ʻana i ka DBMS;
  • Makemake au e hoʻololi liʻiliʻi i ka noi ke hoʻololi i ka DBMS.

He aha nā ʻōnaehana a mākou i hoʻomaka ai e noʻonoʻo?

Apache Hive/Apache Impala
ʻO kahi pahu Hadoop kahiko i hoʻāʻo ʻia i ke kaua. ʻO ka mea nui, he kikowaena SQL i kūkulu ʻia ma luna o ka mālama ʻana i ka ʻikepili i nā ʻano maoli ma HDFS.

Pono.

  • Me ka hana paʻa, maʻalahi loa ka hoʻonui ʻana i ka ʻikepili.
  • Loaʻa nā hāʻina kolamu no ka mālama ʻana i ka ʻikepili (ka liʻiliʻi o ka hakahaka).
  • Hoʻokō wikiwiki loa i nā hana like ke loaʻa nā kumuwaiwai.

Cons

  • ʻO Hadoop, a paʻakikī ke hoʻohana. Inā ʻaʻole mākou mākaukau e lawe i kahi hoʻonā i hana ʻia ma ke ao (a ʻaʻole mākou i mākaukau ma ke ʻano o ke kumukūʻai), pono e hōʻuluʻulu a kākoʻo ʻia ka waihona holoʻokoʻa e nā lima o nā admins, a ʻaʻole makemake mākou. keia.
  • Hoʻohui ʻia ka ʻikepili wikiwiki loa.

Akā:

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

Loaʻa ka wikiwiki ma ka hoʻonui ʻana i ka helu o nā server computing. ʻO ka'ōlelo maʻalahi, inā he hui nui mākou, e hana ana i nāʻikepili, a he mea koʻikoʻi i kaʻoihana e hōʻuluʻulu i kaʻike i ka hikiwawe loa (ʻoiai ma ke kumukūʻai o ka hoʻohanaʻana i ka nui o nā kumu waiwai helu),ʻo ia paha kā mākou koho. ʻAʻole naʻe mākou i mākaukau e hoʻonui i nā ʻauwaʻa ʻenehana e wikiwiki i nā hana.

Druid/Pinot

Nui aʻe nā mea hou aʻe e pili ana i ka TSDB, akā hou, ʻo ka Hadoop stack.

he nui na ʻatikala maikaʻi e hoʻohālikelike ana i nā pono a me nā ʻae o Druid a me Pinot versus ClickHouse .

Ma kahi mau huaʻōlelo: ʻoi aku ka maikaʻi o Druid/Pinot ma mua o Clickhouse i nā hihia kahi:

  • Loaʻa iā ʻoe kahi ʻano heterogeneous o ka ʻikepili (i kā mākou hihia, hoʻopaʻa mākou i nā manawa manawa wale nō o nā metric server, a, ʻoiaʻiʻo, hoʻokahi papa kēia. Akā aia kekahi mau hihia ʻē aʻe. kona ʻano ponoʻī, pono e hōʻuluʻulu ʻia a hana ʻia).
  • Eia kekahi, he nui kēia ʻikepili.
  • Hōʻike a nalo nā papa a me nā ʻikepili me ka manawa (ʻo ia hoʻi, ua hōʻea kekahi mau ʻikepili, ua kālailai ʻia a holoi ʻia).
  • ʻAʻohe ʻike kikoʻī e hiki ai ke hoʻokaʻawale i ka ʻikepili.

Ma nā hihia like ʻole, ʻoi aku ka maikaʻi o ClickHouse, a ʻo kā mākou hihia kēia.

KaomiHouse

  • Me he SQL
  • Maʻalahi e mālama.
  • Wahi a ka poʻe e hana ana.

Loaʻa i ka papa inoa pōkole no ka hoʻāʻo ʻana.

InfluxDB

ʻO kahi ʻē aʻe i ClickHouse. ʻO nā mea liʻiliʻi: Loaʻa ka Loaʻa kiʻekiʻe i ka mana kālepa, akā pono e hoʻohālikelike ʻia.

Loaʻa i ka papa inoa pōkole no ka hoʻāʻo ʻana.

Cassandra

Ma ka ʻaoʻao hoʻokahi, ʻike mākou ua hoʻohana ʻia ia e mālama i nā timeseries metric e nā ʻōnaehana nānā e like me, no ka laʻana, SignalFX a i ʻole OkMeter. Eia nō naʻe, aia nā kikoʻī.

ʻAʻole ʻo Cassandra kahi waihona columnar ma ke ʻano kuʻuna. Ua like ia me ka nānā lālani, akā hiki i kēlā me kēia laina ke loaʻa nā helu ʻokoʻa o nā kolamu, e maʻalahi ai ka hoʻonohonoho ʻana i kahi ʻike kolamu. Ma kēiaʻano, ua maopopo me ka palena o 2 billion kolamu, hiki ke mālama i kekahi mauʻikepili i nā kolamu (a me ka manawa like). No ka laʻana, ma MySQL aia ka palena o nā kolamu 4096 a maʻalahi ke hina i kahi hewa me ka code 1117 inā ʻoe e hoʻāʻo e hana like.

Ka Cassandra engine ua kālele 'ia ma ka waiho nui huina o ka 'ikepili i loko o ka māhele'ōnaehana me ka haku ole, a me ka luna-i oleloia Cassandra CAP theorem e pili ana i AP, 'o ia hoʻi, e pili ana i kaʻikepili loaʻa a me ke kū'ē i ka partitioning. No laila, hiki ke maikaʻi kēia mea paahana inā pono ʻoe e kākau i kēia waihona a ʻaʻole liʻiliʻi ka heluhelu ʻana mai ia mea. A eia ka mea kūpono e hoʻohana iā Cassandra i kahi mālama "anu". ʻO ia, ma ke ʻano he wahi lōʻihi a hilinaʻi e mālama ai i ka nui o nā ʻikepili mōʻaukala i makemake ʻole ʻia, akā hiki ke kiʻi ʻia inā pono. Eia naʻe, no ka hoʻopiha piha ʻana, e hoʻāʻo pū mākou. Akā, e like me kaʻu i ʻōlelo ai ma mua, ʻaʻohe makemake e kākau hou i ke code no ka hoʻonā ʻikepili i koho ʻia, no laila e hoʻāʻo mākou iā ia ma kahi liʻiliʻi - me ka ʻole o ka hoʻololi ʻana i ka ʻōnaehana waihona i nā kikoʻī o Cassandra.

IHILA

ʻAe, ma muli o ka hoihoi, ua hoʻoholo mākou e hoʻāʻo i ka hana o ka mālama Prometheus - e hoʻomaopopo wale inā ʻoi aku ka wikiwiki a i ʻole ka lohi ma mua o nā hopena o kēia manawa a me ka nui.

ʻO ke ʻano hoʻāʻo a me nā hopena

No laila, ua hoʻāʻo mākou i nā waihona ʻikepili 5 i kēia mau hoʻonohonoho 6: ClickHouse (1 node), ClickHouse (papa i hāʻawi ʻia no 3 nodes), InfluxDB, Mysql 8, Cassandra (3 nodes) a me Prometheus. ʻO ka papahana hoʻokolohua penei:

  1. hoʻouka i ka ʻikepili mōʻaukala no hoʻokahi pule (840 miliona mau waiwai i kēlā me kēia lā; 208 tausani metrics);
  2. Hoʻopuka mākou i kahi haʻahaʻa hoʻopaʻa hoʻopaʻa (6 mau ʻano hoʻouka i manaʻo ʻia, e ʻike ma lalo);
  3. E like me ka hoʻopaʻa ʻana, hana mākou i nā koho i kēlā me kēia manawa, e hoʻohālike i nā noi a kahi mea hoʻohana e hana ana me nā palapala. I ʻole e paʻakikī loa i nā mea, ua koho mākou i ka ʻikepili no nā metric 10 (ʻo ia ka nui o nā mea ma ka pakuhi CPU) no hoʻokahi pule.

Hoʻouka mākou ma ka hoʻohālikelike ʻana i ka ʻano o kā mākou mākaʻikaʻi nānā, e hoʻouna ana i nā waiwai i kēlā me kēia metric i hoʻokahi manawa i kēlā me kēia 15 kekona. I ka manawa like, makemake mākou i nā ʻano like ʻole:

  • ka huina helu o nā ana i kākau ʻia ai ka ʻikepili;
  • ka manawa no ka hoʻouna ʻana i nā waiwai i hoʻokahi metric;
  • nui pūʻulu.

E pili ana i ka nui o ka pūʻulu. No ka mea ʻaʻole ʻōlelo ʻia e hoʻouka kokoke i kā mākou ʻikepili hoʻokolohua me nā hoʻokomo hoʻokahi, pono mākou i kahi relay e hōʻiliʻili i nā metric e hiki mai ana a hui pū iā lākou i loko o nā pūʻulu a kākau iā lākou i ka waihona ma ke ʻano he hoʻokomo pūʻulu.

Eia kekahi, no ka hoʻomaopopo maikaʻi ʻana i ka wehewehe ʻana i ka ʻikepili i loaʻa, e noʻonoʻo kākou ʻaʻole mākou e hoʻouna wale nei i kahi pūʻulu metric, akā ua hoʻonohonoho ʻia nā metric i loko o nā kikowaena - 125 metrics ma kēlā me kēia kikowaena. Maʻaneʻi, he mea maʻemaʻe wale ke kikowaena - no ka hoʻomaopopo wale ʻana, no ka laʻana, 10000 metrics e pili ana i kahi o 80 mau kikowaena.

A ma ʻaneʻi, e noʻonoʻo ana i kēia mau mea a pau, ʻo kā mākou 6 waihona palapala kākau i nā ʻano hoʻouka:

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

ʻElua wahi ma ʻaneʻi. ʻO ka mea mua, no Cassandra ua nui loa kēia mau pūʻulu, ma laila mākou i hoʻohana ai i nā waiwai o 50 a i ʻole 100. A ʻo ka lua, no ka mea, hana ikaika ʻo Prometheus i ke ʻano huki, i.e. hele ʻo ia a hōʻiliʻili i nā ʻikepili mai nā kumu metric (a ʻo pushgateway, ʻoiai ka inoa, ʻaʻole ia e hoʻololi maoli i ke kūlana), ua hoʻokō ʻia nā haʻahaʻa e pili ana me ka hoʻohana ʻana i nā config static.

ʻO nā hopena hōʻike penei:

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

Pehea mākou i hoʻāʻo ai i nā ʻikepili moʻohelu manawa

He aha ka mea e ʻike ai: nā hōʻailona wikiwiki loa mai Prometheus, nā hōʻailona lohi loa mai Cassandra, nā hōʻailona lohi maikaʻiʻole mai InfluxDB; Ma ke ʻano o ka hoʻopaʻa ʻana i ka wikiwiki, ua lanakila ʻo ClickHouse i nā mea a pau, a ʻaʻole komo ʻo Prometheus i ka hoʻokūkū, no ka mea, hoʻokomo ʻo ia iā ia iho a ʻaʻole mākou e ana i kekahi mea.

A? Acoeuoaoa,: ClickHouse a me InfluxDB hōʻike iā lākou iho i ka mea maikaʻi loa, akā, hiki ke kūkulu ʻia kahi pūʻulu mai Influx ma ke kumu o ka mana ʻo Enterprise, ʻo ia ke kumu kūʻai kālā, ʻoiai ʻo ClickHouse ʻaʻohe kumu kūʻai a hana ʻia ma Rusia. He mea kūpono i ka USA ka mea i koho ʻia i loko o InfluxDB, a ma ko mākou ʻāina ua makemake ʻo ClickHouse.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka