Fearg, margáil agus dúlagar agus tú ag obair le InfluxDB

Fearg, margáil agus dúlagar agus tú ag obair le InfluxDB

Má úsáideann tú bunachar sonraí sraith ama (timeseries db, wiki) mar phríomhstóráil do shuíomh le staitisticí, ansin in ionad an fhadhb a réiteach is féidir leat a lán tinneas cinn a fháil. Táim ag obair ar thionscadal a úsáideann bunachar sonraí den sórt sin, agus uaireanta cuireann InfluxDB, a phléifear, iontas go hiomlán gan choinne i láthair.

Séanadh: Baineann na saincheisteanna atá liostaithe le InfluxDB leagan 1.7.4.

Cén fáth sraith ama?

Tá an tionscadal chun idirbhearta a rianú ar blockchain éagsúla agus staitisticí a thaispeáint. Go sonrach, féachaimid ar astaíocht agus ar dhó bonn cobhsaí (wiki). Bunaithe ar na hidirbhearta seo, ní mór duit graif a thógáil agus táblaí achoimre a thaispeáint.

Agus anailís á déanamh ar idirbhearta, tháinig smaoineamh chun cinn: bunachar sonraí sraith ama InfluxDB a úsáid mar phríomhstóráil. Is pointí ama iad na hidirbhearta agus luíonn siad go maith leis an tsamhail sraith ama.

D'fhéach na feidhmeanna comhiomlánaithe an-áisiúil freisin - oiriúnach le haghaidh cairteacha a phróiseáil le tréimhse fhada. Teastaíonn cairt ón úsáideoir ar feadh bliana, agus tá tacar sonraí sa bhunachar sonraí le fráma ama cúig nóiméad. Ní miste céad míle ponc a chur chuige - seachas próiseáil fhada, ní fiú iad a bheith ar an scáileán. Is féidir leat do chur i bhfeidhm féin a scríobh chun an fráma ama a mhéadú, nó úsáid a bhaint as na feidhmeanna comhiomlánaithe atá san Insreabhadh. Le cabhair uathu, is féidir leat sonraí a ghrúpáil i rith an lae agus na 365 pointe riachtanacha a sheoladh.

Bhí sé rud beag mearbhall go n-úsáidtear bunachair shonraí den sórt sin de ghnáth chun méadracht a bhailiú. Monatóireacht ar fhreastalaithe, gléasanna iot, gach rud as a bhfuil na milliúin pointí den fhoirm “sreabhadh”: [<am> - <luach méadrach>]. Ach má oibríonn an bunachar sonraí go maith le sreabhadh mór sonraí, cén fáth ar chóir go mbeadh líon beag ina chúis le fadhbanna? Agus é seo san áireamh, ghlacamar le InfluxDB a bheith ag obair.

Cad eile atá áisiúil in InfluxDB

Seachas na feidhmeanna comhiomlánaithe atá luaite, tá rud iontach eile - ceisteanna leanúnacha (duga). Is sceidealóir é seo atá ionsuite sa bhunachar sonraí ar féidir leis sonraí a phróiseáil ar sceideal. Mar shampla, gach 24 uair is féidir leat na taifid go léir don lá a ghrúpáil, an meán a ríomh agus pointe nua amháin a thaifeadadh i dtábla eile gan do rothair féin a scríobh.

Chomh maith leis sin polasaithe coinneála (duga)—scriosadh sonraí a shocrú tar éis tréimhse áirithe. Tá sé úsáideach nuair, mar shampla, is gá duit an t-ualach LAP a stóráil ar feadh seachtaine le tomhais uair amháin in aghaidh an tsoicind, ach thar achar cúpla mí ní gá cruinneas den sórt sin. I gcás den sórt sin, is féidir leat é seo a dhéanamh:

  1. ceist leanúnach a chruthú chun sonraí a chomhiomlánú i dtábla eile;
  2. don chéad tábla, sainmhínigh beartas chun méadracht atá níos sine ná an tseachtain chéanna sin a scriosadh.

Agus laghdóidh Influx go neamhspleách méid na sonraí agus scriosfaidh sé rudaí gan ghá.

Maidir le sonraí stóráilte

Ní stóráiltear mórán sonraí: thart ar 70 míle idirbheart agus milliún pointe eile le faisnéis mhargaidh. iontrálacha nua a chur leis - gan níos mó ná 3000 pointe in aghaidh an lae. Tá méadrachtaí ann don suíomh freisin, ach is beag sonraí atá ann agus, de réir an bheartais coinneála, stóráiltear iad ar feadh níos mó ná mí.

Fadhbanna

Le linn na seirbhíse a fhorbairt agus a thástáil ina dhiaidh sin, tháinig fadhbanna níos mó agus níos mó chun cinn maidir le feidhmiú InfluxDB.

1. Sonraí a scriosadh

Tá sraith sonraí ann le hidirbhearta:

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

Toradh:

Fearg, margáil agus dúlagar agus tú ag obair le InfluxDB

Tá ordú á sheoladh agam chun sonraí a scriosadh:

DELETE FROM transactions WHERE symbol=’USDT’

Ansin déanaim iarratas chun na sonraí atá scriosta cheana féin a fháil. Agus in ionad freagra folamh, cuireann Influx cuid de na sonraí ar ais ba cheart a scriosadh.

Tá mé ag iarraidh an tábla ar fad a scriosadh:

DROP MEASUREMENT transactions

Seiceáilim scriosadh an tábla:

SHOW MEASUREMENTS

Ní fheicim an tábla ar an liosta, ach cuireann ceist sonraí nua an tsraith chéanna idirbheart ar ais fós.

