Haeba u sebelisa database ea letoto la nako (timeseries db,
ikgololo: Litaba tse thathamisitsoeng li sebetsa ho mofuta oa InfluxDB 1.7.4.
Ke hobane'ng ha letoto la nako?
Morero ke ho latela lits'ebetso ho li-blockchain tse fapaneng le ho bonts'a lipalo-palo. Ka ho khetheha, re sheba ho tsoa le ho chesoa ha lichelete tsa tšepe tse tsitsitseng (
Ha ho ntse ho hlahlojoa litšebelisano, ho ile ha hlaha mohopolo: ho sebelisa database ea nako ea InfluxDB joalo ka polokelo ea mantlha. Litšebelisano ke lintlha ka nako 'me li lumellana hantle le mohlala oa letoto la nako.
Mesebetsi ea ho kopanya le eona e ne e shebahala e le bonolo haholo - e loketse ho sebetsa lichate ka nako e telele. Mosebelisi o hloka chate bakeng sa selemo, 'me database e na le sete ea data e nang le nako ea metsotso e mehlano. Ha ho na thuso ho mo romella matheba a likete tse lekholo - ntle le ts'ebetso e telele, a ke ke a lekana le skrineng. U ka ngola ts'ebetsong ea hau ea ho eketsa nako ea nako, kapa ua sebelisa mesebetsi ea ho kopanya e hahelletsoeng ho Influx. Ka thuso ea bona, o ka hlophisa lintlha ka letsatsi mme o romella lintlha tse 365 tse hlokahalang.
Ho ne ho ferekanya hanyenyane hore li-database tse joalo li atisa ho sebelisoa molemong oa ho bokella metrics. Tlhokomelo ea li-server, lisebelisoa tsa iot, ntho e 'ngoe le e' ngoe eo limilione tsa lintlha tsa "phallo" li tsoang ho tsona: [<time> - <metric value>]. Empa haeba database e sebetsa hantle ka phallo e kholo ea data, joale ke hobane'ng ha molumo o monyenyane o lokela ho baka mathata? Re nahanne ka sena, re nkile InfluxDB ho sebetsa.
Ke eng hape e bonolo ho InfluxDB
Ntle le mesebetsi e boletsoeng ea aggregation, ho na le ntho e 'ngoe e kholo - lipotso tse tsoelang pele (
Hape ba maano a ho boloka (
- theha potso e tsoelang pele ea ho kopanya data tafoleng e 'ngoe;
- bakeng sa tafole ea pele, hlalosa leano la ho hlakola metrics ea khale ho feta bekeng eona eo.
'Me Influx e tla fokotsa boholo ba data ka boithaopo le ho hlakola lintho tse sa hlokahaleng.
Mabapi le data e bolokiloeng
Ha ho na data e ngata e bolokiloeng: litšebelisano tse ka bang likete tse 70 le lintlha tse ling tse limilione tse nang le tlhahisoleseding ea 'maraka. Eketsa likenyo tse ncha - eseng ho feta lintlha tse 3000 ka letsatsi. Ho boetse ho na le metrics bakeng sa sebaka, empa ho na le data e nyane moo mme, ho latela leano la ho boloka, li bolokiloe nako e fetang khoeli.
Mathata
Nakong ea nts'etsopele le liteko tse latelang tsa ts'ebeletso, ho ile ha hlaha mathata a mangata le ho feta ts'ebetsong ea InfluxDB.
1. Ho hlakola data
Ho na le letoto la data le nang le transaction:
SELECT time, amount, block, symbol FROM transactions WHERE symbol='USDT'
Sephetho:
Ke romela taelo ea ho hlakola data:
DELETE FROM transactions WHERE symbol=’USDT’
E latelang ke etsa kopo ea ho amohela data e seng e hlakotsoe. Mme sebakeng sa karabo e se nang letho, Influx e khutlisa karolo ea data e lokelang ho hlakoloa.
Ke leka ho hlakola tafole kaofela:
DROP MEASUREMENT transactions
Ke sheba ho hlakoloa ha tafole:
SHOW MEASUREMENTS
Ha ke bone tafole lethathamong, empa potso e ncha ea data e ntse e khutlisa sete e tšoanang ea transaction.
Bothata bo ile ba ntlhahela hang feela, kaha nyeoe ea ho hlakoloa e ne e le taba e ka thōko. Empa boitšoaro bona ba database ka ho hlaka ha bo lumellane le moralo oa ts'ebetso e "nepahetseng". Hamorao ke ile ka e fumana e butsoe ho github
Ka lebaka leo, ho ile ha thusa ho hlakola le ho khutlisetsa database kaofela.
2. Linomoro tsa lintlha tse phaphametseng
Lipalo tsa lipalo ha u sebelisa mesebetsi e hahelletsoeng ho InfluxDB li na le liphoso tse nepahetseng. Eseng hore sena ke ntho e sa tloaelehang, empa ha se monate.
Tabeng ea ka, data e na le karolo ea lichelete 'me ke rata ho e sebetsana ka ho nepahala ho phahameng. Ka lebaka lena, re rera ho tlohela lipotso tse sa khaotseng.
3. Lipotso tse sa khaotseng li ke ke tsa fetoloa hore li lumellane le linako tse fapaneng
Tšebeletso e na le tafole e nang le lipalo-palo tsa letsatsi le letsatsi tsa transaction. Bakeng sa letsatsi le leng le le leng, o hloka ho hlophisa litšebelisano tsohle tsa letsatsi leo. Empa letsatsi la mosebelisi e mong le e mong le tla qala ka nako e fapaneng, ka hona, palo ea litšebelisano e tla fapana. Ka UTC ho joalo
Ho InfluxDB, ha u hlophisa ka nako, u ka boela ua hlakisa phetoho, mohlala bakeng sa nako ea Moscow (UTC+3):
SELECT MEAN("supply") FROM transactions GROUP BY symbol, time(1d, 3h) fill(previous)
Empa sephetho sa potso e tla ba se fosahetseng. Ka lebaka le itseng, lintlha tse hlophisitsoeng ka letsatsi li tla qala ho khutlela ho 1677 (InfluxDB e tšehetsa ka molao nako ea nako ho tloha selemong sena):
Ho rarolla bothata bona, re ile ra fetolela ts'ebeletso ho UTC+0 ka nakoana.
4. Tshebetso
Ho na le matšoao a mangata Marang-rang a bapisang InfluxDB le li-database tse ling. Ha u sheba ka lekhetlo la pele, li ne li shebahala joaloka lisebelisoa tsa ho rekisa, empa joale ke nahana hore ho na le 'nete e itseng ho tsona.
Ke tla le bolella nyeoe ea ka.
Tšebeletso e fana ka mokhoa oa API o khutlisetsang lipalo-palo tsa letsatsi la ho qetela. Ha o etsa lipalo, mokhoa ona o botsa database ka makhetlo a mararo ka lipotso tse latelang:
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
Tlhaloso:
- Ka kopo ea pele, re fumana lintlha tsa ho qetela bakeng sa chelete ea tšepe e 'ngoe le e' ngoe e nang le lintlha tsa 'maraka. Lintlha tse robeli bakeng sa lichelete tsa tšepe tse robeli molemong oa ka.
- Kopo ea bobeli e fumana e 'ngoe ea lintlha tse ncha.
- Ea boraro e kopa lethathamo la litšebelisano bakeng sa lihora tse XNUMX tse fetileng; ho ka ba le makholo a 'maloa a tsona.
E re ke hlakise hore InfluxDB e iketsetsa index e thehiloeng ho li-tag le nako, e potlakisang lipotso. Kopong ea pele letšoao ke tag.
Ke entse tlhahlobo ea khatello ea maikutlo ka mokhoa ona oa API. Bakeng sa 25 RPS, seva e bontšitse mojaro o felletseng oa li-CPU tse tšeletseng:
Ka nako e ts'oanang, ts'ebetso ea NodeJs ha ea ka ea fana ka mojaro ho hang.
Lebelo la ts'ebetso le se le fokotsehile ka 7-10 RPS: haeba mofani a le mong a ka fumana karabo ka 200 ms, joale bareki ba 10 ba ne ba tlameha ho ema motsotsoana. 25 RPS ke moeli oo botsitso bo bileng teng; liphoso tse 500 li ile tsa khutlisetsoa ho bareki.
Ka ts'ebetso e joalo ha ho khonehe ho sebelisa Influx morerong oa rona. Ho feta moo: morerong oo ho oona ho lokelang ho bontšoa tlhokomelo ho bareki ba bangata, mathata a tšoanang a ka hlaha 'me seva sa metrics se tla tlala.
fihlela qeto e
Qeto ea bohlokoa ka ho fetisisa ho tsoa phihlelong e fumanoeng ke hore u ke ke ua nka theknoloji e sa tsejoeng morerong ntle le tlhahlobo e lekaneng. Tlhahlobo e bonolo ea litaba tse bulehileng ho github e ka fana ka leseli ho qoba ho khetha InfluxDB joalo ka lebenkele la mantlha la data.
InfluxDB e ne e lokela ho lekana hantle bakeng sa mesebetsi ea projeke ea ka, empa joalo ka ha boikoetliso bo bontšitse, database ena ha e fihlelle litlhoko ebile e na le liphoso tse ngata.
U se u ka fumana mofuta oa 2.0.0-beta sebakeng sa polokelo ea projeke; re ka tšepa feela hore mofuta oa bobeli o tla ba le lintlafatso tse kholo. Khabareng, ke tla ea ho ithuta litokomane tsa TimescaleDB.
Source: www.habr.com