Fearg, barganachadh agus trom-inntinn nuair a bhios tu ag obair le InfluxDB

Fearg, barganachadh agus trom-inntinn nuair a bhios tu ag obair le InfluxDB

Ma chleachdas tu stòr-dàta sreath ùine (sreath-ùine db, wiki) mar phrìomh stòradh airson làrach le staitistig, an uair sin an àite a bhith a 'fuasgladh na duilgheadas a gheibh thu tòrr ceann goirt. Tha mi ag obair air pròiseact a bhios a’ cleachdadh stòr-dàta mar seo, agus uaireannan bidh InfluxDB, air an tèid a dheasbad, a’ taisbeanadh iongnadh gu tur ris nach robh dùil.

Àicheadh: Tha na cùisean a tha air an liostadh a’ buntainn ri dreach InfluxDB 1.7.4.

Carson sreath ùine?

Tha am pròiseact airson sùil a chumail air gnothaichean air diofar blockchain agus staitistig a thaisbeanadh. Gu sònraichte, bidh sinn a’ coimhead air sgaoileadh agus losgadh bhuinn stàbaill (wiki). Stèidhichte air na gnothaichean sin, feumaidh tu grafaichean a thogail agus clàran geàrr-chunntas a shealltainn.

Fhad ‘s a bha sinn a’ dèanamh anailis air gnothaichean, thàinig beachd am bàrr: an stòr-dàta sreath ùine InfluxDB a chleachdadh mar phrìomh stòradh. Tha gnothaichean nam puingean ann an ùine agus bidh iad a’ freagairt gu math ris a’ mhodail sreath ùine.

Bha na gnìomhan cruinneachaidh cuideachd a’ coimhead gu math goireasach - air leth freagarrach airson giullachd chlàran le ùine fhada. Feumaidh an neach-cleachdaidh clàr airson bliadhna, agus tha seata dàta anns an stòr-dàta le frèam-ama de chòig mionaidean. Chan eil e ciallach ceud mìle dot a chuir thuige - a bharrachd air giollachd fada, cha bhith iad eadhon a ’freagairt air an sgrion. Faodaidh tu do bhuileachadh fhèin a sgrìobhadh gus an clàr-ama àrdachadh, no na gnìomhan cruinneachaidh a tha air an togail a-steach do Influx a chleachdadh. Leis an cuideachadh, faodaidh tu dàta a chuir còmhla tron ​​​​latha agus na 365 puingean a tha a dhìth a chuir.

Bha e beagan troimh-chèile gu bheil stòran-dàta mar sin air an cleachdadh mar as trice airson metrics a chruinneachadh. Cumail sùil air frithealaichean, innealan iot, a h-uile càil às am bi milleanan de phuingean den fhoirm “sruthadh”: [<time> - <luach meatrach>]. Ach ma dh’ obraicheas an stòr-dàta gu math le sruth dàta mòr, carson a bu chòir àireamh bheag duilgheadasan adhbhrachadh? Le seo san amharc, thug sinn InfluxDB gu obair.

Dè eile a tha goireasach ann an InfluxDB

A bharrachd air na gnìomhan cruinneachaidh a chaidh ainmeachadh, tha rud math eile ann - ceistean leantainneach (doc). Is e seo clàr-ama a chaidh a thogail a-steach don stòr-dàta as urrainn dàta a phròiseasadh air clàr-ama. Mar eisimpleir, a h-uile 24 uair faodaidh tu na clàran gu lèir airson an latha a chuir còmhla, obrachadh a-mach a’ chuibheasachd agus aon phuing ùr a chlàradh ann an clàr eile gun a bhith a’ sgrìobhadh na baidhsagalan agad fhèin.

Cuideachd agad poileasaidhean glèidhidh (doc) - a’ stèidheachadh cuir às dàta às deidh ùine sònraichte. Tha e feumail, mar eisimpleir, nuair a dh'fheumas tu an luchd CPU a stòradh airson seachdain le tomhasan aon uair san diog, ach thar astar de mhìos no dhà chan eil feum air a leithid de mhearachd. Ann an suidheachadh mar seo, faodaidh tu seo a dhèanamh:

  1. cruthaich ceist leantainneach gus dàta a chruinneachadh ann an clàr eile;
  2. airson a’ chiad chlàr, mìnich poileasaidh airson cuir às do mheatairean a tha nas sine na an aon seachdain.

