Ukuba usebenzisa uthotho lwedatha yedatha (timeseries db,
isikhanyeli: Imiba edwelisiweyo iyasebenza kuHlelo lwe-InfluxDB 1.7.4.
Kutheni uchungechunge lwexesha?
Iprojekthi kukulandelela ukuthengiselana kwiibhloko ezahlukeneyo kunye nokubonisa izibalo. Ngokukodwa, sijonga ukukhutshwa kunye nokutshiswa kweenkozo ezizinzileyo (
Ngelixa uhlalutya ukuthengiselana, kwavela umbono: ukusebenzisa i-database ye-InfluxDB yexesha ledatha njengendawo yokugcina. Iintengiselwano ngamanqaku ngexesha kwaye zingena kakuhle kwimodeli yothotho lwexesha.
Imisebenzi yodibaniso nayo ibonakale ilungile kakhulu - ilungele ukusetyenzwa kweetshathi kunye nexesha elide. Umsebenzisi udinga itshathi yonyaka, kwaye i-database iqulethe isethi yedatha kunye nexesha lemizuzu emihlanu. Akunamsebenzi ukumthumela onke amachaphaza alikhulu lamawaka-ngaphandle kokusetyenzwa ixesha elide, awazukulingana nescreen. Ungabhala owakho uphumezo lokunyusa ixesha elibekiweyo, okanye usebenzise imisebenzi edityanisiweyo eyakhiwe kwiInflux. Ngoncedo lwabo, unokuqokelela idatha ngosuku kwaye uthumele amanqaku afunekayo angama-365.
Kwakubhideka kancinane ukuba oovimba beenkcukacha abanjalo badla ngokusetyenziselwa injongo yokuqokelela iimetriki. Ukubeka iliso kwiiseva, izixhobo ze-iot, yonke into apho izigidi zamanqaku efom "flow": [ - ]. Kodwa ukuba i-database isebenza kakuhle kunye nokuhamba kwedatha enkulu, ngoko kutheni umthamo omncinci kufuneka ubangele iingxaki? Ngale nto engqondweni, sithathe i-InfluxDB ukuba sisebenze.
Yintoni enye efanelekileyo kwi-InfluxDB
Ngaphandle kwemisebenzi ekhankanyiweyo yokudibanisa, kukho enye into enkulu - imibuzo eqhubekayo (
Kananjalo babe imigaqo-nkqubo yokugcina (
- yenza umbuzo oqhubekayo wokudibanisa idatha kwenye itafile;
- kwitheyibhile yokuqala, chaza umgaqo-nkqubo wokucima iimethrikhi ezindala kunaloo veki inye.
Kwaye i-Influx iya kunciphisa ngokuzimeleyo ubungakanani bedatha kwaye isuse izinto ezingeyomfuneko.
Malunga nedatha egciniweyo
Akukho datha eninzi egciniweyo: malunga neentengiselwano ezingamawaka angama-70 kunye nenye isigidi seengongoma ngolwazi lwemarike. Ukongeza amangeno amatsha - akukho ngaphezulu kwamanqaku angama-3000 ngosuku. Kukho neemetrics zesayithi, kodwa kukho idatha encinci apho kwaye, ngokomgaqo-nkqubo wokugcinwa, zigcinwa ixesha elingekho ngaphezu kwenyanga.
Iingxaki
Ngexesha lophuhliso kunye novavanyo olulandelayo lwenkonzo, kuye kwavela iingxaki ezininzi ngakumbi ekusebenzeni kwe-InfluxDB.
1. Ukucima idatha
Kukho uluhlu lwedatha enentengiselwano:
SELECT time, amount, block, symbol FROM transactions WHERE symbol='USDT'
Isiphumo:
Ndithumela umyalelo wokucima idatha:
DELETE FROM transactions WHERE symbol=βUSDTβ
Okulandelayo ndenza isicelo sokufumana idatha esele icinyiwe. Kwaye endaweni yempendulo engenanto, i-Influx ibuyisela inxalenye yedatha ekufuneka isusiwe.
Ndizama ukucima yonke itafile:
DROP MEASUREMENT transactions
Ndijonga ukucinywa kwetafile:
SHOW MEASUREMENTS
Andiyiboni itafile kuluhlu, kodwa umbuzo omtsha wedatha usabuyisela iseti efanayo yentengiselwano.
Ingxaki yenzeka kum kube kanye, kuba ityala lokucinywa yayilityala elilodwa. Kodwa le ndlela yokuziphatha yesiseko sedatha ngokucacileyo ayihambelani nesakhelo sokusebenza "okuchanekileyo". Kamva ndayifumana ivuliwe kwi-github
Ngenxa yoko, ukucima nokubuyisela yonke isiseko sedatha kwanceda.
2. Amanani amanqaku adadayo
Ubalo lwezibalo xa usebenzisa imisebenzi eyakhelwe-ngaphakathi kwi-InfluxDB ineempazamo zokuchaneka. Ayikuko ukuba le yinto engaqhelekanga, kodwa ayimnandanga.
Kwimeko yam, idatha inecandelo lezemali kwaye ndingathanda ukuyicubungula ngokuchaneka okuphezulu. Ngenxa yoko, siceba ukushiya imibuzo eqhubekayo.
3. Imibuzo eqhubekayo ayinakulungiswa kwiizowuni zamaxesha ezahlukeneyo
Inkonzo inetafile enezibalo zentengiselwano yemihla ngemihla. Kusuku ngalunye, kufuneka uqokelele zonke iintengiselwano zolo suku. Kodwa usuku lomsebenzisi ngamnye luya kuqala ngexesha elahlukileyo, kwaye ke isethi yentengiselwano iya kwahluka. Nge-UTC ewe
Kwi-InfluxDB, xa udibanisa ngexesha, ungakhankanya ukutshintshwa, umzekelo ixesha laseMoscow (UTC+3):
SELECT MEAN("supply") FROM transactions GROUP BY symbol, time(1d, 3h) fill(previous)
Kodwa isiphumo sombuzo siya kuba asichanekanga. Ngesizathu esithile, idatha ehlanganiswe ngemini iya kuqala yonke indlela ukubuyela kwi-1677 (i-InfluxDB ixhasa ngokusemthethweni ixesha elisusela kulo nyaka):
Ukulungisa le ngxaki, sitshintshele inkonzo okwethutyana kwi-UTC+0.
4. Ukusebenza
Zininzi iibenchmarks kwi-Intanethi ezithelekisa i-InfluxDB kunye nezinye iidatabase. Ekuboneni kokuqala, zazibukeka njengezinto zokuthengisa, kodwa ngoku ndicinga ukuba kukho inyaniso kubo.
Ndiza kukuxelela ityala lam.
Inkonzo ibonelela ngendlela ye-API ebuyisela izibalo zosuku lokugqibela. Xa usenza izibalo, indlela ibuza isiseko sedatha kathathu ngale mibuzo ilandelayo:
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
Ingcaciso:
- Kwisicelo sokuqala, sifumana amanqaku okugqibela kwingqekembe nganye enedatha yemarike. Amanqaku asibhozo kwiinkozo ezisibhozo kwimeko yam.
- Isicelo sesibini sifumana amanqaku amatsha.
- Owesithathu ucela uluhlu lwentengiselwano kwiiyure ezingama-XNUMX zokugqibela; kunokuba ngamakhulu aliqela kubo.
Mandicacise ukuba i-InfluxDB yakha ngokuzenzekelayo isalathiso esekwe kwiithegi kunye nexesha, elikhawulezisa imibuzo. Kwisicelo sokuqala Isimboli yithegi.
Ndiqhube uvavanyo loxinzelelo kule ndlela ye-API. Kwi-25 RPS, umncedisi ubonise umthwalo opheleleyo wee-CPU ezintandathu:
Ngelo xesha, inkqubo ye-NodeJs ayizange ibonelele nayiphi na imithwalo.
Isantya sokwenza sele sihlaziywe ngu-7-10 RPS: ukuba umxhasi omnye unokufumana impendulo kwi-200 ms, ke abathengi abayi-10 kufuneka balinde okwesibini. I-25 RPS ngumda apho uzinzo lwabandezeleka; iimpazamo ezingama-500 zibuyiselwe kubathengi.
Ngomsebenzi onjalo akunakwenzeka ukusebenzisa i-Influx kwiprojekthi yethu. Ngaphezu koko: kwiprojekthi apho ukubeka iliso kufuneka kuboniswe kubathengi abaninzi, iingxaki ezifanayo zinokuvela kwaye iseva yeemetriki iya kulayishwa kakhulu.
isiphelo
Isigqibo esibalulekileyo kumava afunyenweyo kukuba awukwazi ukuthatha iteknoloji engaziwayo kwiprojekthi ngaphandle kohlalutyo olwaneleyo. Uvavanyo olulula lwemiba evulekileyo kwi-github inokubonelela ngolwazi ukunqanda ukukhetha i-InfluxDB njengendawo yokugcina idatha.
I-InfluxDB ifanele ukuba iyilungele imisebenzi yeprojekthi yam, kodwa njengoko uqheliselo lubonisile, le datha ayifezekisi iimfuno kwaye ineempazamo ezininzi.
Unokufumana inguqulo ye-2.0.0-beta kwindawo yokugcina iprojekthi; sinokuthemba kuphela ukuba inguqulelo yesibini iya kuba nophuculo olubalulekileyo. Okwangoku, ndiza kufunda amaxwebhu e-TimescaleDB.
umthombo: www.habr.com