Fahatezerana, fifampiraharahana ary fahaketrahana rehefa miasa miaraka amin'ny InfluxDB

Fahatezerana, fifampiraharahana ary fahaketrahana rehefa miasa miaraka amin'ny InfluxDB

Raha mampiasa angon-drakitra andiam-potoana ianao (timeseries db, Wiki) ho fitahirizana lehibe ho an'ny tranokala misy antontan'isa, dia raha tokony hamaha ny olana ianao dia mety ho voan'ny aretin'andoha. Miasa amin'ny tetikasa iray mampiasa angon-drakitra toy izany aho, ary indraindray ny InfluxDB, izay horesahina, dia manolotra fahagagana tsy ampoizina tanteraka.

Disclaimer: Mihatra amin'ny InfluxDB version 1.7.4 ny olana voatanisa.

Nahoana no andian-potoana?

Ny tetikasa dia ny manara-maso ny fifanakalozana amin'ny blockchains isan-karazany ary mampiseho antontan'isa. Amin'ny ankapobeny, mijery ny famoahana sy ny fandoroana ny vola madinika (Wiki). Mifototra amin'ireo fifanakalozana ireo, mila manangana grafika ianao ary mampiseho tabilao famintinana.

Teo am-pamakafakana ny fifampiraharahana dia nisy hevitra nipoitra: hampiasa ny angon-drakitra andiam-potoana InfluxDB ho fitahirizana lehibe. Ny fifampiraharahana dia teboka amin'ny fotoana ary mifanaraka tsara amin'ny modely andiam-potoana.

Ny fiasan'ny aggregation koa dia toa tena mety - mety tsara amin'ny fanodinana tabilao amin'ny fotoana maharitra. Ny mpampiasa dia mila tabilao mandritra ny herintaona, ary ny angon-drakitra dia misy angon-drakitra misy fe-potoana dimy minitra. Tsy misy dikany ny mandefa azy ireo teboka iray hetsy - ankoatry ny fikarakarana lava dia tsy mety amin'ny efijery akory izy ireo. Azonao atao ny manoratra ny fampiharanao manokana amin'ny fampitomboana ny fe-potoana, na mampiasa ny asa fanangonam-bokatra natsangana tao amin'ny Influx. Miaraka amin'ny fanampian'izy ireo dia azonao atao ny manangona angona isan'andro ary mandefa ny isa 365 ilaina.

Somary nisavoritaka ihany fa ny angon-drakitra toy izany dia matetika ampiasaina amin'ny fanangonana metrika. Fanaraha-maso ny lohamilina, fitaovana iot, izay rehetra misy teboka an-tapitrisany amin'ny endrika β€œmikoriana”: [<fotoana> - <vidim-bidy>]. Fa raha miasa tsara ny angon-drakitra miaraka amin'ny fikorianan'ny angon-drakitra lehibe, nahoana no miteraka olana ny boky kely? Miaraka amin'izany ao an-tsaina, dia naka InfluxDB hiasa izahay.

Inona koa no mety amin'ny InfluxDB

Ankoatra ireo asa aggregation voalaza, misy zavatra lehibe hafa - fanontaniana mitohy (fanononana). Ity dia fandaharam-potoana natsangana ao anaty angon-drakitra izay afaka manodina data amin'ny fandaharam-potoana. Ohatra, isaky ny 24 ora dia azonao atao ny manangona ny firaketana rehetra ho an'ny andro, kajy ny salan'isa ary mirakitra teboka vaovao iray amin'ny latabatra hafa nefa tsy manoratra ny bisikiletanao manokana.

Manana ihany koa politika fitazonana (fanononana)β€”mametraka famafana angon-drakitra aorian'ny fe-potoana iray. Tena ilaina izany rehefa, ohatra, mila mitahiry ny enta-mavesatra CPU mandritra ny herinandro miaraka amin'ny fandrefesana indray mandeha isan-tsegondra, fa amin'ny halavirana roa volana dia tsy ilaina ny marina toy izany. Amin'ny toe-javatra toy izany dia azonao atao izao:

  1. mamorona fanontaniana mitohy mba hanangonana angona amin'ny latabatra hafa;
  2. ho an'ny tabilao voalohany, mamaritra politika hamafa ny metrika efa antitra noho io herinandro io ihany.