Níor tharla an fhadhb domsa ach uair amháin, ós rud é gur cás iargúlta é an cás scriosta. Ach is léir nach dtagann iompar an bhunachair shonraí leis an gcreat oibríochta “ceart”. Níos déanaí fuair mé é ar oscailt ar github ticéad beagnach bliain ó shin ar an ábhar seo.

Mar thoradh air sin, chabhraigh sé an bunachar sonraí iomlán a scriosadh agus ansin a athchóiriú.

2. Uimhreacha snámhphointe

Tá earráidí cruinnis ag baint le ríomhaireachtaí matamaitice agus feidhmeanna ionsuite in InfluxDB in úsáid. Ní hé gur rud neamhghnách é seo, ach tá sé míthaitneamhach.

I mo chás, tá comhpháirt airgeadais ag na sonraí agus ba mhaith liom iad a phróiseáil le cruinneas ard. Mar gheall air seo, tá sé beartaithe againn ceisteanna leanúnacha a thréigean.

3. Ní féidir fiosrúcháin leanúnacha a chur in oiriúint do chriosanna ama éagsúla

Tá tábla ag an tseirbhís le staitisticí idirbhearta laethúla. Do gach lá, ní mór duit gach idirbheart don lá sin a ghrúpáil. Ach tosóidh lá gach úsáideora ag am difriúil, agus dá bhrí sin beidh an tsraith idirbheart difriúil. De réir UTC tá 37 leagan sealanna a gcaithfidh tú sonraí a chomhiomlánú ina leith.

In InfluxDB, agus tú ag grúpáil de réir ama, is féidir leat athrú a shonrú freisin, mar shampla le haghaidh am Moscó (UTC+3):

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

Ach beidh toradh an cheist mícheart. Ar chúis éigin, cuirfear tús le sonraí arna ngrúpáil de réir an lae an bealach ar fad ar ais go dtí 1677 (tacaíonn InfluxDB go hoifigiúil le réimse ama ón mbliain seo):

Fearg, margáil agus dúlagar agus tú ag obair le InfluxDB

Chun an fhadhb seo a réiteach, d'athraíomar an tseirbhís go sealadach go UTC+0.

4. Feidhmíocht

Tá go leor tagarmharcanna ar an Idirlíon a dhéanann comparáid idir InfluxDB agus bunachair shonraí eile. Ar an gcéad amharc, d'fhéach siad cosúil le hábhair mhargaíochta, ach anois is dóigh liom go bhfuil roinnt fírinne iontu.

Inseoidh mé mo chás duit.

Soláthraíonn an tseirbhís modh API a sheolann staitisticí ar ais don lá deiridh. Agus ríomhanna á ndéanamh, cuireann an modh ceisteanna ar an mbunachar sonraí faoi thrí leis na ceisteanna seo a leanas:

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

Míniú

  1. Sa chéad iarratas, faighimid na pointí deireanacha do gach bonn le sonraí margaidh. Ocht bpointe ar ocht mbonn i mo chás.
  2. Faigheann an dara iarratas ceann de na pointí is nuaí.
  3. Iarrann an tríú ceann liosta idirbhearta le XNUMX uair an chloig anuas; d'fhéadfadh go mbeadh na céadta acu ann.

Lig dom a shoiléiriú go dtógann InfluxDB innéacs go huathoibríoch bunaithe ar chlibeanna agus am, a chuireann dlús le fiosruithe. Sa chéad iarratas siombail is clib.

Tá tástáil struis ar siúl agam ar an modh API seo. Le haghaidh 25 RPS, léirigh an freastalaí ualach iomlán de shé LAP:

Fearg, margáil agus dúlagar agus tú ag obair le InfluxDB

Ag an am céanna, níor chuir próiseas NodeJs aon ualach ar fáil ar chor ar bith.

Tá an luas forghníomhaithe díghrádaithe cheana féin ag 7-10 RPS: dá bhféadfadh cliant amháin freagra a fháil i 200 ms, ansin bhí ar 10 gcliant fanacht soicind. 25 Is é RPS an teorainn ag a d’fhulaing cobhsaíocht; cuireadh 500 earráid ar ais chuig na cliaint.

Le feidhmíocht den sórt sin tá sé dodhéanta Sní isteach a úsáid inár dtionscadal. Ina theannta sin: i dtionscadal ina bhfuil gá le monatóireacht a thaispeáint do go leor cliant, d'fhéadfadh fadhbanna den chineál céanna a bheith le feiceáil agus beidh an freastalaí méadrachta ró-ualach.

Aschur

Is é an chonclúid is tábhachtaí ón taithí a fuarthas ná nach féidir leat teicneolaíocht anaithnid a thabhairt isteach i dtionscadal gan dóthain anailíse. D’fhéadfadh scagadh simplí ar cheisteanna oscailte ar github faisnéis a sholáthar ionas nach roghnódh InfluxDB mar phríomhstór sonraí.

Ba cheart go mbeadh InfluxDB oiriúnach go maith do thascanna mo thionscadail, ach mar a léirigh cleachtas, ní chomhlíonann an bunachar sonraí seo na riachtanais agus tá go leor fabhtanna ann.

Is féidir leat leagan 2.0.0-beta a fháil cheana féin i stór an tionscadail; ní féidir linn ach a bheith ag súil go mbeidh feabhsuithe suntasacha ar an dara leagan. Idir an dá linn, déanfaidh mé staidéar ar an gcáipéisíocht TimescaleDB.

Foinse: will.com

Add a comment