Inā ʻoe e hoʻohana i kahi waihona moʻo manawa (timeseries db,
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 (
ʻ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 (
Eia pū kekahi nā kulekele mālama (
- hana i kahi nīnau mau no ka hōʻuluʻulu ʻana i ka ʻikepili i loko o kahi papa ʻē aʻe;
- 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:
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
ʻ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
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):
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:
- 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.
- Loaʻa i ka noi ʻelua kekahi o nā helu hou loa.
- 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:
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