Ngati mugwiritsa ntchito nkhokwe yanthawi (timeseries db,
chandalama: Nkhani zomwe zalembedwa zikugwira ntchito ku mtundu wa InfluxDB 1.7.4.
Chifukwa chiyani mndandanda wanthawi?
Ntchitoyi ndikutsata zochitika pa blockchains zosiyanasiyana ndikuwonetsa ziwerengero. Makamaka, timayang'ana kutulutsa ndi kuwotcha ndalama zokhazikika (
Ndikusanthula zochitika, lingaliro lidabwera: kugwiritsa ntchito nkhokwe yanthawi ya InfluxDB ngati chosungira chachikulu. Zochita zimatengera nthawi ndipo zimagwirizana bwino ndi mtundu wanthawi.
Ntchito zophatikizira zidawonekanso zosavuta kwambiri - zabwino pokonza ma chart okhala ndi nthawi yayitali. Wogwiritsa ntchito amafunikira tchati kwa chaka chimodzi, ndipo nkhokwe ili ndi data yokhala ndi nthawi ya mphindi zisanu. Ndizopanda pake kumutumizira madontho 365 - kupatula kukonza kwautali, sangakwane pazenera. Mutha kulemba zomwe mwakhazikitsa pakuwonjezera nthawi, kapena gwiritsani ntchito zophatikiza zomwe zidapangidwa mu Influx. Ndi chithandizo chawo, mukhoza kusonkhanitsa deta masana ndi kutumiza mfundo XNUMX zofunika.
Zinali zosokoneza pang'ono kuti nkhokwe zoterezi nthawi zambiri zimagwiritsidwa ntchito pofuna kusonkhanitsa ma metric. Kuyang'anira ma seva, zida za iot, chilichonse chomwe mamiliyoni a mfundo za "flow": [ - ]. Koma ngati database ikugwira ntchito bwino ndi kuchuluka kwa data, ndiye chifukwa chiyani voliyumu yaying'ono iyenera kuyambitsa mavuto? Poganizira izi, tidatenga InfluxDB kuti tigwire ntchito.
Ndi chiyani chinanso chomwe chili chosavuta ku InfluxDB
Kupatula ntchito zomwe zatchulidwazi, pali chinthu chinanso chachikulu - mafunso mosalekeza (
Komanso pali ndondomeko zosungira (
- pangani funso losalekeza kuti muphatikize deta mu tebulo lina;
- patebulo loyamba, fotokozani ndondomeko yochotsa ma metric omwe ali akale kuposa sabata lomwelo.
Ndipo Influx idzachepetsa paokha kukula kwa deta ndikuchotsa zinthu zosafunikira.
Za data yosungidwa
Palibe zambiri zomwe zasungidwa: za 70 zochitika ndi mfundo zina miliyoni ndi chidziwitso chamsika. Kuwonjezera zolemba zatsopano - zosaposa 3000 mfundo patsiku. Palinso ma metric a tsambalo, koma pali deta yochepa pamenepo ndipo, malinga ndi ndondomeko yosungira, amasungidwa osapitirira mwezi umodzi.
Mavuto
Pachitukuko ndi kuyesedwa kotsatira kwa ntchitoyi, zovuta zowonjezereka zidabuka pakugwira ntchito kwa InfluxDB.
1. Kuchotsa deta
Pali mndandanda wa data ndi zochitika:
SELECT time, amount, block, symbol FROM transactions WHERE symbol='USDT'
Zotsatira:
Ndikutumiza lamulo lochotsa deta:
DELETE FROM transactions WHERE symbol=βUSDTβ
Kenako ndikupempha kuti ndilandire deta yomwe yachotsedwa kale. Ndipo m'malo moyankha mopanda kanthu, Influx imabweza gawo la data lomwe liyenera kuchotsedwa.
Ndikuyesera kuchotsa tebulo lonse:
DROP MEASUREMENT transactions
Ndikuwona kufufutidwa kwa tebulo:
SHOW MEASUREMENTS
Sindikuwona tebulo pamndandanda, koma funso latsopano la data limabwezeranso magawo omwewo.
Vutoli lidandichitikira kamodzi kokha, popeza mlandu wochotsa udali wodzipatula. Koma khalidwe ili la database silikugwirizana ndi ndondomeko ya "zolondola" ntchito. Pambuyo pake ndidapeza itatsegulidwa pa github
Zotsatira zake, kuchotsa ndikubwezeretsanso database yonse kunathandiza.
2. Manambala a mfundo zoyandama
Kuwerengera masamu mukamagwiritsa ntchito zomanga mu InfluxDB kumakhala ndi zolakwika zolondola. Osati kuti izi ndi zachilendo, koma sizosangalatsa.
Kwa ine, deta ili ndi gawo lazachuma ndipo ndikufuna kuyikonza molondola kwambiri. Pachifukwa ichi, tikukonzekera kusiya mafunso osalekeza.
3. Mafunso osalekeza sangasinthidwe kuti agwirizane ndi nthawi zosiyanasiyana
Ntchitoyi ili ndi tebulo lomwe lili ndi ziwerengero zamalonda zatsiku ndi tsiku. Patsiku lililonse, muyenera kusonkhanitsa zochitika zonse za tsikulo. Koma tsiku la wogwiritsa ntchito aliyense lidzayamba nthawi yosiyana, ndipo chifukwa chake zochitikazo zidzakhala zosiyana. Ndi UTC inde
Mu InfluxDB, mukamasonkhanitsa nthawi, mutha kufotokozeranso kusintha, mwachitsanzo nthawi ya Moscow (UTC+3):
SELECT MEAN("supply") FROM transactions GROUP BY symbol, time(1d, 3h) fill(previous)
Koma zotsatira za funso zidzakhala zolakwika. Pazifukwa zina, zomwe zasankhidwa masana ziyamba kubwerera ku 1677 (InfluxDB imathandizira nthawi yayitali kuyambira chaka chino):
Kuti tithane ndi vutoli, tinasinthitsa ntchitoyi kwa UTC+0 kwakanthawi.
4. Magwiridwe
Pali ma benchmark ambiri pa intaneti omwe amafananiza InfluxDB ndi nkhokwe zina. Poyamba, iwo ankawoneka ngati zipangizo zamalonda, koma tsopano ndikuganiza kuti pali choonadi mwa iwo.
Ndikuuzani vuto langa.
Ntchitoyi imapereka njira ya API yomwe imabwezera ziwerengero za tsiku lomaliza. Powerengera, njirayo imafunsa nkhokwe katatu ndi mafunso otsatirawa:
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
Kufotokozera:
- Mu pempho loyamba, timapeza mfundo zomaliza za ndalama iliyonse yokhala ndi deta yamsika. Mfundo zisanu ndi zitatu pa ndalama zisanu ndi zitatu kwa ine.
- Pempho lachiwiri limapeza imodzi mwa mfundo zatsopano.
- Wachitatu apempha mndandanda wazomwe zachitika maola XNUMX apitawa; pakhoza kukhala mazana angapo aiwo.
Ndiloleni ndifotokozere kuti InfluxDB imangopanga index kutengera ma tag ndi nthawi, zomwe zimafulumizitsa mafunso. Mu pempho loyamba Chizindikiro ndi tag.
Ndayesa mayeso opsinjika panjira iyi ya API. Kwa 25 RPS, seva idawonetsa kuchuluka kwa ma CPU asanu ndi limodzi:
Panthawi imodzimodziyo, ndondomeko ya NodeJs sinapereke katundu uliwonse.
Liwiro lakupha ladetsedwa kale ndi 7-10 RPS: ngati kasitomala mmodzi angalandire yankho mu 200 ms, ndiye makasitomala 10 amayenera kudikirira kachiwiri. 25 RPS ndiye malire omwe kukhazikika kudasokonekera; zolakwika 500 zidabwezedwa kwa makasitomala.
Ndikuchita koteroko sikutheka kugwiritsa ntchito Influx mu polojekiti yathu. Komanso: mu pulojekiti yomwe kuwunika kumayenera kuwonetsedwa kwa makasitomala ambiri, zovuta zofananira zitha kuwoneka ndipo ma seva a metrics adzadzaza.
Pomaliza
Mfundo yofunika kwambiri pazochitika zomwe mwapeza ndikuti simungathe kutenga teknoloji yosadziwika mu polojekiti popanda kusanthula kokwanira. Kuwunika kosavuta kwa nkhani zotseguka pa github kungapereke chidziwitso chopewa kusankha InfluxDB ngati sitolo yayikulu.
InfluxDB iyenera kukhala yokwanira bwino pa ntchito za polojekiti yanga, koma monga momwe zasonyezera, deta iyi simakwaniritsa zosowa ndipo ili ndi nsikidzi zambiri.
Mutha kupeza kale mtundu wa 2.0.0-beta m'malo osungira projekiti; titha kuyembekeza kuti mtundu wachiwiri ukhala ndi kusintha kwakukulu. Pakadali pano, ndipita kukaphunzira zolemba za TimescaleDB.
Source: www.habr.com