Likarolo tsa ho rala mohlala oa data bakeng sa NoSQL

Selelekela

Likarolo tsa ho rala mohlala oa data bakeng sa NoSQL “U tlameha ho matha kapele kamoo u ka khonang hore feela u lule sebakeng,
’me e le hore u fihle sebakeng se itseng, u tlameha ho matha bonyane habeli!”
(c) Alice naheng ea Wonderland

Nakong e fetileng ke ile ka kōptjoa hore ke fane ka puo bahlahlobi khamphani ea rona ka taba ea ho qapa mehlala ea data, hobane ho lula nako e telele mererong (ka linako tse ling ka lilemo tse 'maloa) re lahleheloa ke pono ea se etsahalang ho pota lefatše la theknoloji ea IT. Khamphaning ea rona (ho ile ha etsahala joalo) merero e mengata ha e sebelise marang-rang a NoSQL (bonyane ha e e-s'o be teng), kahoo thutong ea ka ke ile ka ba ela hloko ka ho khetheha ke sebelisa HBase e le mohlala 'me ke leka ho tsepamisa maikutlo a boitsebiso ho ba e-s'o sebetse le bona. Ka ho khetheha, ke ile ka bontša likarolo tse ling tsa ho qapa mohlala oa data ho sebelisa mohlala oo ke o balileng lilemong tse 'maloa tse fetileng sehloohong se reng "Selelekela sa HB ase Schema Design" ka Amandeep KhuranaHa ke hlahloba mehlala, ke ile ka bapisa litharollo tse ’maloa bothateng bo tšoanang e le hore ke fetisetse hamolemo mehopolo ea sehlooho ho bamameli.