Agus lughdaichidh Influx gu neo-eisimeileach meud an dàta agus cuir às do rudan neo-riatanach.

Mu dheidhinn dàta air a stòradh

Chan eil mòran dàta air a stòradh: timcheall air 70 mìle gnìomh agus millean puing eile le fiosrachadh margaidh. Cuir inntrigidhean ùra ris - gun a bhith nas fhaide na 3000 puing gach latha. Tha metrics ann cuideachd airson an làrach, ach chan eil mòran dàta ann agus, a rèir a’ phoileasaidh gleidhidh, tha iad air an stòradh airson gun a bhith nas fhaide na mìos.

Duilgheadasan

Rè leasachadh agus deuchainn na seirbheis às deidh sin, dh’ èirich barrachd is barrachd dhuilgheadasan èiginneach ann an gnìomhachd InfluxDB.

1. Sguab às dàta

Tha sreath de dhàta ann le gnothaichean:

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

Toradh:

Fearg, barganachadh agus trom-inntinn nuair a bhios tu ag obair le InfluxDB

Tha mi a 'cur òrdugh airson dàta a sguabadh às:

DELETE FROM transactions WHERE symbol=’USDT’

An uairsin nì mi iarrtas airson an dàta a chaidh a dhubhadh às mu thràth fhaighinn. Agus an àite freagairt falamh, bidh Influx a’ tilleadh pàirt den dàta a bu chòir a dhubhadh às.

Tha mi a’ feuchainn ris a’ chlàr gu lèir a sguabadh às:

DROP MEASUREMENT transactions

Bidh mi a’ sgrùdadh sguab às a’ bhòrd:

SHOW MEASUREMENTS

Chan eil mi a’ faicinn a’ chlàr air an liosta, ach tha ceist dàta ùr fhathast a’ tilleadh an aon sheata de ghnothaichean.

Cha do thachair an duilgheadas rium ach aon turas, leis gur e cùis iomallach a bh’ anns a’ chùis cuir às. Ach tha e soilleir nach eil an giùlan seo den stòr-dàta a’ freagairt air frèam obrachadh “ceart”. Nas fhaide air adhart lorg mi e fosgailte air github tiogaid cha mhòr bliadhna air ais air a’ chuspair seo.

Mar thoradh air an sin, chuidich cuir às agus an uairsin ath-nuadhachadh an stòr-dàta gu lèir.

2. Àireamhan puing-fleòdraidh

Tha mearachdan mionaideachd aig àireamhachadh matamataigeach nuair a bhios tu a’ cleachdadh gnìomhan togte ann an InfluxDB. Chan e gur e rud neo-àbhaisteach a tha seo, ach tha e mì-thlachdmhor.

Anns a 'chùis agam, tha pàirt ionmhasail aig an dàta agus bu mhath leam a phròiseasadh le fìor chruinneas. Air sgàth seo, tha sinn an dùil ceistean leantainneach a thrèigsinn.

3. Chan urrainnear ceistean leantainneach atharrachadh gu diofar sònaichean ùine

Tha clàr aig an t-seirbheis le staitistig malairt làitheil. Airson gach latha, feumaidh tu a h-uile gnothach a chuir còmhla airson an latha sin. Ach tòisichidh latha gach neach-cleachdaidh aig àm eadar-dhealaichte, agus mar sin bidh an seata de ghnothaichean eadar-dhealaichte. Le UTC tha 37 caochladh gluasadan far am feum thu dàta a chruinneachadh.

Ann an InfluxDB, nuair a bhios tu a’ cruinneachadh a rèir ùine, faodaidh tu gluasad a shònrachadh a bharrachd, mar eisimpleir airson ùine Moscow (UTC + 3):

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

