Khalefo, lipuisano le khatello ea maikutlo ha u sebetsa le InfluxDB

Khalefo, lipuisano le khatello ea maikutlo ha u sebetsa le InfluxDB

Haeba u sebelisa database ea letoto la nako (timeseries db, wiki) e le polokelo e kholo ea sebaka se nang le lipalo-palo, joale ho e-na le ho rarolla bothata u ka fumana hlooho e ngata ea hlooho. Ke ntse ke sebetsa morerong o sebelisang database e joalo, 'me ka linako tse ling InfluxDB, e tla tšohloa, e hlahisa lintho tse makatsang tse neng li sa lebelloa ho hang.

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 (wiki). Ho ipapisitsoe le litšebelisano tsena, o hloka ho theha li-graph le ho bonts'a litafole tsa kakaretso.

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 (doc). Sena ke sehlophisi se hahiloeng ka har'a database se ka sebetsanang le data ka kemiso. Mohlala, lihora tse ling le tse ling tse 24 u ka hlophisa lirekoto tsohle tsa letsatsi, u bala karolelano 'me u rekote ntlha e le 'ngoe e ncha tafoleng e' ngoe ntle le ho ngola libaesekele tsa hau.

Hape ba maano a ho boloka (doc)—ho theha ho hlakolwa ha data ka mora nako e itseng. E na le thuso ha, ka mohlala, o hloka ho boloka mojaro oa CPU bakeng sa beke ka litekanyo hang ka motsotsoana, empa ho feta sebaka sa likhoeli tse 'maloa ho nepahala ho joalo ha ho hlokahale. Boemong bo joalo, o ka etsa sena:

  1. theha potso e tsoelang pele ea ho kopanya data tafoleng e 'ngoe;
  2. 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:

Khalefo, lipuisano le khatello ea maikutlo ha u sebetsa le InfluxDB

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 tekete hoo e ka bang selemo se fetileng ka taba ena.

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 Mefuta e 37 lichifi tseo u li hlokang ho bokella lintlha tsa tsona.

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):

Khalefo, lipuisano le khatello ea maikutlo ha u sebetsa le InfluxDB

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:

  1. 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.
  2. Kopo ea bobeli e fumana e 'ngoe ea lintlha tse ncha.
  3. 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:

Khalefo, lipuisano le khatello ea maikutlo ha u sebetsa le InfluxDB

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

Eketsa ka tlhaloso