ʻO ka huhū, ke kūʻai aku a me ke kaumaha ke hana pū me InfluxDB

ʻO ka huhū, ke kūʻai aku a me ke kaumaha ke hana pū me InfluxDB

Inā ʻoe e hoʻohana i kahi waihona moʻo manawa (timeseries db, wiki) e like me ka waihona nui no kahi pūnaewele me nā helu helu, a laila ma kahi o ka hoʻoponopono ʻana i ka pilikia hiki iā ʻoe ke loaʻa i ka nui o nā poʻo. Ke hana nei au i kahi papahana e hoʻohana ana i ia ʻikepili, a i kekahi manawa ʻo InfluxDB, e kūkākūkā ʻia, hōʻike ʻia i nā mea i manaʻo ʻole ʻia.

Akahana: Pili nā pilikia i helu ʻia i ka mana InfluxDB 1.7.4.

No ke aha ka moʻo manawa?

ʻO ka papahana ka nānā ʻana i nā kālepa ma nā blockchains like ʻole a hōʻike i nā helu. ʻO ke kikoʻī, ke nānā nei mākou i ka hoʻokuʻu ʻana a me ka puhi ʻana o nā kālā paʻa (wiki). Ma muli o kēia mau kālepa, pono ʻoe e kūkulu i nā pakuhi a hōʻike i nā papa hōʻuluʻulu.

ʻOiai ke kālailai ʻana i nā kālepa, ua puka mai kahi manaʻo: e hoʻohana i ka waihona kikowaena manawa InfluxDB ma ke ʻano he waihona nui. ʻO nā pānaʻi he mau kiko i ka manawa a kūpono lākou i ke kumu hoʻohālike manawa.

Ua ʻike maikaʻi ʻia nā hana aggregation - kūpono no ka hoʻoili ʻana i nā pakuhi me kahi manawa lōʻihi. Pono ka mea hoʻohana i kahi pakuhi no hoʻokahi makahiki, a aia ka waihona i kahi ʻikepili i hoʻonohonoho ʻia me ka manawa o ʻelima mau minuke. He mea ʻole ka hoʻouna ʻana iā ia i hoʻokahi haneli kaukani kiko - ʻokoʻa ka hana lōʻihi, ʻaʻole lākou e kūpono i ka pale. Hiki iā ʻoe ke kākau i kāu hoʻokō ponoʻī o ka hoʻonui ʻana i ka manawa, a i ʻole e hoʻohana i nā hana aggregation i kūkulu ʻia i loko o Influx. Me kā lākou kōkua, hiki iā ʻoe ke hui pū i ka ʻikepili i ka lā a hoʻouna i nā helu 365 i koi ʻia.

He mea pōʻino ka hoʻohana maʻamau o ia mau ʻikepili no ke kumu o ka ʻohi ʻana i nā ana. Ka nānā ʻana i nā kikowaena, nā mea hana iot, nā mea a pau e loaʻa ai nā miliona o ke ʻano "holo": [<manawa> - <metric value>]. Akā inā hana maikaʻi ka waihona me ka kahe ʻikepili nui, a laila no ke aha e pilikia ai ka leo liʻiliʻi? Me kēia noʻonoʻo, ua lawe mākou iā InfluxDB e hana.

He aha nā mea ʻē aʻe ma InfluxDB

Ma waho aʻe o nā hana aggregation i ʻōlelo ʻia, aia kekahi mea nui - nā nīnau mau (doc). ʻO kēia kahi mea hoʻonohonoho i kūkulu ʻia i loko o ka waihona e hiki ke hana i ka ʻikepili ma kahi papa hana. No ka laʻana, i kēlā me kēia 24 hola hiki iā ʻoe ke hui pū i nā moʻolelo āpau no ka lā, e helu i ka awelika a hoʻopaʻa i hoʻokahi helu hou ma kahi papa ʻē aʻe me ka ʻole e kākau i kāu mau kaʻa ponoʻī.

Eia pū kekahi nā kulekele mālama (doc)—hoʻonohonoho ʻana i ka holoi ʻana i ka ʻikepili ma hope o kekahi manawa. He mea pono ia, no ka laʻana, pono ʻoe e mālama i ka ukana CPU no hoʻokahi pule me nā ana i hoʻokahi manawa i kēlā me kēia kekona, akā ma kahi mamao o ʻelua mau mahina ʻaʻole pono ia pololei. I kēia kūlana, hiki iā ʻoe ke hana i kēia:

  1. hana i kahi nīnau mau no ka hōʻuluʻulu ʻana i ka ʻikepili i loko o kahi papa ʻē aʻe;
  2. no ka papaʻaina mua, e wehewehe i ke kulekele no ka holoi ʻana i nā ana i ʻoi aku ma mua o kēlā pule hoʻokahi.

