Ọ bụrụ na ị na-eji usoro nchekwa data usoro oge (timeseries db,
Disclaimer: Okwu ndị e depụtara na-emetụta ụdị InfluxDB 1.7.4.
Gịnị kpatara usoro oge?
Ọrụ a bụ iji soro azụmahịa dị iche iche na blockchain na ngosipụta ọnụ ọgụgụ. Kpọmkwem, anyị na-ele anya n'ikuku na ọkụ nke mkpụrụ ego kwụsiri ike (
Mgbe a na-enyocha azụmahịa, otu echiche bịara: iji usoro data usoro oge InfluxDB dị ka isi nchekwa. Azụmahịa bụ isi na oge ma ha dabara nke ọma na usoro usoro oge.
Ọrụ nchịkọta ahụ dịkwa mma nke ukwuu - dị mma maka nhazi eserese na ogologo oge. Onye ọrụ chọrọ eserese maka otu afọ, ebe nchekwa data nwere usoro data nwere oge nkeji ise. Ọ baghị uru iziga ya otu narị puku ntụpọ - ewezuga nhazi ogologo oge, ha agaghị adaba na ihuenyo ahụ. Ị nwere ike dee mmejuputa iwu nke gị nke ịbawanye oge, ma ọ bụ jiri ọrụ nchịkọta arụnyere n'ime Influx. Site n'enyemaka ha, ị nwere ike ikpokọta data kwa ụbọchị wee zipụ isi 365 achọrọ.
Ọ bụ ntakịrị ihe mgbagwoju anya na a na-ejikarị ọdụ data dị otú ahụ eme ihe maka ịnakọta metrics. Nleba anya nke sava, ngwaọrụ iot, ihe ọ bụla sitere na ọtụtụ nde isi nke ụdị "na-asọ": [<oge> - <metric value>]. Ma ọ bụrụ na nchekwa data na-arụ ọrụ nke ọma na nnukwu data data, gịnị kpatara obere olu ga-eji nwee nsogbu? N'iburu nke a n'uche, anyị were InfluxDB rụọ ọrụ.
Kedu ihe ọzọ dị mma na InfluxDB
Ewezuga ọrụ nchịkọta ndị a kpọtụrụ aha, enwere nnukwu ihe ọzọ - ajụjụ na-aga n'ihu (
E nwekwara atumatu njide (
- mepụta ajụjụ na-aga n'ihu iji chịkọta data na tebụl ọzọ;
- maka tebụl nke mbụ, kọwapụta amụma maka ihichapụ metrik ndị tọrọ karịa otu izu ahụ.
Na Influx ga-ebelata nha data n'onwe ya wee hichapụ ihe ndị na-adịghị mkpa.
Banyere data echekwara
Enweghị ọtụtụ data echekwara: banyere 70 puku azụmahịa na ihe nde ọzọ na ozi ahịa. Na-agbakwụnye ndenye ọhụrụ - ọ dịghị ihe karịrị 3000 isi kwa ụbọchị. Enwekwara metrics maka saịtị ahụ, mana enwere ntakịrị data n'ebe ahụ yana, dịka iwu njide, a na-echekwa ha ihe karịrị otu ọnwa.
Nsogbu
N'oge mmepe na ule na-esote nke ọrụ ahụ, nsogbu ndị ọzọ dị egwu bilitere na ọrụ InfluxDB.
1. ihichapụ data
Enwere usoro data nwere azụmahịa:
SELECT time, amount, block, symbol FROM transactions WHERE symbol='USDT'
Nsonaazụ:
Ana m ezipu iwu ka ihichapụ data:
DELETE FROM transactions WHERE symbol=’USDT’
M na-arịọ arịrịọ ka m nweta data ehichapụrụ. Na kama nzaghachi efu, Influx na-eweghachi akụkụ nke data kwesịrị ihichapụ.
Ana m agbalị ihichapụ tebụl ahụ dum:
DROP MEASUREMENT transactions
Ana m elele nhichapụ tebụl:
SHOW MEASUREMENTS
Anaghị m ahụ tebụl dị na ndepụta ahụ, mana ajụjụ data ọhụrụ ka na-eweghachi otu usoro azụmahịa ahụ.
Nsogbu a dakwasịrị m naanị otu ugboro, ebe ọ bụ na ikpe ihichapụ ahụ bụ ikpe dịpụrụ adịpụ. Ma omume a nke nchekwa data n'ụzọ doro anya adịghị adabara n'ime usoro nke ọrụ "ziri ezi". Emechara m ahụ na ọ mepere na github
N'ihi ya, ihichapụ na iweghachite dum nchekwa data nyere aka.
2. Ọnụ ọgụgụ na-ese n'elu mmiri
Mgbakọ mgbakọ na mwepụ mgbe ị na-eji ọrụ arụnyere na InfluxDB nwere mperi ziri ezi. Ọ bụghị na nke a bụ ihe pụrụ iche, ma ọ dịghị mma.
N'ọnọdụ m, data ahụ nwere akụkụ ego na ọ ga-amasị m ịhazi ya na oke ziri ezi. N'ihi nke a, anyị na-eme atụmatụ ịhapụ ajụjụ na-aga n'ihu.
3. Enweghị ike ịmegharị ajụjụ na-aga n'ihu na mpaghara oge dị iche iche
Ọrụ ahụ nwere tebụl nwere ọnụ ọgụgụ azụmahịa kwa ụbọchị. Maka ụbọchị ọ bụla, ịkwesịrị ịhazi azụmahịa niile maka ụbọchị ahụ. Ma ụbọchị onye ọrụ ọ bụla ga-amalite n'oge dị iche iche, ya mere usoro azụmahịa ga-adị iche. Site na UTC ee
Na InfluxDB, mgbe ị na-agbakọ site na oge, ị nwekwara ike ịkọwapụta mgbanwe, dịka ọmụmaatụ maka oge Moscow (UTC+3):
SELECT MEAN("supply") FROM transactions GROUP BY symbol, time(1d, 3h) fill(previous)
Mana nsonaazụ ajụjụ ga-abụ ezighi ezi. Maka ihe ụfọdụ, data agbakọtara kwa ụbọchị ga-amalite na 1677 (InfluxDB na-akwado nkwado oge site na afọ a):
Iji dozie nsogbu a, anyị gbanwere ọrụ ahụ ruo nwa oge gaa na UTC+0.
4. Arụmọrụ
Enwere ọtụtụ akara na ịntanetị na-atụnyere InfluxDB na ọdụ data ndị ọzọ. N'ileghachi anya na mbụ, ha dị ka ngwa ahịa, ma ugbu a, echere m na e nwere ụfọdụ eziokwu n'ime ha.
Aga m agwa gị okwu m.
Ọrụ ahụ na-enye usoro API na-eweghachite ọnụ ọgụgụ maka ụbọchị ikpeazụ. Mgbe ị na-eme mgbako, usoro a na-ajụ nchekwa data ugboro atọ na ajụjụ ndị a:
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
Nkọwa:
- Na arịrịọ mbụ, anyị na-enweta isi ihe ikpeazụ maka mkpụrụ ego ọ bụla nwere data ahịa. Isi asatọ maka mkpụrụ ego asatọ n'ọnọdụ m.
- Arịrịọ nke abụọ na-enweta otu isi ihe kacha ọhụrụ.
- Nke atọ na-arịọ ndepụta azụmahịa maka awa XNUMX gara aga; enwere ike inwe ọtụtụ narị n'ime ha.
Ka m dokwuo anya na InfluxDB na-ewulite ndeksi na-akpaghị aka dabere na mkpado na oge, nke na-eme ka ajụjụ dị ngwa. Na nke mbụ arịrịọ akara bụ mkpado.
Emeela m ule nrụgide na usoro API a. Maka 25 RPS, ihe nkesa ahụ gosipụtara ibu zuru oke nke CPU isii:
N'otu oge ahụ, usoro NodeJs enyeghị ibu ọ bụla.
Ọsọ ogbugbu ahụ agbadalarị site na 7-10 RPS: ọ bụrụ na otu onye ahịa nwere ike nweta nzaghachi na 200 ms, mgbe ahụ ndị ahịa 10 ga-echere otu nke abụọ. 25 RPS bụ njedebe nke nkwụsi ike tara ahụhụ; 500 njehie eweghachiri ndị ahịa.
Site na ịrụ ọrụ dị otú ahụ ọ gaghị ekwe omume iji Influx na ọrụ anyị. Ọzọkwa: n'ime oru ngo nke kwesịrị igosi ọtụtụ ndị ahịa nlekota, nsogbu ndị yiri ya nwere ike ịpụta na ihe nkesa metrics ga-ebufe ibu.
nkwubi
Nkwubi okwu kachasị mkpa sitere na ahụmịhe ahụ enwetara bụ na ị nweghị ike iwere teknụzụ amaghị ama n'ime ọrụ na-enweghị nyocha zuru oke. Nleba anya dị mfe nke okwu mepere emepe na github nwere ike inye ozi iji zere ịhọrọ InfluxDB dị ka ụlọ ahịa data bụ isi.
InfluxDB kwesịrị ịbụ ezigbo mma maka ọrụ nke ọrụ m, mana dịka omume gosipụtara, nchekwa data a anaghị egbo mkpa ma nwee ọtụtụ ahụhụ.
Ị nwere ike ịhụlarị ụdị 2.0.0-beta na ebe nchekwa ọrụ; naanị anyị nwere ike ịtụ anya na ụdị nke abụọ ga-enwe nkwalite dị ukwuu. Ka ọ dị ugbu a, m ga-aga mụọ akwụkwọ TimescaleDB.
isi: www.habr.com