Haufinyane tjena, "ka lebaka la ho jeoa ke bolutu", ke ile ka ipotsa (matsatsi a malelele a Mots'eanong ka mokhoa oa ho behelloa ka thoko a thusa haholo ho sena), lipalo tsa boithuto li tla tsamaellana ho isa bohōleng bofe? Haele hantle, ena ke tsela eo mohopolo oa sengoloa sena o hlahileng ka ona. Moqapi ea 'nileng a sebetsa le NoSQL nako e telele a ka' na a se ke a ithuta letho le lecha ho eona (ka hona a ka tlōla halofo ea sengoloa hang-hang). Empa bakeng sa bahlahlobi, ba e-s'o sebetse haufi-ufi le NoSQL, ke lumela hore ho tla ba molemo bakeng sa ho fumana kutloisiso ea motheo ea lintlha tse tobileng tsa ho qapa mehlala ea data bakeng sa HBase.

Tlhahlobo ea mohlala

Ka maikutlo a ka, pele o qala ho sebelisa marang-rang a NoSQL, o hloka ho nahana ka hloko le ho lekola melemo le likotsi. Hangata, mosebetsi o ka rarolloa ho sebelisoa DBMS ea setso. Ka hona, ho molemo ho se sebelise NoSQL ntle le mabaka a bohlokoa. Haeba u ntse u nka qeto ea ho sebelisa database ea NoSQL, joale u lokela ho ela hloko hore mekhoa ea moralo mona e batla e fapane. Tse ling tsa tsona li ka 'na tsa e-ba tse sa tloaelehang haholo ho ba kileng ba sebetsana le DBMS feela ea kamano (ho ea ka seo ke se boneng). Kahoo, lefats'eng la "kamano", hangata re qala ho etsa mohlala oa sebaka sa thuto, 'me feela ka nako eo, ha ho hlokahala, re senya mohlala. Ho NoSQL, re e tlameha ho ela hloko hanghang maemo a lebelletsoeng a ho sebetsa ka data 'me qalong u nyenyefatse data. Ho phaella moo, ho na le tse ling tse ngata tse fapaneng, tse tla hlalosoa ka tlase.

Ha re nahaneng ka bothata bo latelang ba "synthetic", boo re tla tsoelapele ho sebetsa le bona:

Hoa hlokahala ho etsa moralo oa ho boloka lethathamo la metsoalle ea basebelisi ba marang-rang a mang a sa bonahaleng. Bakeng sa ho nolofatsa, re tla nka hore likhokahano tsohle tsa rona li lebisitsoe (joalo ka Instagram, eseng ho Linkedin). Sebopeho se lokela ho lumella ho sebetsa hantle:

  • Araba potso ea hore na mosebelisi A o bala mosebelisi B (paterone ea ho bala)
  • Lumella ho kenya/ho tlosa likhokahano ha mosebelisi A a ingolisa/a itokolla ho mosebelisi B (sebopeho sa phetoho ea data)

Ha e le hantle, ho na le mekhoa e mengata ea ho rarolla bothata. Ho DB ea likamano tse tloaelehileng, re ka etsa tafole ea likhokahano (mohlomong e tlatsitsoe, haeba, mohlala, re hloka ho boloka sehlopha sa basebelisi: lelapa, mosebetsi, joalo-joalo, tse kenyelletsang "motsoalle" ona, 'me re kenye li-index/partitioning ho ntlafatsa lebelo la phihlello. Mohlomong, tafole e hlahisoang e ka shebahala tjena:

Theneketso
motsoalle_id

Vasya
Petya

Vasya
Olya

mona le ho feta bakeng sa ho hlaka le kutloisiso e betere sebakeng sa ID ke tla bontša mabitso

Tabeng ea HBase, rea tseba hore:

  • patlisiso e sebetsang hantle e sa hlahiseng tlhahlobo e felletseng ea tafole ea khoneha ka ho khetheha ka senotlolo
    • ha e le hantle, ke kahoo ho ngola lipotso tsa SQL ho databases tse joalo tseo ba bangata ba li tloaetseng ke khopolo e mpe; ka botekgeniki, ehlile, o ka romella potso ea SQL ka Joins le lintlha tse ling ho HBase ho tsoa ho Impala e tšoanang, empa e tla sebetsa hakae ...

Ka hona, re qobelloa ho sebelisa ID ea mosebelisi joalo ka senotlolo. Le mohopolo oa pele tabeng ea "hokae le joang ho boloka li-ID tsa metsoalle?" e ka ba mohopolo oa ho li boloka ka likholomo. Khetho ena e hlakileng ka ho fetesisa le "e sa tsebeng letho" e tla shebahala tjena (ha re e bitseng Khetho ea 1 (ea kamehla), bakeng sa litšupiso tsa nako e tlang):

RowKey
Likholomo

Vasya
1: Petya
2: Olya
3: Dasha

Petya
1: Masha
2: Vasya

Mona, mola o mong le o mong o lumellana le mosebelisi a le mong oa marang-rang. Likholomo li na le mabitso: 1, 2, ... — ka palo ea metsoalle, 'me likholomo li boloka li-ID tsa metsoalle. Ho bohlokoa ho hlokomela hore mola o mong le o mong o tla ba le palo e fapaneng ea litšiea. Mohlala o hlahang setšoantšong se ka holimo, mola o le mong o na le litšiea tse tharo (1, 2, le 3), 'me oa bobeli o na le tse peli feela (1 le 2) - mona rona ka borona re sebelisitse thepa e' meli ea HBase eo marang-rang a amanang le eona a se nang eona:

  • bokhoni ba ho fetola sebopeho sa likholomo (eketsa motsoalle -> eketsa kholomo, tlosa motsoalle -> tlosa kholumo)
  • Mela e fapaneng e ka ba le liqapi tse fapaneng tsa kholomo

Ha re hlahlobeng sebopeho sa rona hore na se lumellana le litlhoko tsa mosebetsi:

  • Lintlha tsa ho bala: e le hore re utloisise hore na Vasya o ngolisitsoe ho Olya, re tla hloka ho bala mola kaofela ka senotlolo RowKey = "Vasya" 'me u phete litekanyetso tsa kholomo ho fihlela re "kopana" le Olya ho tsona. Kapa u phete litekanyetso tsa litšiea tsohle, "ha u kopane" le Olya 'me u khutlisetse karabo Bohata;
  • Fetola lintlha: eketsa motsoalle: bakeng sa bothata bo ts'oanang re tla hloka ho tlosa mola kaofela ka senotlolo RowKey = "Vasya", ho bala palo eohle ea metsoalle ea hae. Re hloka palo ena kaofela ea metsoalle ho tseba nomoro ea kholumo eo re ka ngolang ID ea motsoalle e mocha ho eona.
  • Fetola lintlha: hlakola motsoalle:
    • Hoa hlokahala ho tlosa mola kaofela ka senotlolo RowKey = "Vasya" 'me u tsamaee ka litšiea ho fumana eo motsoalle ea hlakoloang a tlalehiloeng ho eona;
    • Ka mor'a moo, ka mor'a ho hlakola motsoalle, re lokela ho "fetola" lintlha tsohle ho kholumo e le 'ngoe e le hore re se ke ra fumana "likheo" ho palo ea tsona.

Ha re hlahlobeng hore na li-algorithms tsena, tseo re tla hloka ho li sebelisa ka lehlakoreng la "conditional application", li tla sebelisoa joang. O-symbolism. Ha re bolele boholo ba marang-rang a rona a inahaneloang joalo ka n. Joale palo e kholo ea metsoalle eo mosebelisi a ka bang le eona ke (n-1). Re ka hlokomoloha sena (-1) molemong oa rona, kaha ha se bohlokoa ka har'a moralo oa ho sebelisa matšoao a O.

  • Lintlha tsa ho bala: hoa hlokahala ho tlosa mola oohle le ho hlophisa litšiea tsohle tsa eona moeling. Sena se bolela hore khakanyo e holimo ea litjeho e tla ba hoo e ka bang O(n)
  • Fetola lintlha: eketsa motsoalle: ho fumana palo ea metsoalle, o hloka ho pheta-pheta litšiea tsohle tsa mola, ebe o kenya kholomo e ncha => O(n)
  • Fetola lintlha: hlakola motsoalle:
    • Ho ts'oana le ho eketsa - ho hlokahala ho feta likholomong tsohle moeling => O(n)
    • Ka mor'a ho hlakola litšiea, re lokela ho "fetola" bona. Haeba re kenya ts'ebetsong "hlooho-on", joale moeling o tla nka ho fihlela ho (n-1) ts'ebetso e eketsehileng. Empa mona le ho feta karolong e sebetsang re tla sebelisa mokhoa o fapaneng, o tla kenya ts'ebetsong "pseudo-shift" ka palo e tsitsitseng ea ts'ebetso - ke hore, ho tla nka nako e sa khaotseng ho sa tsotellehe n. Nako ena e sa feleng (ho bua hantle, O(2)) e ka hlokomolohuoa ha e bapisoa le O(n). Mokhoa ona o bontšitsoe setšoantšong se ka tlase: re kopitsa data ho tsoa kholumong ea "ho qetela" ho ea moo data e lokelang ho hlakoloa ho eona, ebe re hlakola kholomo ea ho qetela:
      Likarolo tsa ho rala mohlala oa data bakeng sa NoSQL

Ka lebaka leo, maemong ohle re fumane ho rarahana ha asymptotic ea O(n).
Mohlomong u se u hlokometse hore hoo e batlang e le kamehla re tlameha ho bala mohala oohle ho tloha ho database, 'me maemong a mabeli ho a mararo, feela ho feta lihlopha tsohle le ho bala palo eohle ea metsoalle. Ka hona, e le boiteko ba ho ntlafatsa, re ka eketsa "bala" kholomo, eo ho eona ho bolokang palo eohle ea metsoalle ea mosebedisi e mong le e mong oa marang-rang. Tabeng ena, ha ho hlokahale hore re bale mola kaofela ho bala palo eohle ea metsoalle, empa bala "bala" e le 'ngoe feela. Ntho ea bohlokoa ke hore u se ke ua lebala ho ntlafatsa "bala" ha u sebelisa data. Kahoo, re fumana ntlafatso Khetho ea 2 (palo):

RowKey
Likholomo

Vasya
1: Petya
2: Olya
3: Dasha
palo: 3

Petya
1: Masha
2: Vasya

palo: 2

Ha ho bapisoa le khetho ea pele:

  • Lintlha tsa ho bala: ho fumana karabo ea potso "Na Vasya o bala Olya?" ha ho letho le fetohileng => O (n)
  • Fetola lintlha: eketsa motsoalle: Re nolofalitse ho kenngoa ha motsoalle e mocha, kaha hona joale ha ho hlokahale hore re bale mola kaofela le ho pheta-pheta holim'a litšiea tsa eona, empa re ka fumana feela boleng ba "bala" kholomo 'me kahoo hang-hang re fumana nomoro ea mohala bakeng sa ho kenya motsoalle e mocha. Sena se lebisa phokotsong ea ho rarahana ha likhomphutha ho O(1)
  • Fetola lintlha: hlakola motsoalle: Ha u hlakola motsoalle, re ka boela ra sebelisa kholomo ena ho fokotsa palo ea ts'ebetso ea I / O ha u "fetola" data sele e le 'ngoe ho ea ka ho le letšehali. Empa tlhoko ea ho pheta-pheta likholomo ho fumana e lokelang ho hlakoloa e ntse e le teng, kahoo => O(n)
  • Ka lehlakoreng le leng, hona joale ha re ntlafatsa data re hloka ho ntlafatsa "bala" kholomo nako le nako, empa sena se nka nako e sa khaotseng, e ka hlokomolohuoang ka har'a moralo oa O-symbolic.

Ka kakaretso, khetho ea 2 e bonahala e nepahetse haholoanyane, empa e tšoana le "phetoho ho fapana le phetohelo." Ho etsa "phetohelo," re tla hloka Khetho ea 3 (col).
Ha re fetoleng ntho e 'ngoe le e 'ngoe: ha re khethe kholomo lebitso la mosebedisi id! Se tla ngoloa kholomong ka boeona ha se bohlokoa ho rona, e ke e be palo ea 1 (ka kakaretso, ho tloha linthong tse molemo tseo u ka li bolokang moo, mohlala, sehlopha "lelapa / metsoalle / joalo-joalo.") Mokhoa ona o ka makatsa "motho ea sa itokiselitseng" ea e-s'o be le phihlelo ea ho sebetsa le li-database tsa NoSQL pele, empa ke mokhoa ona o u lumellang hore u sebelise bokhoni ba HBase mosebetsing ona ka katleho haholoanyane:

RowKey
Likholomo

Vasya
Penya: 1
Olya: 1
Hlahisa: 1

Petya
Masha: 1
Phello: 1

Mona re fumana melemo e mengata ka nako e le 'ngoe. Ho li utloisisa, ha re hlahlobeng sebopeho se secha le ho hakanya ho rarahana ha khomphutha:

  • Lintlha tsa ho bala: e le ho araba potso ea hore na Vasya o ngolisitsoe ho Olya, ho lekane ho bala kholomo e le 'ngoe "Olya": haeba ho joalo, joale karabo ke 'Nete, haeba e se - Bohata => O (1)
  • Fetola lintlha: eketsa motsoalle: Ho eketsa motsoalle: kenya feela kholomo e ncha "ID ea motsoalle" => O(1)
  • Fetola lintlha: hlakola motsoalle: tlosa feela kholomo ea "ID ea motsoalle" => O(1)

Joalokaha re bona, molemo o moholo oa mohlala o joalo oa polokelo ke hore maemong ohle ao re a hlokang, re sebetsa ka kholomo e le 'ngoe feela, re qoba ho bala mola oohle ho tsoa ho database mme, le ho feta, ho feta litšiea tsohle tsa mola ona. Re ka emisa mona, empa...

U ka makatsa taba ena 'me u fetele pele hanyane tseleng ea ho ntlafatsa ts'ebetso le ho fokotsa ts'ebetso ea I/O ha u fihlella database. Ho thoe'ng haeba u boloka tlhahisoleseding e feletseng mabapi le khokahanyo ka ho toba ka konopo ea mola ka boeona? Ke hore, etsa motsoako oa bohlokoa joalo ka userID.friendID? Tabeng ena, ha ho hlokahale hore re bale litšiea tsa mela (Khetho ea 4(mola)):

RowKey
Likholomo

Vasya.Petya
Penya: 1

Vasya.Olya
Olya: 1

Vasya.Dasha
Hlahisa: 1

Petya.Masha
Masha: 1

Petya.Vasya
Phello: 1

Ho hlakile hore, tlhahlobo ea maemo ohle a ho qhekella ha data sebopehong se joalo e tla ba O(1), joalo ka mofuta o fetileng. Phapang ka mofuta oa 3 e tla ba hantle feela ts'ebetsong ea ts'ebetso ea ho kenya / tlhahiso sebakeng sa polokelo ea litaba.

Hantle, mona ke "bow tie" ea ho qetela. Ho bonolo ho bona hore khetho ea 4, senotlolo sa rona sa mela se tla ba le bolelele bo fapaneng, bo ka amang tshebetso (hopola hore HBase e boloka data e le sete ea li-byte le mela e litafoleng e hlophisoa ka senotlolo). Ho feta moo, re na le karohano, eo maemong a mang e ka hlokang ho sebetsoa. Ho felisa phello ena, o ka sebelisa li-hashes tse tsoang ho userID le friendID, 'me kaha li-hashe ka bobeli li tla ba le bolelele bo sa feleng, u ka li kopanya feela, ntle le karohano. Ebe data e tafoleng e tla shebahala tjena (Khetho ea 5(hash)):

RowKey
Likholomo

dc084ef00e94aef49be885f9b01f51c01918fa783851db0dc1f72f83d33a5994
Penya: 1

dc084ef00e94aef49be885f9b01f51c0f06b7714b5ba522c3cf51328b66fe28a
Olya: 1

dc084ef00e94aef49be885f9b01f51c00d2c2e5d69df6b238754f650d56c896a
Hlahisa: 1

1918fa783851db0dc1f72f83d33a59949ee3309645bd2c0775899fca14f311e1
Masha: 1

1918fa783851db0dc1f72f83d33a5994dc084ef00e94aef49be885f9b01f51c0
Phello: 1

Ho hlakile hore ho rarahana ha algorithm ea ho sebetsa le sebopeho se joalo ho latela maemo ao re a nahanang a tla tšoana le khetho ea 4 - ke hore, O (1).
Kahoo, ha re beheng likhakanyo tsohle tsa rona tsa ho rarahana ha lipalo tafoleng e le 'ngoe:

Ho eketsa motsoalle
Ho hlahloba motsoalle
Ho tlosa motsoalle

Khetho ea 1 (ea kamehla)
O (n)
O (n)
O (n)

Khetho ea 2 (palo)
O (1)
O (n)
O (n)

Khetho ea 3 (kholomo)
O (1)
O (1)
O (1)

Khetho ea 4 (mola)
O (1)
O (1)
O (1)

Khetho ea 5 (hash)
O (1)
O (1)
O (1)

Joalo ka ha u bona, likhetho tsa 3-5 li bonahala e le tsona tse ratoang ka ho fetesisa ebile li netefatsa ts'ebetso ea maemo ohle a bohlokoa a ho qhekella ha data ka nako e sa fetoheng. Boemo ba bothata ba rona ha bo hloke ka ho hlaka ho fumana lethathamo la metsoalle eohle ea mosebedisi, empa mesebetsing ea sebele ea morero, joaloka bahlahlobisisi ba molemo, ho ka ba molemo hore re "bone esale pele" hore mosebetsi o joalo o ka hlaha le "ho beha joang fatše". Ka hona, kutloelo-bohloko ea ka e na le khetho ea 3. Empa ho ka khoneha hore morerong oa sebele kopo ena e ka be e se e rarollotsoe ka mekhoa e meng, kahoo ntle le pono e akaretsang ea mosebetsi oohle, ho molemo hore u se ke ua etsa liqeto tsa ho qetela.

Ho lokisetsa teko

Ke kopa ho lekola mabaka a kaholimo ka ts'ebetso - ena e ne e le sepheo sa mohopolo o hlahileng mafelong a beke a malelele. Ho etsa sena, hoa hlokahala ho hlahloba lebelo la "ts'ebeliso ea maemo" ea rona maemong ohle a hlalositsoeng a ho sebelisa database, hammoho le kholo ea nako ena ka kholo ea boholo ba marang-rang a sechaba (n). Sepheo sa parameter se re khahlang le seo re tla se lekanya nakong ea teko ke nako e sebelisoang ke "ts'ebetso e nang le maemo" ho etsa "ts'ebetso ea khoebo" e le 'ngoe. Ka "ts'ebetso ea khoebo" re bolela e 'ngoe ea tse latelang:

  • Ho eketsa motsoalle e mong e mocha
  • Lekola hore na mosebelisi A ke motsoalle oa mosebelisi B
  • Ho tlosa motsoalle a le mong

Kahoo, ho ela hloko litlhoko tse boletsoeng polelong ea pele, boemo ba netefatso bo tjena:

  • Ho rekota data. Hlahisa marang-rang a sa lebelloang a saese n. Ho etsa hore e be haufi le "lefats'e la 'nete", palo ea metsoalle eo mosebelisi e mong le e mong a nang le eona e boetse e fapane. Lekanya nako eo ho e nkang "ts'ebeliso e nang le maemo" ho ngola lintlha tsohle tse hlahisitsoeng ho HBase. Ebe o arola nako e hlahisoang ka palo eohle ea metsoalle e ekelitsoeng - ka tsela ena re fumana nako e tloaelehileng ea "ts'ebetso ea khoebo" e le 'ngoe.
  • Lintlha tsa ho bala. Bakeng sa mosebelisi e mong le e mong, etsa lethathamo la "botho" boo u hlokang ho fumana karabo ea hore na mosebelisi o ngolisitsoe ho bona kapa che. Bolelele ba lenane = hoo e batlang e le palo ea metsoalle ea mosebedisi, 'me bakeng sa halofo ea metsoalle e ile ea hlahloba karabo e lokela ho ba "E", le bakeng sa halofo e' ngoe - "Che". Cheke e etsoa ka tatellano e le hore likarabo "E" le "Che" li fapanyetsane (ke hore, molemong o mong le o mong oa bobeli re tla tlameha ho feta har'a litšiea tsohle tsa mola bakeng sa likhetho tsa 1 le 2). Kakaretso ea nako ea ho hlahloba e aroloa ka palo ea metsoalle e hlahlobiloeng ho fumana nako e tloaelehileng ea ho hlahloba sehlooho se le seng.
  • Ho hlakola data. Hlakola metsoalle eohle ho mosebedisi. Taelo ea ho hlakoloa ha e iketsahalle feela (ke hore, re "suffle" lenane la mantlha le sebelisitsoeng ho rekota data). Kakaretso ea nako ea netefatso e aroloa ka palo ea metsoalle e hlakotsoeng ho fumana nako e tloaelehileng ea netefatso e le 'ngoe.

Maemo a hloka ho tsamaisoa bakeng sa mofuta o mong le o mong oa mefuta ea data ea 5 le bakeng sa boholo bo fapaneng ba marang-rang a sechaba ho bona hore na nako e fetoha joang ha e ntse e hola. Ka har'a n e le 'ngoe, likhokahano tsa marang-rang le lenane la basebelisi ba lokelang ho hlahlojoa li lokela ho tšoana ka tlhaho bakeng sa mefuta eohle ea 5.
Bakeng sa kutloisiso e betere, ka tlase ke mohlala oa data e hlahisitsoeng bakeng sa n = 5. "Jenereithara" e ngotsoeng e hlahisa lidikishinari tse tharo tsa ID ho tlhahiso:

  • ea pele ke ea ho kenya
  • ea bobeli ke ea ho hlahloba
  • ea boraro ke ea ho tlosoa

{0: [1], 1: [4, 5, 3, 2, 1], 2: [1, 2], 3: [2, 4, 1, 5, 3], 4: [2, 1]} # всего 15 друзей

{0: [1, 10800], 1: [5, 10800, 2, 10801, 4, 10802], 2: [1, 10800], 3: [3, 10800, 1, 10801, 5, 10802], 4: [2, 10800]} # всего 18 проверяемых субъектов

{0: [1], 1: [1, 3, 2, 5, 4], 2: [1, 2], 3: [4, 1, 2, 3, 5], 4: [1, 2]} # всего 15 друзей

Joalo ka ha u bona, li-ID tsohle tse fetang 10 bukeng ea mantsoe bakeng sa netefatso ke tsona tse tla fana ka karabo ea Bohata. Ho kenya, ho netefatsa le ho hlakola "metsoalle" ho etsoa ka tatellano e hlakileng e boletsoeng bukeng ea bukantswe.

Эксперимент проводился на ноутбуке под управлением Windows 10, где в одном докер-контейнере была запущена база HBase, а в другом – Python с Jupyter Notebook. Докеру было выделено 2 ядра CPU и 2 Гб оперативной памяти. Вся логика, как и эмуляции работы «условного приложения», так и «обвязка» для генерации тестовых данных и замера времени были написаны на Python. Для работы с HBase использовалась библиотека happybase, ho bala li-hashes (MD5) bakeng sa khetho ea 5 - hahlib

Ha ho nahanoa ka matla a komporo ea laptop e itseng, ho ile ha khethoa tlhahiso ka liteko bakeng sa n = 10, 30, .... 170 - ha nako e felletseng ea nako ea tlhahlobo e felletseng ea potoloho e felletseng (maemo ohle bakeng sa likhetho tsohle bakeng sa n) e ne e sa ntsane e utloahala ebile e lekana nakong ea mokete o le mong oa tee (ka karolelano metsotso e 15).

Mona hoa hlokahala ho fana ka maikutlo a hore tekong ena ha e le hantle ha re hlahlobe lipalo tsa ts'ebetso e felletseng. Esita le papiso e lekanyelitsoeng ea likhetho tse peli tse fapaneng e ka 'na ea se ke ea nepahala ka ho feletseng. Hona joale re thahasella mofuta oa phetoho ea nako e itšetlehileng ka n, kaha ho nahanoa ka tlhophiso e boletsoeng ka holimo ea "teko ea teko", ho thata haholo ho fumana likhakanyo tsa nako "ho hlakotsoe" ho tsoa tšusumetsong ea lintho tse sa tloaelehang le tse ling ('me mosebetsi o joalo o ne o sa behoa).

Sephetho sa teko

Teko ea pele ke hore na nako e sebelisitsoeng ho tlatsa lethathamo la metsoalle e fetoha joang. Sephetho se ho kerafo e ka tlase.
Likarolo tsa ho rala mohlala oa data bakeng sa NoSQL
Khetho ea 3-5 e lebelletsoe ho bonts'a nako e batlang e sa fetohe ea "ts'ebetso ea khoebo", e sa itšetleheng ka kholo ea boholo ba marang-rang, le phapang e ke keng ea hlalosoa ea ts'ebetso.
Khetho ea 2 e boetse e bonts'a ts'ebetso e sa fetoheng, empa e mpe le ho feta, 'me hoo e batlang e le makhetlo a 2 mabapi le likhetho tsa 3-5. 'Me sena se ka kopa, kaha se amana le khopolo - khethong ena, palo ea ts'ebetso ea ho kenya letsoho ho / ho tloha HBase e kholoanyane ka makhetlo a 2. Sena e ka ba bopaki bo sa tobang ba hore tlhahlobo ea rōna, ha e le hantle, e fana ka ho nepahala ho hotle.
Khetho ea 1 e boetse e lebeletsoe hore e be eona e liehang ka ho fetisisa 'me e bonts'a keketseho e lekaneng ea nako e sebelisoang ho eketsa motsoalle a le mong ho itšetlehile ka boholo ba marang-rang.
Joale ha re shebeng liphetho tsa tlhahlobo ea bobeli.
Likarolo tsa ho rala mohlala oa data bakeng sa NoSQL
Mefuta e fapaneng ea 3-5 e boetse e itšoara ka tsela e lebeletsoeng - nako e sa khaotseng, e ikemetseng ka boholo ba marang-rang. Mefuta e fapaneng ea 1 le 2 e bonts'a kholo ea nako e lekanang le kholo ea boholo ba marang-rang le ts'ebetso e ts'oanang. Ho feta moo, phapang ea 2 e fetoha butle butle - ka ho hlakileng ka lebaka la tlhoko ea ho bala le ho sebetsana le kholomo e eketsehileng "bala", e bonahalang haholoanyane ka kholo ea n. Empa ke ntse ke tla qoba liqeto leha e le life, kaha ho nepahala ha papiso ena ho batla ho le tlaase. Ho phaella moo, litekanyo tsena (tse fapaneng, 1 kapa 2, li potlakile) li fetohile ho tloha ho qala ho ea ho qala (ha li ntse li boloka tlhaho ea ho itšetleha le "molala le molala").

Hantle, kerafo ea ho qetela ke phello ea teko ea ho tlosa.

Likarolo tsa ho rala mohlala oa data bakeng sa NoSQL

Mona hape, ha ho makatse. Likhetho tsa 3-5 li etsa ho tlosoa ka nako e sa khaotseng.
Ho feta moo, se thahasellisang ke hore likhetho tsa 4 le 5, ho fapana le maemo a fetileng, li bonts'a ts'ebetso e mpe hanyenyane ho feta khetho ea 3. Kamoo ho bonahalang kateng, ts'ebetso ea ho hlakola mela e theko e boima ho feta ts'ebetso ea ho hlakola mela, eo ka kakaretso e utloahalang.

Khetho ea 1 le ea 2, joalo ka ha ho lebelletsoe, e bonts'a keketseho ea nako. Leha ho le joalo, khetho ea 2 e lula e le butle ho feta khetho ea 1 - ka lebaka la ts'ebetso ea tlatsetso ea ho kenya / tlhahiso ho "tšebeletso" kholomo ea palo.

Liphetho tse akaretsang tsa liteko:

  • Likhetho tsa 3-5 li bonts'a katleho e kholo, kaha li nka monyetla ka HBase; leha ho le joalo, ts'ebetso ea bona e fapane ho e mong ka nako e sa khaotseng 'me ha e itšetlehe ka boholo ba marang-rang.
  • Phapang pakeng tsa mefuta ea 4 le 5 ha ea tlalehoa. Empa sena ha se bolele hore mofuta oa 5 ha oa lokela ho sebelisoa. Ho ka etsahala hore ebe boemo ba liteko bo sebelisitsoeng, ho nahanoa ka litšobotsi tsa ts'ebetso ea sethala sa teko, ha boa ka ba lumella hore bo senoloe.
  • Mofuta oa keketseho ea nako e hlokahalang ho etsa "ts'ebetso ea khoebo" e nang le data ka kakaretso e netefalitse lipalo tsa theory tse fumanoeng pele bakeng sa likhetho tsohle.

Epilogue

Проведенные грубые эксперименты не следует воспринимать как абсолютную истину. Есть множество факторов, которые не были учтены и вносили искажения в результаты (особенно хорошо эти флуктуации видны на графиках при небольшом размере сети). Например, скорость работы thrift, который используется happybase, объем и способ реализации логики, которая у меня была написана на Python (не берусь утверждать, что код был написан оптимально и эффективно использовал возможности всех компонент), возможно особенности кэширования HBase, фоновая активность Windows 10 на моем ноутбуке и т.п. В целом можно считать, что все теоретические выкладки экспериментально показали свою состоятельность. Ну или как минимум опровергнуть их таким вот «наскоком в лоб» не получилось.

Qetellong, mona ke likhothaletso bakeng sa mang kapa mang ea sa tsoa qala ho rala mefuta ea data ho HBase: behella ka thoko boiphihlelo ba hau ba nakong e fetileng ba ho sebetsa le datha ea likamano 'me u hopole "litaelo":

  • Ha re rala, re tsoela pele ho tloha mosebetsing le mekhoa ea ho qhekella ea data, eseng ho tsoa ho mohlala oa sebaka sa thuto
  • Ho fihlella hantle (ntle le ho hlahloba tafole ka botlalo) - feela ka senotlolo
  • Denormalization
  • Mela e fapaneng e ka ba le likholomo tse fapaneng.
  • Sebopeho se matla sa likholomo

Source: www.habr.com

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster