{"id":36632,"date":"2019-10-31T22:12:47","date_gmt":"2019-10-31T19:12:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3\/"},"modified":"2019-10-31T22:12:47","modified_gmt":"2019-10-31T19:12:47","slug":"globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3","title":{"rendered":"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/ac6eefbfb9d7cc28c3f2ca85c7d1adb2.jpg\" style=\"display:block;margin: 0 auto;\" \/>Eelmine osa (<noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263791\/\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/264173\/\">2<\/a><\/noindex>) r\u00e4\u00e4kisime globaalsusest kui puudest, n\u00fc\u00fcd uurime globaalsust kui h\u00f5redaid massiive.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D0%B7%D1%80%D0%B5%D0%B6%D1%91%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2\">H\u00f5re massiiv<\/a><\/noindex> on eriline massiivit\u00fc\u00fcp, kus enamus v\u00e4\u00e4rtustest on samad.<\/p>\n<p>Praktikas esinevad sedav\u00f5rd suured h\u00f5redad massiivid, et ei ole m\u00f5tet m\u00e4luruumi raisata samade elementide t\u00f5ttu. Seet\u00f5ttu on m\u00f5istlik h\u00f5redeid massiive rakendada nii, et m\u00e4lu ei raiskataks samade v\u00e4\u00e4rtuste hoidmisele.<br \/>\nM\u00f5nes programmeerimiskeeles on h\u00f5redad massiivid juba keele osa, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jsoftware.com\/help\/dictionary\/d211.htm\">n\u00e4iteks J<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.mathworks.com\/help\/matlab\/ref\/sparse.html\">MATLAB<\/a><\/noindex>. Teistes programmeerimiskeeltes on spetsiaalsed teegid, mille abil neid rakendada. C++ jaoks \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/eigen.tuxfamily.org\/dox-devel\/GettingStarted.html\">Eigen<\/a><\/noindex> ja palju muud. <\/p>\n<p>Globaalsed olendid on head kandidaadid h\u00f5redate massiivide rakendamiseks, sest:<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ol>\n<li>Nad hoiavad ainult teatud s\u00f5lmede v\u00e4\u00e4rtusi, mitte m\u00e4\u00e4ramata v\u00e4\u00e4rtusi;<\/li>\n<li>S\u00f5lme v\u00e4\u00e4rtusele p\u00e4\u00e4semise liides sarnaneb v\u00e4ga sellele, kuidas paljudes programmeerimiskeeltes rakendatakse mitmem\u00f5\u00f5tmelise massiivi elementi.\n<pre><code class=\"bash\">Set ^a(1, 2, 3)=5\nWrite ^a(1, 2, 3)<\/code><\/pre>\n<p>\n<\/li>\n<li>Gloobaal on piisavalt madala taseme struktuur andmete hoidmiseks, seega omab see suurep\u00e4raseid kiirusomadusi (sadu tuhandeid kuni k\u00fcmneid miljoneid tehinguid sekundis, s\u00f5ltuvalt riistvarast, vt. <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/257501\/\">1<\/a><\/noindex>)<\/li>\n<\/ol>\n<p><\/p>\n<blockquote><p>Kuna gloobaal on p\u00fcsiv struktuur, on m\u00f5istlik rakendada h\u00f5redeid massiive, kui on juba ette teada, et operatiivm\u00e4lu mahust ei piisa.<\/p><\/blockquote>\n<p>\n\u00dcks h\u00f5rede massiivi rakenduse omadustest on vaikimisi mingi v\u00e4\u00e4rtuse tagastamine, kui p\u00f6\u00f6rdutakse m\u00e4\u00e4ramata lahtri poole.<\/p>\n<p>Seda saab rakendada, kasutades funktsiooni <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fget\">$GET<\/a><\/noindex> COS-is. Antud n\u00e4ites k\u00e4sitletakse 3-m\u00f5\u00f5tmelist massiivi.<\/p>\n<pre><code>SET a = $GET(^a(x,y,z), defValue)<\/code><\/pre>\n<p>\nMillistes \u00fclesannetes on h\u00f5redaid massiive vaja ja kuidas gloobaalid saavad abiks olla?<\/p>\n<h2>Siduva (seosetabeli) maatriks<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_%D1%81%D0%BC%D0%B5%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8\">Selliseid maatrikseid<\/a><\/noindex> kasutatakse graafide esitlemiseks:<\/p>\n<p><img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/a580c451610bcacbef154c161ef63939.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIlmselgelt, et mida suurem on graaf, seda rohkem nullv\u00e4\u00e4rtusi on maatriksis. Kui n\u00e4iteks v\u00f5tta sotsiaalv\u00f5rgustiku graaf ja esitada see sarnases maatriksis, siis koosneb see peaaegu t\u00e4ielikult nullidest, st see on h\u00f5re massiiv.<\/p>\n<pre><code class=\"bash\">Set ^m(id1, id2) = 1 \nSet ^m(id1, id3) = 1 \nSet ^m(id1, id4) = 1 \nSet ^m(id1) = 3 \nSet ^m(id2, id4) = 1 \nSet ^m(id2, id5) = 1 \nSet ^m(id2) = 2\n....\n<\/code><\/pre>\n<p>\nAntud n\u00e4ites salvestame gloobaali <strong>^m<\/strong> \u00fchenduvuse maatriks, samuti iga s\u00f5lme servade arv (kes kellega s\u00f5brustab ja s\u00f5prade arv).<\/p>\n<p>Kui graafis on elemente mitte rohkem kui 29 miljonit (see number saadakse 8 * <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache201512\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GORIENT_appx_limits_long_string\">maksimaalne stringi suurus<\/a><\/noindex>), siis on olemas veelgi \u00f6konoomsem viis selliste maatriksite salvestamiseks \u2014 bittide read, kuna nende rakenduses optimeerivad suured t\u00fchimikud eriliselt.<\/p>\n<p>Bittide ridade manipuleerimine toimub funktsiooni <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fbit\">$BIT<\/a><\/noindex>. <\/p>\n<pre><code class=\"bash\">; bit, seadistamine\nSET $BIT(rowID, positionID) = 1\n; bit, saamine\nWrite $BIT(rowID, positionID)\n<\/code><\/pre>\n<p><\/p>\n<h2>L\u00f5pliku automaadi \u00fcleminekute tabel<\/h2>\n<p>\nKuna l\u00f5pliku automaadi \u00fclemineku graaf on tavaline graaf, on l\u00f5pliku automaadi \u00fcleminekute tabel sama, millest eespool r\u00e4\u00e4giti \u2014 see on samuti adjektiivmaatriks.<\/p>\n<h2>Raku automaadid<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/b9fedb51cd1c8fced79ca221a925349c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTuntuim raku automaat on <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%96%D0%B8%D0%B7%D0%BD%D1%8C_(%D0%B8%D0%B3%D1%80%D0%B0)\">m\u00e4ng \"Elu\"<\/a><\/noindex>, mille t\u00f5ttu tema reeglid (kui rakul on palju naabreid \u2014 see sureb) esindab h\u00f5redat masiivi.<\/p>\n<p>Steven Wolfram peab raku automate uus teaduse valdkond. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/A_New_Kind_of_Science\">. Aastal 2002 avaldas ta 1280-lehek\u00fcljelise raamatu \"Uus teadust\u00fc\u00fcp\", kus ta laialdaselt v\u00e4idab, et edusammud raku automaatide valdkonnas ei ole isoleeritud, vaid on piisavalt stabiilsed ja omavad suurt t\u00e4htsust k\u00f5igis teaduse valdkondades.<\/a><\/noindex>On t\u00f5estatud, et iga arvutuslik algoritm, mida saab arvutis teostada, saab rakendada raku automaatide abil. Raku automate kasutatakse d\u00fcnaamiliste keskkondade ja s\u00fcsteemide modelleerimiseks, algoritmiliste probleemide lahendamiseks ja teiste eesm\u00e4rkide saavutamiseks.<\/p>\n<p>Kui meil on tohutu ala ja peame salvestama k\u00f5ik raku automaadi vahepealsed seisundid, on t\u00e4iesti m\u00f5istlik kasutada globaalset.<\/p>\n<p>Kartoograafia<\/p>\n<h2>Esimene asi, mis mulle p\u00e4he tuleb, kui r\u00e4\u00e4kida h\u00f5redate masiivide kasutamisest \u2014 on kaartide \u00fclesanded.<\/h2>\n<p>\n\u00dcldiselt on kaartidel v\u00e4ga palju t\u00fchja ruumi. Kui kaarti kujutada suurte pikslitena, siis 71% Maa pikslitest on ookean. H\u00f5re maatriks. Ja kui joonistada vaid inimk\u00e4te tekitatud teosed, siis t\u00fchja ruumi on \u00fcle 95%.<\/p>\n<p>Muidugi ei hoia keegi kaarte rastermasiivide kujul, kasutatakse vektorivat esitamist.<\/p>\n<p>Aga mis on vektorikaardid? See on mingi raam ja punktidest koosnevad pol\u00fcjooned ja pol\u00fcgoonid.<br \/>\nAga mis on vektorkaartide olemus? Need on teatud raamistik ning koosnevad punktidest, pol\u00fcliinidest ja poligonidest.<br \/>\nTegelikult on punktide ja nende vaheliste sidemete andmebaas.<\/p>\n<p>\u00dcks k\u00f5ige ambitsioonikamaid kaartimise \u00fclesandeid on meie galaktika kaardistamine Gaia teleskoobiga. Kujutletavalt on meie galaktika, nagu kogu universum, \u00fchtlane ja h\u00f5re mass: tohutud t\u00fchjad ruumid, kus on harvaesinevad v\u00e4iksed punktid \u2014 t\u00e4hid. T\u00fchja ruumi on 99,999999...%. Meie galaktika kaardi salvestamiseks on valitud globaalne andmebaas \u2014 Cach\u00e9.<\/p>\n<p>Ma ei tea projekti globaalide t\u00e4pset struktuuri, kuid v\u00f5in eeldada, et see on midagi sellist:<\/p>\n<pre><code class=\"bash\">Set ^galaxy(b, l, d) = 1; T\u00e4heseeria numbriga kataloogis, kui see on olemas\nSet ^galaxy(b, l, d, \"name\") = \"P\u00e4ike\"\nSet ^galaxy(b, l, d, \"type\") = \"normaalne\"; valikud blackhole, quazar, punane k\u00e4\u00e4bus jne.\nSet ^galaxy(b, l, d, \"weight\") = 14E50\nSet ^galaxy(b, l, d, \"planetes\") = 7\nSet ^galaxy(b, l, d, \"planetes\", 1) = \"Merkuur\"\nSet ^galaxy(b, l, d, \"planetes\", 1, weight) = 1E20\n...\n<\/code><\/pre>\n<p>\n<i>Kus b, l, d \u2014 on <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wiki2.org\/wiki\/Galaktiline_koordinaats\u00fcsteem\">galaktilised koordinaadid laius, pikkus<\/a><\/noindex> ja kaugus P\u00e4ikesest.<\/i><\/p>\n<p>Globaalide paindlik struktuur v\u00f5imaldab salvestada igasuguseid t\u00e4hti ja planeetide omadusi, kuna globaalide andmebaasid on skeemivabad (scheme-less).<\/p>\n<p>Meie universumi kaardi salvestamiseks valiti Cach\u00e9 mitte ainult paindlikkuse t\u00f5ttu, vaid ka selle t\u00f5ttu, et see salvestab andmevooge v\u00e4ga kiiresti, samal ajal luues indekseeritud globaalid kiireks otsimiseks.<\/p>\n<p>Kui aga naasta Maale, siis globaalidesse loodi kaardistamisprojektid <noindex><a rel=\"nofollow\" href=\"http:\/\/wiki.openstreetmap.org\/wiki\/Xapi\">OpenStreetMap XAPI<\/a><\/noindex> ja OpenStreetMapi fork \u2014 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.fosm.org\/\">FOSM<\/a><\/noindex>.<\/p>\n<p>Hiljuti <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/267459\/\">Cach\u00e9 hackathonil<\/a><\/noindex> rakendati georuumilisi indekse <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intersystems-ru\/spatialindex\">Geospatial<\/a><\/noindex>. Ootame artikli autoritelt teavet juurutamise detailide kohta.<\/p>\n<h3>Ruumiliste indeksite rakendamine globaalides OpenStreetMap XAPI-s<\/h3>\n<p>\nPildid on p\u00e4rit <noindex><a rel=\"nofollow\" href=\"http:\/\/www.slideshare.net\/george.james\/fosdem-2010-gtm-and-openstreetmap\">selles esitluses<\/a><\/noindex>.<\/p>\n<p>Kogu maakera jaguneb ruutudeks, siis v\u00e4ikesteks ruutudeks, ja v\u00e4iksed ruudud jaotatakse veelgi v\u00e4iksemateks ruutudeks jne. Kokkuv\u00f5ttes saame hierarhilise struktuuri, mille jaoks globaalid on loodud.<\/p>\n<p><img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/239c54c201b8013f1897ecf1ccadcc9c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIgal ajal saame praktiliselt koheselt n\u00f5uda vajalikku ruutu v\u00f5i selle eemaldada, samal ajal tagastatakse k\u00f5ik v\u00e4ikesed ruudud v\u00f5i need puhastatakse.<\/p>\n<p>Sarnast skeemi globaalides on v\u00f5imalik rakendada mitmel viisil.<\/p>\n<p>Variant 1:<\/p>\n<pre><code class=\"bash\">Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 1) = idEsimesePunkti\nSet ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 2) = idTeisePunkti\n...<\/code><\/pre>\n<p>\nVariant 2:<\/p>\n<pre><code class=\"bash\">Set ^m('abacdabcdabacdabcda', 1) = idEsimesePunkti\nSet ^m('abacdabcdabacdabcda', 2) = idTeisePunkti\n...<\/code><\/pre>\n<p>\nM\u00f5lemal juhul on COS\/M-is lihtne taotleda ruutude punkte mis tahes tasemel. Esimeses variandis on ruutude t\u00fckkide puhastamine mistahes tasemel pisut lihtsam, kuid seda harva vajatakse.<\/p>\n<p>N\u00e4ide \u00fchest madalama taseme ruudust:<\/p>\n<p><img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/1fba7eb9253c6af9206cb168c6d43f2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin on m\u00f5ned globaalid projektist XAPI: indeksi esitamine globaalides:<\/p>\n<p><img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/3a80dd4c3fb23d0f2d3094703966f74b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGlobaal <strong>^way<\/strong> kasutatakse punktide talletamiseks <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Polygonal_chain\">pol\u00fcliinid<\/a><\/noindex> (teed, v\u00e4iksed j\u00f5ed jne) ja pol\u00fcgoonid (sulgudes piirkonnad: hooned, metsad jne).<\/p>\n<h2>Karm klassifikatsioon h\u00f5redate massiivide kasutamisest globaalides.<\/h2>\n<p><\/p>\n<ol>\n<li>Me talletame teatud objektide koordinaadid ja nende olekud (kaartimine, rakud automaadid)<\/li>\n<li>Me talletame h\u00f5redaid maatrikseid.<\/li>\n<\/ol>\n<p>\nJuhtumi 2 korral, kui p\u00e4rime teatud koordinaati, kus elemendile pole v\u00e4\u00e4rtust m\u00e4\u00e4ratud, peame saama h\u00f5reda massiivi elemendi vaikev\u00e4\u00e4rtuse.<\/p>\n<h2>Boonused, mida me saame mitmem\u00f5\u00f5tmeliste maatriksite talletamisel globaalides<\/h2>\n<p>\n<b>Kiire eemaldamine ja\/v\u00f5i ruutude valikud, mis on mitmekordsed ridadele, tasapindadele, kuubikutele jne.<\/b> Juhtudel, kus kasutatakse t\u00e4isarvulisi indekseid, v\u00f5ib osutuda kasulikuks kiire eemaldamise ja\/v\u00f5i ruutude valikute v\u00f5imalus, mis on mitmekordsed ridadele, tasapindadele, kuubikutele jne.<\/p>\n<p>K\u00e4suga <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_ckill\">Tapa<\/a><\/noindex> me saame eemaldada nii eraldi elementi, rida kui ka terve tasapinna. T\u00e4nu globaalide omadustele toimub see v\u00e4ga kiiresti \u2014 tuhandete kordi kiiremini kui elemendi eemaldamine.<\/p>\n<p>Joonisel on n\u00e4idatud kolmem\u00f5\u00f5tmeline massiiv globaalides <strong>^a<\/strong> ja erinevad eemaldamise viisid.<\/p>\n<p><img decoding=\"async\" alt=\"Globaale \u2014 andmete salvestamise m\u00f5\u00f5gad-ladenetsed. Harulduse massiivid. Osa 3.\" src=\"\/wp-content\/uploads\/2019\/07\/cc85ee59d42595df0d72480d3e533a12.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRuudukeste valimiseks tuntud indeksite alusel saab kasutada k\u00e4sku <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cmerge\">Merge<\/a><\/noindex>.<\/p>\n<p>Maatriksi veeru valimine muutujasse Column:<\/p>\n<pre><code class=\"bash\">; M\u00e4\u00e4rame kolmem\u00f5\u00f5tmelise h\u00f5reda massiivi 3x3x3\nSet ^a(0,0,0)=1,^a(2,2,0)=1,^a(2,0,1)=1,^a(0,2,1)=1,^a(2,2,2)=1,^a(2,1,2)=1\nMerge Column = ^a(2,2)\n; V\u00e4ljastame muutuja Column\nZwrite Column\n<\/code><\/pre>\n<p>\nKokkuv\u00f5te:<\/p>\n<pre><code class=\"bash\">Column(0)=1\nColumn(2)=1\n<\/code><\/pre>\n<p>\nMis on huvitav, muutuja Column on ka saanud h\u00f5reda massiivi, millele tuleb viidata samuti l\u00e4bi <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fget\">$GET<\/a><\/noindex>, kuna vaikev\u00e4\u00e4rtusi selles ei talletata.<\/p>\n<p>Ruutekeste valimine v\u00f5ib samuti toimuda l\u00e4bi v\u00e4ikese programmi, kasutades funktsiooni <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_forder\">$K\u00e4sk<\/a><\/noindex>. See on eriti mugav ruumides, mille indeksid ei ole kvantitud (kaardistamine).<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nPraegused ajad seavad uusi ambitsioonikaid \u00fclesandeid. Graafikud v\u00f5ivad koosneda miljarditest tipudest, kaardid miljarditest punktidest ja keegi v\u00f5ib isegi soovida oma universumit k\u00e4ivitada rakendatud automaatidel (<noindex><a rel=\"nofollow\" href=\"http:\/\/lenta.ru\/news\/2009\/08\/28\/universe\/\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.worldscientific.com\/worldscibooks\/10.1142\/4702\">2<\/a><\/noindex>).<\/p>\n<p>Kui andmete kogus hajusates massiivides ei mahugi enam operatiivm\u00e4lu, kuid nendega tuleb siiski t\u00f6\u00f6tada, tasub kaaluda sarnaste projektide elluviimise v\u00f5imalust globaalselt ja COS-il.<\/p>\n<p>Ait\u00e4h t\u00e4helepanu eest! Ootame teie k\u00fcsimusi ja soovitusi kommentaarides.<\/p>\n<p><b>M\u00e4rkus<\/b>: <i>See artikkel ja minu kommentaarid sellele on minu arvamus ning ei kajasta InterSystems korporatsiooni ametlikku seisukohta.<\/i><br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/intersystems\/blog\/268465\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 (1, 2) \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u0433\u043b\u043e\u0431\u0430\u043b\u0430\u0445 \u043a\u0430\u043a \u043e \u0434\u0435\u0440\u0435\u0432\u044c\u044f\u0445, \u0432 \u044d\u0442\u043e\u0439 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b. \u0420\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u0447\u0442\u043e \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27432,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36632","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0420\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b. \u0427\u0430\u0441\u0442\u044c 3 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:12:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Globaalid \u2014 andmete salvestamise kuldvihik. Hajusad massiivid. Osa 3 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0420\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b. \u0427\u0430\u0441\u0442\u044c 3 | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-razrezhennye-massivy-chast-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:12:47+00:00","article:modified_time":"2019-10-31T19:12:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36632","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:12:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:41:52","updated":"2026-01-22 04:12:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=36632"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36632\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27432"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}