A e hōʻemi ka Influx i ka nui o ka ʻikepili a kāpae i nā mea pono ʻole.

E pili ana i ka ʻikepili i mālama ʻia

ʻAʻole nui ka ʻikepili i mālama ʻia: ma kahi o 70 tausani mau hana a me kekahi mau helu miliona me ka ʻike mākeke. Hoʻohui i nā mea hou - ʻaʻole ʻoi aku ma mua o 3000 mau helu i kēlā me kēia lā. Aia kekahi metric no ka pūnaewele, akā he liʻiliʻi ka ʻikepili ma laila a, e like me ke kulekele mālama, mālama ʻia lākou no hoʻokahi mahina.

Nā pilikia

I ka wā o ka hoʻomohala ʻana a me ka hoʻāʻo ʻana o ka lawelawe, ua nui aʻe nā pilikia koʻikoʻi i ka hana ʻana o InfluxDB.

1. Holoi i ka ʻikepili

Aia kekahi pūʻulu ʻikepili me nā kālepa:

SELECT time, amount, block, symbol FROM transactions WHERE symbol='USDT'

Hualoaʻa:

ʻO ka huhū, ke kūʻai aku a me ke kaumaha ke hana pū me InfluxDB

Ke hoʻouna nei au i kahi kauoha e holoi i ka ʻikepili:

DELETE FROM transactions WHERE symbol=’USDT’

A laila, noi au e loaʻa ka ʻikepili i holoi ʻia. A ma kahi o kahi pane ʻole, hoʻihoʻi ʻo Influx i kahi ʻāpana o ka ʻikepili pono e holoi ʻia.

Ke ho'āʻo nei au e holoi i ka papaʻaina holoʻokoʻa:

DROP MEASUREMENT transactions

Nānā au i ka holoi ʻana i ka papaʻaina:

SHOW MEASUREMENTS

ʻAʻole au i ʻike i ka papa ma ka papa inoa, akā e hoʻihoʻi mau ana kahi nīnau ʻikepili hou i ka hoʻonohonoho like o nā kālepa.

Hoʻokahi wale nō pilikia i loaʻa iaʻu, no ka mea, he hihia kaʻawale ka hihia holoi. Akā, ʻaʻole kūpono kēia ʻano o ka waihona i ke ʻano o ka hana "pololei". Ma hope ua ʻike au ua hāmama ma github tiketi kokoke i hoʻokahi makahiki i hala ma kēia kumuhana.

ʻO ka hopena, ua kōkua ka holoi ʻana a hoʻihoʻi hou i ka waihona āpau.

2. Helu lana

ʻO ka helu ʻana i ka makemakika i ka wā e hoʻohana ai i nā hana i kūkulu ʻia ma InfluxDB loaʻa nā hewa pololei. ʻAʻole ia he mea maʻamau, akā ʻoluʻolu.

I koʻu hihia, loaʻa i ka ʻikepili kahi ʻāpana kālā a makemake wau e hana me ka pololei kiʻekiʻe. Ma muli o kēia, manaʻo mākou e haʻalele i nā nīnau mau.

3. ʻAʻole hiki ke hoʻololi ʻia nā nīnau hoʻomau i nā ʻāpana manawa like ʻole

He papaʻaina ka lawelawe me nā helu kālepa i kēlā me kēia lā. No kēlā me kēia lā, pono ʻoe e hui pū i nā hana āpau no kēlā lā. Akā e hoʻomaka ka lā o kēlā me kēia mea hoʻohana i kahi manawa ʻē aʻe, a no laila e ʻokoʻa ka hoʻonohonoho o nā hana. Na UTC ʻae 37 mau ʻano nā hoʻololi e pono ai ʻoe e hōʻuluʻulu i ka ʻikepili.

Ma InfluxDB, i ka hui ʻana ma ka manawa, hiki iā ʻoe ke kuhikuhi i kahi hoʻololi, no ka laʻana no ka manawa Moscow (UTC+3):

SELECT MEAN("supply") FROM transactions GROUP BY symbol, time(1d, 3h) fill(previous)