Ary ny Influx dia hampihena ny haben'ny angon-drakitra ary hamafa zavatra tsy ilaina.

Momba ny angona voatahiry

Tsy dia misy angon-drakitra voatahiry: manodidina ny 70 arivo ny fifanakalozana ary isa iray tapitrisa hafa miaraka amin'ny fampahalalana momba ny tsena. Manampy fidirana vaovao - tsy mihoatra ny 3000 isa isan'andro. Misy ihany koa ny metrika ho an'ny tranokala, saingy kely ny angona ao ary, araka ny politikan'ny fitazonana, dia voatahiry tsy mihoatra ny iray volana izy ireo.

olana

Nandritra ny fivoarana sy ny fitsapana manaraka ny serivisy, dia nitombo hatrany ny olana lehibe tamin'ny fampandehanana ny InfluxDB.

1. Famafana ny angona

Misy angon-drakitra maromaro miaraka amin'ny fifanakalozana:

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

vokany:

Fahatezerana, fifampiraharahana ary fahaketrahana rehefa miasa miaraka amin'ny InfluxDB

Mandefa baiko hamafa data aho:

DELETE FROM transactions WHERE symbol=’USDT’

Manaraka izany dia manao fangatahana aho handraisana ireo angona efa voafafa. Ary raha tokony ho valinteny foana, ny Influx dia mamerina ampahany amin'ny angona tokony hofafana.

Miezaka mamafa ny latabatra manontolo aho:

DROP MEASUREMENT transactions

Manamarina ny famafana latabatra aho:

SHOW MEASUREMENTS

Tsy hitako ny tabilao ao amin'ny lisitra, fa ny fangatahana angon-drakitra vaovao dia mbola mamerina ny andiana fifanakalozana mitovy.

Indray mandeha ihany no nitranga tamiko ny olana, satria tranga mitoka-monina ilay raharaha famafana. Saingy ity fitondran-tenan'ny angon-drakitra ity dia mazava ho azy fa tsy mifanaraka amin'ny rafitry ny asa "marina". Taty aoriana dia hitako nisokatra tao amin'ny github tapakila efa ho herintaona lasa izay momba ity lohahevitra ity.

Vokatr'izany dia nanampy ny famafana sy ny famerenana ny angon-drakitra manontolo avy eo.

2. Laharana mitsingevana

Misy hadisoana marina ny kajikajy matematika rehefa mampiasa fiasa naorina ao amin'ny InfluxDB. Tsy hoe zavatra tsy mahazatra izany, fa tsy mahafinaritra.

Raha ny ahy dia manana singa ara-bola ny angon-drakitra ary tiako ny hikarakara azy amin'ny fahamendrehana ambony. Noho izany dia mikasa ny hiala amin'ny fanontaniana mitohy izahay.

3. Tsy azo ampifanarahana amin'ny faritra samy hafa ny fanontanina tsy tapaka

Ny serivisy dia manana latabatra misy antontan'isa momba ny fifanakalozana isan'andro. Ho an'ny andro tsirairay dia mila manambatra ny fifanakalozana rehetra amin'io andro io ianao. Fa ny andron'ny mpampiasa tsirairay dia hanomboka amin'ny fotoana samy hafa, ary noho izany dia ho hafa ny fitambaran'ny fifanakalozana. Amin'ny UTC eny 37 variants fanovana izay ilainao hanangonana angona.

Ao amin'ny InfluxDB, rehefa mivondrona amin'ny fotoana, dia azonao atao koa ny mamaritra ny fiovan'ny toetr'andro, ohatra amin'ny ora Moskoa (UTC+3):

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

