Ma chleachdas tu stòr-dàta sreath ùine (sreath-ùine db,
À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 (
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 (
Cuideachd agad poileasaidhean glèidhidh (
- cruthaich ceist leantainneach gus dàta a chruinneachadh ann an clàr eile;
- 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:
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
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
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):
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:
- 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.
- Bidh an dàrna iarrtas a’ faighinn aon de na puingean as ùire.
- 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:
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