Akā ʻaʻole pololei ka hopena o ka nīnau. No kekahi kumu, e hoʻomaka ka ʻikepili i hui ʻia ma ka lā a hiki i 1677 (Ke kākoʻo ʻia nei ʻo InfluxDB i kahi manawa mai kēia makahiki):

ʻO ka huhū, ke kūʻai aku a me ke kaumaha ke hana pū me InfluxDB

No ka hoʻoponopono ʻana i kēia pilikia, ua hoʻololi mākou i ka lawelawe i UTC+0.

4. Hana

Nui nā hōʻailona ma ka Pūnaewele e hoʻohālikelike iā InfluxDB a me nā ʻikepili ʻē aʻe. I ka nānā mua ʻana, ua like lākou me nā mea kūʻai aku, akā i kēia manawa ke manaʻo nei au aia kekahi ʻoiaʻiʻo i loko o lākou.

E haʻi aku wau iā ʻoe i kaʻu hihia.

Hāʻawi ka lawelawe i kahi ala API e hoʻihoʻi i nā helu no ka lā hope. I ka hana ʻana i ka helu ʻana, nīnau ke ʻano i ka waihona ʻikepili ʻekolu manawa me kēia mau nīnau:

SELECT * FROM coins_info WHERE time <= NOW() GROUP BY symbol ORDER BY time DESC LIMIT 1

SELECT * FROM dominance_info ORDER BY time DESC LIMIT 1

SELECT * FROM transactions WHERE time >= NOW() - 24h ORDER BY time DESC

Wehewehe:

  1. Ma ka noi mua, loaʻa iā mākou nā helu hope no kēlā me kēia kālā me ka ʻikepili mākeke. ʻEwalu helu no ʻewalu kālā i koʻu hihia.
  2. Loaʻa i ka noi ʻelua kekahi o nā helu hou loa.
  3. Ke noi nei ke kolu i ka papa inoa o nā hana no nā hola XNUMX hope loa; aia paha he mau haneli o lākou.

E wehewehe au i ka hana ʻana o InfluxDB i kahi index e pili ana i nā hōʻailona a me ka manawa, e wikiwiki ana i nā nīnau. Ma ka noi mua hōʻailona he lepe.

Ua holo au i kahi ho'āʻo koʻikoʻi ma kēia ʻano API. No 25 RPS, ua hōʻike ke kikowaena i ka ukana piha o ʻeono CPUs:

ʻO ka huhū, ke kūʻai aku a me ke kaumaha ke hana pū me InfluxDB

I ka manawa like, ʻaʻole i hāʻawi ʻia ke kaʻina NodeJs i kekahi ukana.

Ua hoʻohaʻahaʻa ʻia ka wikiwiki o ka hoʻokō ʻana e 7-10 RPS: inā hiki i kahi mea kūʻai ke loaʻa i ka pane ma 200 ms, a laila 10 mau mea kūʻai aku e kali i kekona. ʻO 25 RPS ka palena i pilikia ai ke kūpaʻa; Ua hoʻihoʻi ʻia nā hewa 500 i nā mea kūʻai aku.

Me ia hana ʻaʻole hiki ke hoʻohana i ka Influx i kā mākou papahana. Eia kekahi: ma kahi papahana kahi e hōʻike ʻia ai ka nānā ʻana i nā mea kūʻai aku he nui, hiki ke ʻike ʻia nā pilikia like a hoʻonui ʻia ka server metric.

hopena

ʻO ka hopena koʻikoʻi mai ka ʻike i loaʻa, ʻaʻole hiki iā ʻoe ke lawe i kahi ʻenehana ʻike ʻole i loko o kahi papahana me ka ʻole o ka nānā ʻana. Hiki i kahi kānana maʻalahi o nā pilikia wehe ma ka github ke hāʻawi i ka ʻike e pale aku ai i ke koho ʻana iā InfluxDB i ka hale kūʻai ʻikepili nui.

Pono ka InfluxDB i kūpono no nā hana o kaʻu papahana, akā e like me ka hōʻike ʻana i ka hana, ʻaʻole kūpono kēia waihona i nā pono a he nui nā pōpoki.

Hiki iā ʻoe ke loaʻa i ka mana 2.0.0-beta i loko o ka waihona papahana; hiki iā mākou ke manaʻolana e loaʻa i ka mana ʻelua nā hoʻomaikaʻi nui. I kēia manawa, e hele wau e aʻo i ka palapala TimescaleDB.

Source: www.habr.com

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