Fa ny valin'ny fanontaniana dia ho diso. Noho ny antony sasany, ny angon-drakitra navondrona isan'andro dia hanomboka hatrany amin'ny 1677 (manohana amin'ny fomba ofisialy ny fe-potoana manomboka amin'ity taona ity ny InfluxDB):

Fahatezerana, fifampiraharahana ary fahaketrahana rehefa miasa miaraka amin'ny InfluxDB

Mba hamahana ity olana ity dia nafindray vonjimaika ho UTC+0 ny serivisy.

4. Fampisehoana

Betsaka ny mari-pamantarana amin'ny Internet izay mampitaha ny InfluxDB sy ny angona hafa. Raha vao jerena dia toa fitaovana ara-barotra izy ireo, saingy heveriko fa misy fahamarinana ao aminy.

Holazaiko aminao ny raharahako.

Ny serivisy dia manome fomba API izay mamerina ny antontan'isa ho an'ny andro farany. Rehefa manao kajy, ny fomba dia manontany ny angon-drakitra in-telo miaraka amin'ireto fanontaniana manaraka ireto:

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

fanazavana:

  1. Ao amin'ny fangatahana voalohany, mahazo ny isa farany amin'ny vola madinika tsirairay miaraka amin'ny angona tsena. Valo isa ho an'ny vola madinika valo raha ny ahy.
  2. Ny fangatahana faharoa dia mahazo iray amin'ireo teboka vaovao indrindra.
  3. Ny fahatelo dia mangataka lisitry ny fifampiraharahana mandritra ny XNUMX ora farany; mety ho an-jatony izy ireo.

Avelao aho hanazava fa ny InfluxDB dia manangana tondro mifototra amin'ny marika sy fotoana, izay manafaingana ny fanontaniana. Amin'ny fangatahana voalohany famantarana dia tag.

Nanao fitsapana adin-tsaina momba ity fomba API ity aho. Ho an'ny 25 RPS, ny mpizara dia naneho enta-mavesatra feno CPU enina:

Fahatezerana, fifampiraharahana ary fahaketrahana rehefa miasa miaraka amin'ny InfluxDB

Nandritra izany fotoana izany, ny fizotran'ny NodeJs dia tsy nanome entana mihitsy.

Ny hafainganam-pandehan'ny famonoana dia efa nihena 7-10 RPS: raha misy mpanjifa iray afaka mahazo valiny ao anatin'ny 200 ms, dia mpanjifa 10 no tsy maintsy niandry iray segondra. 25 RPS no fetran'ny fitoniana; 500 ny fahadisoana naverina tamin'ny mpanjifa.

Amin'ny fampisehoana toy izany dia tsy azo atao ny mampiasa ny Influx amin'ny tetikasantsika. Fanampin'izay: amin'ny tetikasa iray izay mila aseho amin'ny mpanjifa maro ny fanaraha-maso dia mety hipoitra ny olana mitovy amin'izany ary ho be loatra ny mpizara metric.

famaranana

Ny fehin-kevitra manan-danja indrindra avy amin'ny traikefa azo dia tsy afaka maka teknolojia tsy fantatra ho tetikasa iray ianao raha tsy misy famakafakana ampy. Ny fandefasana tsotra amin'ny olana misokatra amin'ny github dia afaka manome vaovao mba hialana amin'ny fisafidianana ny InfluxDB ho fivarotana data lehibe.

Ny InfluxDB dia tokony ho nifanaraka tsara tamin'ny asan'ny tetik'asako, saingy araka ny nasehon'ny fampiharana dia tsy mahafeno ny filana ity angona ity ary misy bibikely maro.

Efa afaka mahita kinova 2.0.0-beta ianao ao amin'ny fitahirizana tetikasa; manantena izahay fa hisy fanatsarana lehibe ny dikan-teny faharoa. Mandritra izany fotoana izany, handeha hianatra ny antontan-taratasy TimescaleDB aho.

Source: www.habr.com

Add a comment