Ach bidh toradh na ceiste ceàrr. Air adhbhar air choireigin, tòisichidh dàta air a chruinneachadh le latha fad na slighe air ais gu 1677 (tha InfluxDB gu h-oifigeil a’ toirt taic do raon ùine bhon bhliadhna seo):

Fearg, barganachadh agus trom-inntinn nuair a bhios tu ag obair le InfluxDB

Gus an duilgheadas seo fhuasgladh, thionndaidh sinn an t-seirbheis gu UTC+0 airson ùine.

4. Coileanadh

Tha mòran shlatan-tomhais air an eadar-lìn a tha a’ dèanamh coimeas eadar InfluxDB agus stòran-dàta eile. Aig a 'chiad sealladh, bha iad coltach ri stuthan margaidheachd, ach a-nis tha mi a' smaoineachadh gu bheil beagan fìrinn annta.

Innsidh mi mo chùis dhut.

Tha an t-seirbheis a 'toirt seachad modh API a thilleas staitistig airson an latha mu dheireadh. Nuair a bhios tu a’ dèanamh àireamhachadh, bidh an dòigh a’ ceasnachadh an stòr-dàta trì tursan leis na ceistean 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ìneachadh:

  1. Anns a 'chiad iarrtas, gheibh sinn na puingean mu dheireadh airson gach bonn le dàta margaidh. Ochd puingean airson ochd buinn na mo chùis.
  2. Bidh an dàrna iarrtas a’ faighinn aon de na puingean as ùire.
  3. Bidh an treas fear ag iarraidh liosta de ghnothaichean airson na XNUMX uairean mu dheireadh; is dòcha gu bheil grunn cheudan dhiubh ann.

Leig leam soilleireachadh gu bheil InfluxDB gu fèin-ghluasadach a’ togail clàr-amais stèidhichte air tagaichean agus ùine, a luathaicheas ceistean. Anns a 'chiad iarrtas samhla tha tag.

Tha mi air deuchainn cuideam a ruith air an dòigh API seo. Airson 25 RPS, sheall am frithealaiche làn luchd de shia CPUs:

Fearg, barganachadh agus trom-inntinn nuair a bhios tu ag obair le InfluxDB

Aig an aon àm, cha tug pròiseas NodeJs seachad luchd sam bith idir.

Tha an astar cur gu bàs mar-thà air a dhol sìos le 7-10 RPS: nam faigheadh ​​​​aon neach-dèiligidh freagairt ann an 200 ms, dh'fheumadh 10 cleachdaichean feitheamh diog. Is e 25 RPS an ìre aig an robh seasmhachd a’ fulang; Chaidh 500 mearachd a thilleadh gu teachdaichean.

Le leithid de choileanadh tha e do-dhèanta Influx a chleachdadh sa phròiseact againn. A bharrachd air an sin: ann am pròiseact far am feumar sgrùdadh a thaisbeanadh do mhòran luchd-dèiligidh, faodaidh duilgheadasan coltach ris nochdadh agus bidh cus luchd air an fhrithealaiche metrics.

co-dhùnadh

Is e an co-dhùnadh as cudromaiche bhon eòlas a fhuair thu nach urrainn dhut teicneòlas neo-aithnichte a thoirt a-steach do phròiseact gun sgrùdadh gu leòr. Dh’ fhaodadh sgrìonadh sìmplidh de chùisean fosgailte air github fiosrachadh a thoirt seachad gus nach tagh thu InfluxDB mar phrìomh stòr dàta.

Bu chòir gum biodh InfluxDB air a bhith gu math iomchaidh airson gnìomhan a’ phròiseict agam, ach mar a tha cleachdadh air sealltainn, chan eil an stòr-dàta seo a’ coinneachadh ris na feumalachdan agus tha tòrr bhiteagan ann.

Gheibh thu dreach 2.0.0-beta mu thràth ann an stòr a’ phròiseict; chan urrainn dhuinn ach a bhith an dòchas gum bi leasachaidhean mòra air an dàrna dreach. Anns an eadar-ama, thèid mi a sgrùdadh na sgrìobhainnean TimescaleDB.

Source: www.habr.com

Cuir beachd ann