Iwe, ịzụ ahịa na ịda mbà n'obi mgbe ị na-arụ ọrụ na InfluxDB

Iwe, ịzụ ahịa na ịda mbà n'obi mgbe ị na-arụ ọrụ na InfluxDB

Ọ bụrụ na ị na-eji usoro nchekwa data usoro oge (timeseries db, wiki) dị ka isi nchekwa maka saịtị nwere ọnụ ọgụgụ, mgbe ahụ kama idozi nsogbu ahụ ị nwere ike nweta ọtụtụ isi ọwụwa. M na-arụ ọrụ na a oru ngo na-eji dị otú ahụ a nchekwa data, na mgbe ụfọdụ InfluxDB, nke a ga-atụle, na-egosi kpamkpam na-atụghị anya ihe ịtụnanya.

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 (wiki). Dabere na azụmahịa ndị a, ịkwesịrị ịmepụta eserese ma gosipụta tebụl nchịkọta.

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 (DOC). Nke a bụ ihe nhazi oge arụnyere n'ime nchekwa data nwere ike hazie data na nhazi oge. Dịka ọmụmaatụ, kwa awa 24 ị nwere ike ịchịkọta ndekọ niile maka ụbọchị ahụ, gbakọọ nkezi wee dekọọ otu isi ihe ọhụrụ na tebụl ọzọ na-edeghị igwe igwe nke gị.

E nwekwara atumatu njide (DOC) - melite ihichapụ data mgbe oge ụfọdụ gasịrị. Ọ bara uru mgbe, dịka ọmụmaatụ, ịchọrọ ịchekwa ibu CPU otu izu na nha otu ugboro kwa sekọnd, mana ihe dị anya nke ọnwa ole na ole adịghị mkpa. N'ọnọdụ dị otú a, ị nwere ike ime nke a:

  1. mepụta ajụjụ na-aga n'ihu iji chịkọta data na tebụl ọzọ;
  2. 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ụ:

Iwe, ịzụ ahịa na ịda mbà n'obi mgbe ị na-arụ ọrụ na InfluxDB

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 tiketi ihe fọrọ nke nta ka ọ bụrụ otu afọ gara aga na isiokwu a.

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 37 dị iche iche mgbanwe nke ị chọrọ iji chịkọta data.

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):

Iwe, ịzụ ahịa na ịda mbà n'obi mgbe ị na-arụ ọrụ na InfluxDB

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:

  1. 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.
  2. Arịrịọ nke abụọ na-enweta otu isi ihe kacha ọhụrụ.
  3. 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:

Iwe, ịzụ ahịa na ịda mbà n'obi mgbe ị na-arụ ọrụ na InfluxDB

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

Tinye a comment