{"id":91635,"date":"2020-08-15T19:42:23","date_gmt":"2020-08-15T17:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/na-puti-k-besservernym-bazam-dannyh-kak-i-zachem"},"modified":"2020-08-15T19:42:23","modified_gmt":"2020-08-15T17:42:23","slug":"na-puti-k-besservernym-bazam-dannyh-kak-i-zachem","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/na-puti-k-besservernym-bazam-dannyh-kak-i-zachem","title":{"rendered":"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! Emri im \u00ebsht\u00eb Golov Nikolai. M\u00eb par\u00eb kam punuar n\u00eb Avito dhe p\u00ebr gjasht\u00eb vjet kam udh\u00ebhequr Data Platform, q\u00eb do t\u00eb thot\u00eb se kam pasur t\u00eb b\u00ebj me t\u00eb gjitha bazat e t\u00eb dh\u00ebnave: analitike (Vertica, ClickHouse), t\u00eb rrjedh\u00ebs dhe OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). Gjat\u00eb k\u00ebsaj kohe kam m\u00ebsuar shum\u00eb p\u00ebr bazat e t\u00eb dh\u00ebnave \u2014 t\u00eb ndryshme dhe t\u00eb pazakonta, si dhe p\u00ebr rastet e pazakonta t\u00eb p\u00ebrdorimit t\u00eb tyre.<\/p>\n<p>Tani punoj n\u00eb ManyChat. N\u00eb thelb, ky \u00ebsht\u00eb nj\u00eb start-up \u2014 i ri, ambicioz dhe me ritme t\u00eb shpejta rritjeje. Dhe kur sapo hyra n\u00eb kompanin\u00eb, u shfaq nj\u00eb pyetje klasike: \"\u00c7far\u00eb duhet t\u00eb marr nj\u00eb start-up t\u00eb ri nga tregu i SGBD-ve dhe bazave t\u00eb t\u00eb dh\u00ebnave?\". <\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull, t\u00eb bazuar n\u00eb paraqitjen time n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/ritfest.ru\/2020\/\">festivalin online RIT++2020<\/a><\/noindex>, do t\u00eb p\u00ebrgjigjem n\u00eb k\u00ebt\u00eb pyetje. Versioni video i paraqitjes \u00ebsht\u00eb i disponuesh\u00ebm n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/H23f_z13ro4\">YouTube<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/6a5df9b75ad435ebe88adf920ab9ea8b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Baza t\u00eb njohura t\u00eb dh\u00ebnash t\u00eb vitit 2020<\/h2>\n<p>\nJemi n\u00eb vitin 2020, shikova p\u00ebrreth dhe pash\u00eb tre lloje bazash t\u00eb dh\u00ebnash. <\/p>\n<p>Lloji i par\u00eb \u2014 <b>bazat klasike OLTP<\/b>: PostgreSQL, SQL Server, Oracle, MySQL. Ato jan\u00eb shkruar shum\u00eb koh\u00eb m\u00eb par\u00eb, por ende jan\u00eb relevante sepse jan\u00eb t\u00eb njohura mir\u00eb p\u00ebr komunitetin e zhvilluesve.<\/p>\n<p>Lloji i dyt\u00eb \u2014 <b>bazat nga vitet e \"zero\"<\/b>. Ata po p\u00ebrpiqeshin t\u00eb largohej nga modelet klasike duke hequr dor\u00eb nga SQL, strukturat tradicionale dhe ACID, p\u00ebrmes shtimit t\u00eb sharding t\u00eb integruar dhe karakteristikave t\u00eb tjera t\u00ebrheq\u00ebse. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, jan\u00eb Cassandra, MongoDB, Redis ose Tarantool. T\u00eb gjitha k\u00ebto zgjidhje k\u00ebrkonin t\u00eb ofronin di\u00e7ka thelb\u00ebsore t\u00eb re n\u00eb treg dhe zinin vendin e tyre, pasi u treguan jasht\u00ebzakonisht t\u00eb p\u00ebrshtatshme p\u00ebr disa detyra. K\u00ebto baza do t'i quaja me termin e gjer\u00eb NOSQL.<\/p>\n<p>Isha n\u00eb p\u00ebrfundim t\u00eb dekad\u00ebs s\u00eb par\u00eb, dhe me bazat NOSQL ishim m\u00ebsuar; dhe bota, sipas mendimit tim, b\u00ebri hapin tjet\u00ebr \u2014 n\u00eb drejtimin e <b>bazave t\u00eb menaxhuara<\/b>. K\u00ebto baza kan\u00eb nj\u00eb kernel t\u00eb nj\u00ebjt\u00eb si bazat klasike OLTP ose NoSQL t\u00eb reja. Por ato nuk kan\u00eb nevoj\u00eb p\u00ebr DBA dhe DevOps dhe operojn\u00eb n\u00eb harduer t\u00eb menaxhuar n\u00eb cloud. P\u00ebr zhvilluesin, kjo \u00ebsht\u00eb 'thjesht nj\u00eb baz\u00eb', e cila funksionon diku, dhe m\u00ebnyra se si \u00ebsht\u00eb instaluar n\u00eb server, kush e konfiguroi serverin dhe kush e p\u00ebrdit\u00ebson, nuk i intereson askujt.<\/p>\n<p>Shembuj t\u00eb till\u00eb bazash:<\/p>\n<ul>\n<li>AWS RDS \u2014 mb\u00ebshtetje e menaxhuar mbi PostgreSQL\/MySQL.<\/li>\n<li>DynamoDB \u2014 nj\u00eb alternativ\u00eb AWS e bazave t\u00eb tipit document, ngjan me Redis dhe MongoDB.<\/li>\n<li>Amazon Redshift \u2014 nj\u00eb baz\u00eb analitike e menaxhuar.<\/li>\n<\/ul>\n<p>\nN\u00eb thelb, k\u00ebto jan\u00eb baza t\u00eb vjetra, por t\u00eb ngritura n\u00eb nj\u00eb mjedis t\u00eb menaxhuar, pa nevoj\u00ebn p\u00ebr t\u00eb punuar me harduer. <\/p>\n<p><i>V\u00ebrejtje. Shembujt jan\u00eb marr\u00eb p\u00ebr mjedisin AWS, por ekzistojn\u00eb edhe analoge n\u00eb Microsoft Azure, Google Cloud, ose Yandex.Cloud.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/06e50904f795b3b5dc62ca45622b2dd7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c7far\u00eb ka t\u00eb re? N\u00eb vitin 2020 nuk ka asgj\u00eb t\u00eb re.<\/p>\n<h2>Koncepti Serverless<\/h2>\n<p>\nAjo q\u00eb \u00ebsht\u00eb v\u00ebrtet e re n\u00eb treg n\u00eb vitin 2020 jan\u00eb zgjidhjet serverless ose pa server.<\/p>\n<p>Do t\u00eb p\u00ebrpiqem t\u00eb shpjegoj \u00e7far\u00eb do t\u00eb thot\u00eb kjo me nj\u00eb shembull t\u00eb nj\u00eb sh\u00ebrbimi t\u00eb zakonsh\u00ebm ose aplikacioni backend.<br \/>\nP\u00ebr t\u00eb vendosur nj\u00eb aplikacion t\u00eb zakonsh\u00ebm backend, blejm\u00eb ose marrim me qira nj\u00eb server, kopjojm\u00eb kodin p\u00ebrsip\u00ebr, publikojm\u00eb endpoint-in p\u00ebr t\u00eb jashtmen dhe paguajm\u00eb rregullisht p\u00ebr qiran\u00eb, energjin\u00eb elektrike dhe sh\u00ebrbimet e qendr\u00ebs s\u00eb t\u00eb dh\u00ebnave. Kjo \u00ebsht\u00eb skema standarde.<\/p>\n<p>A ka ndonj\u00eb m\u00ebnyr\u00eb tjet\u00ebr? Me sh\u00ebrbimet serverless ka.<\/p>\n<p>Cila \u00ebsht\u00eb thelbi i k\u00ebtij qasjes: nuk ka server, as madje nj\u00eb qira t\u00eb instance virtuale n\u00eb cloud. P\u00ebr t\u00eb vendosur nj\u00eb sh\u00ebrbim, kopjojm\u00eb kodin (funksionet) n\u00eb depo dhe publikojm\u00eb endpoint-in p\u00ebr t\u00eb jashtmen. Pastaj thjesht paguajm\u00eb p\u00ebr \u00e7do thirrje t\u00eb k\u00ebsaj funksioni, duke e injoruar krejt\u00ebsisht harduerin ku kjo ekzekutohet.<\/p>\n<p>Do t\u00eb p\u00ebrpiqem t\u00eb ilustroj k\u00ebt\u00eb qasje me figura.<br \/>\n<img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/705cf89c51b8166da772b1d877262b44.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Deploy klasik<\/b>. Ne kemi nj\u00eb sh\u00ebrbim me nj\u00eb ngarkes\u00eb t\u00eb caktuar. Q\u00eb t\u00eb dy instancat: server\u00ebt fizik\u00eb ose instancat n\u00eb AWS. K\u00ebto instanca marrin k\u00ebrkesa t\u00eb jashtme, t\u00eb cilat p\u00ebrpunohen atje. <\/p>\n<p>Si\u00e7 shihet n\u00eb figur\u00eb, server\u00ebt jan\u00eb p\u00ebrdorur n\u00eb m\u00ebnyr\u00eb t\u00eb ndryshme. Nj\u00ebra \u00ebsht\u00eb p\u00ebrdorur 100%, ka dy k\u00ebrkesa, nd\u00ebrsa tjetra vet\u00ebm 50% \u2014 pjes\u00ebrisht pushim. N\u00ebse vijn\u00eb jo tri k\u00ebrkesa, por 30, at\u00ebher\u00eb e gjith\u00eb sistemi nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb p\u00ebrballoj\u00eb ngarkes\u00ebn dhe do t\u00eb filloj\u00eb t\u00eb ngadal\u00ebsohet.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/005b1f91ced2f2b29363cf975ed085e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Konsolidimi pa server<\/b>. N\u00eb nj\u00eb ambient pa server, nj\u00eb sh\u00ebrbim i till\u00eb nuk ka instanca dhe server\u00eb. Ka nj\u00eb pusht t\u00eb caktuar burimesh t\u00eb p\u00ebrgatitura \u2014 en\u00eb t\u00eb vogla Docker t\u00eb p\u00ebrgatitura me kodin e funksionit t\u00eb shp\u00ebrndar\u00eb. Sistemi merr k\u00ebrkesat e jashtme dhe p\u00ebr secil\u00ebn prej tyre, korniza pa server ngre nj\u00eb en\u00eb t\u00eb vog\u00ebl me kodin: p\u00ebrpunon sakt\u00ebsisht k\u00ebt\u00eb k\u00ebrkes\u00eb dhe vret en\u00ebn.<\/p>\n<p>Nj\u00eb k\u00ebrkes\u00eb \u2014 nj\u00eb kontejner i ngritur, 1000 k\u00ebrkesa \u2014 1000 kontejner\u00eb. Dhe p\u00ebrdorimi i server\u00ebve fizik\u00eb \u2014 kjo \u00ebsht\u00eb pun\u00eb e ofruesve t\u00eb cloud. Ajo \u00ebsht\u00eb plot\u00ebsisht e fshehur nga skema pa server. N\u00eb k\u00ebt\u00eb koncept, ne paguajm\u00eb p\u00ebr \u00e7do thirrje. P\u00ebr shembull, erdhi nj\u00eb thirrje n\u00eb dit\u00eb \u2014 paguajm\u00eb p\u00ebr nj\u00eb thirrje, erdhi nj\u00eb milion n\u00eb minut\u00eb \u2014 paguajm\u00eb p\u00ebr nj\u00eb milion. Ose n\u00eb sekond\u00eb, kjo ndodh gjithashtu.<\/p>\n<p>Koncepti i publikimit t\u00eb funksionit pa server \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr nj\u00eb sh\u00ebrbim stateless. Por n\u00ebse ju nevojitet nj\u00eb sh\u00ebrbim statefull, at\u00ebher\u00eb i shtojm\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash sh\u00ebrbimit. N\u00eb k\u00ebt\u00eb rast, kur arrijm\u00eb n\u00eb pun\u00ebn me state, secila funksion statefull thjesht shkruan dhe lexon nga baza e t\u00eb dh\u00ebnave. Dhe kjo nga nj\u00eb baz\u00eb t\u00eb dh\u00ebnash t\u00eb cil\u00ebn mund ta p\u00ebrfshijm\u00eb nga ndonj\u00eb nga tre llojet e p\u00ebrshkruara n\u00eb fillim t\u00eb artikullit.<\/p>\n<p>Cili \u00ebsht\u00eb kufizimi i p\u00ebrgjithsh\u00ebm i t\u00eb gjitha k\u00ebtyre bazave? K\u00ebto jan\u00eb shpenzimet p\u00ebr serverin cloud ose harduerin e p\u00ebrdorur vazhdimisht (ose disa servera). Nuk ka r\u00ebnd\u00ebsi n\u00ebse p\u00ebrdorim nj\u00eb baz\u00eb klasike apo t\u00eb menaxhuar, n\u00ebse kemi DevOps dhe administrator\u00eb apo jo, prap\u00eb paguajm\u00eb 24\/7 p\u00ebr harduerin, energjin\u00eb elektrike dhe qiran\u00eb e qendr\u00ebs s\u00eb t\u00eb dh\u00ebnave. N\u00ebse kemi nj\u00eb baz\u00eb klasike, paguajm\u00eb p\u00ebr master dhe slave. N\u00ebse kemi nj\u00eb baz\u00eb t\u00eb sharduar me ngarkes\u00eb t\u00eb lart\u00eb - paguajm\u00eb p\u00ebr 10, 20 ose 30 servera dhe paguajm\u00eb vazhdimisht.<\/p>\n<p>Prania e server\u00ebve t\u00eb rezervuar vazhdimisht n\u00eb struktur\u00ebn e shpenzimeve m\u00eb par\u00eb perceptohej si nj\u00eb e keqe e pashmangshme. Bazat normale kan\u00eb edhe v\u00ebshtir\u00ebsi t\u00eb tjera, si kufizimet n\u00eb numrin e lidhjeve, kufizimi i shkall\u00ebzimit, konsensusi gjeo-distribues - ato mund t\u00eb zgjidhen n\u00eb disa bazat t\u00eb caktuara, por jo t\u00eb gjitha nj\u00ebher\u00ebsh dhe jo n\u00eb m\u00ebnyr\u00eb perfekte.<\/p>\n<h2>Baza e t\u00eb dh\u00ebnave pa server - teoria<\/h2>\n<p>\nPyetja e vitit 2020: a mund t\u00eb b\u00ebhet nj\u00eb baz\u00eb t\u00eb dh\u00ebnash gjithashtu pa server? T\u00eb gjith\u00eb e kan\u00eb d\u00ebgjuar p\u00ebr backend-in pa server... po le t\u00eb provojm\u00eb ta b\u00ebjm\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash pa server?<\/p>\n<p>Kjo tinguj si t\u00eb \u00e7uditshme, sepse baza e t\u00eb dh\u00ebnave \u00ebsht\u00eb nj\u00eb sh\u00ebrbim statefull, i pap\u00ebrshtatsh\u00ebm p\u00ebr infrastruktur\u00ebn serverless. Nd\u00ebrkoh\u00eb, edhe stoku n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave \u00ebsht\u00eb shum\u00eb i madh: gigabajt\u00eb, terabajt\u00eb, dhe n\u00eb bazat analitike madje petabajt\u00eb. Nuk \u00ebsht\u00eb aq e leht\u00eb ta ngrish at\u00eb n\u00eb kontejner\u00eb t\u00eb leht\u00eb Docker.<\/p>\n<p>Nga ana tjet\u00ebr, praktikisht t\u00eb gjitha bazat moderne p\u00ebrmbajn\u00eb nj\u00eb num\u00ebr t\u00eb madh logjikash dhe komponent\u00ebsh: transaksione, ruajtje integriteti, procedura, var\u00ebsi relacionale dhe shum\u00eb logjik\u00eb. Nj\u00eb pjese t\u00eb madhe t\u00eb logjik\u00ebs s\u00eb baz\u00ebs i nevojitet nj\u00eb state i vog\u00ebl. Gigabajt\u00eb dhe terabajt\u00eb p\u00ebrdoren direkt vet\u00ebm nga nj\u00eb pjes\u00eb e vog\u00ebl e logjik\u00ebs s\u00eb baz\u00ebs, e lidhur me ekzekutimin e menj\u00ebhersh\u00ebm t\u00eb pyetjeve.<\/p>\n<p>Prandaj, ideja \u00ebsht\u00eb: n\u00ebse nj\u00eb pjes\u00eb e logjik\u00ebs lejon nj\u00eb ekzekutim stateless, pse t\u00eb mos ndajm\u00eb baz\u00ebn n\u00eb pjes\u00eb Stateful dhe Stateless.<\/p>\n<h2>Serverless p\u00ebr zgjidhje OLAP<\/h2>\n<p>\nLe t\u00eb shohim se si mund t\u00eb duket ndarja e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave n\u00eb pjes\u00eb Stateful dhe Stateless me shembuj praktik.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/51793a5649e68dafc9e7ce395da9e065.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>P\u00ebr shembull, kemi nj\u00eb baz\u00eb t\u00eb dh\u00ebnash analitike<\/b>: t\u00eb dh\u00ebnat e jashtme (cilindri i kuq majtas), procesi ETL q\u00eb ngarkon t\u00eb dh\u00ebnat n\u00eb baz\u00eb, dhe analisti q\u00eb d\u00ebrgon pyetje SQL n\u00eb baz\u00eb. Kjo \u00ebsht\u00eb skema klasike e pun\u00ebs s\u00eb nj\u00eb depo t\u00eb dh\u00ebnash. <\/p>\n<p>N\u00eb k\u00ebt\u00eb skem\u00eb, nj\u00eb her\u00eb kryhet ETL. Pastaj, duhet t\u00eb paguani vazhdimisht p\u00ebr server\u00ebt ku ruhet baza me t\u00eb dh\u00ebnat e ngarkuara nga ETL, p\u00ebr t\u00eb pasur di\u00e7ka p\u00ebr t\u00eb d\u00ebrguar pyetje. <\/p>\n<p>Le t\u00eb shqyrtojm\u00eb nj\u00eb qasje alternative, t\u00eb zbatuar n\u00eb baz\u00ebn AWS Athena Serverless. K\u00ebtu nuk ka hardware t\u00eb dedikuar p\u00ebr t\u00eb ruajtur t\u00eb dh\u00ebnat e ngarkuara. N\u00eb vend t\u00eb k\u00ebsaj:<\/p>\n<ul>\n<li>P\u00ebrdoruesi d\u00ebrgon nj\u00eb pyetje SQL n\u00eb Athena. Optimizuesi i Athena analizon pyetjen SQL dhe k\u00ebrkon n\u00eb depozit\u00ebn e metadata (Metadata) t\u00eb dh\u00ebnat e caktuara t\u00eb nevojshme p\u00ebr t\u00eb kryer pyetjen.<\/li>\n<li>Optimizuesi, mbi baz\u00ebn e t\u00eb dh\u00ebnave t\u00eb mbledhura, ngarkon t\u00eb dh\u00ebnat e nevojshme nga burimet e jashtme n\u00eb nj\u00eb depo t\u00eb p\u00ebrkohshme (nj\u00eb databaz\u00eb t\u00eb p\u00ebrkohshme).<\/li>\n<li>N\u00eb depozit\u00ebn e p\u00ebrkohshme kryhet pyetja SQL nga p\u00ebrdoruesi, rezultati i kthehet p\u00ebrdoruesit. <\/li>\n<li>Depozita e p\u00ebrkohshme pastrohet, burimet lirohen.<\/li>\n<\/ul>\n<p>N\u00eb k\u00ebt\u00eb arkitektur\u00eb, ne paguajm\u00eb vet\u00ebm p\u00ebr procesin e ekzekutimit t\u00eb pyetjes. Nuk ka pyetje \u2013 nuk ka shpenzime.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/0e21282b66e3120524c2324811cb04a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKy \u00ebsht\u00eb nj\u00eb qasje funksionale, e cila zbatohet jo vet\u00ebm n\u00eb Athena Serverless, por edhe n\u00eb Redshift Spectrum (n\u00eb AWS).<\/p>\n<p>N\u00eb shembullin e Athena, duket se databaza Serverless funksionon me k\u00ebrkesa reale me dhjet\u00ebra dhe qindra terabajt t\u00eb dh\u00ebnash. P\u00ebr qindra terabajt do t\u00eb nevojiten qindra server\u00eb, por ne nuk duhet t\u00eb paguajm\u00eb p\u00ebr ta \u2014 paguajm\u00eb vet\u00ebm p\u00ebr k\u00ebrkesat. Shpejt\u00ebsia e \u00e7do k\u00ebrkese \u00ebsht\u00eb (shum\u00eb) e ul\u00ebt n\u00eb krahasim me databazat analitike t\u00eb specializuara si Vertica, por nuk paguajm\u00eb p\u00ebr periudhat e papun\u00ebsis\u00eb.<\/p>\n<p>Kjo databaz\u00eb \u00ebsht\u00eb e aplikueshme p\u00ebr k\u00ebrkesat analitike ad-hoc t\u00eb rralla. P\u00ebr shembull, kur ne vendosim t\u00eb kontrollojm\u00eb nj\u00eb hipotez\u00eb mbi nj\u00eb sasi t\u00eb madhe t\u00eb dh\u00ebnash. P\u00ebr k\u00ebto raste, Athena \u00ebsht\u00eb ideale. P\u00ebr k\u00ebrkesat e rregullta, nj\u00eb sistem i till\u00eb b\u00ebhet i kushtuesh\u00ebm. N\u00eb k\u00ebt\u00eb rast, ruani t\u00eb dh\u00ebnat n\u00eb ndonj\u00eb zgjidhje t\u00eb specializuar. <\/p>\n<h2>Serverless p\u00ebr zgjidhjet OLTP<\/h2>\n<p>\nN\u00eb shembullin e m\u00ebparsh\u00ebm, u shqyrtuan detyra OLAP (analitike). Tani le t\u00eb shqyrtojm\u00eb detyra OLTP.<\/p>\n<p>Le t\u00eb p\u00ebrshkruajm\u00eb nj\u00eb PostgreSQL ose MySQL n\u00eb shkall\u00eb. Le t\u00eb ngrem\u00eb nj\u00eb instanc\u00eb t\u00eb menaxhuar PostgreSQL ose MySQL me burime minimale. Kur instanca t\u00eb ket\u00eb nj\u00eb ngarkes\u00eb m\u00eb t\u00eb madhe, do t\u00eb lidhim replikat shtes\u00eb, ku do t\u00eb shp\u00ebrndajm\u00eb nj\u00eb pjes\u00eb t\u00eb ngarkes\u00ebs lexuese. N\u00ebse nuk ka k\u00ebrkesa dhe ngarkes\u00eb \u2014 do t\u00eb \u00e7aktivizojm\u00eb replikat. Instanca e par\u00eb \u00ebsht\u00eb master, nd\u00ebrsa t\u00eb tjerat jan\u00eb replika.<\/p>\n<p>Kjo ide \u00ebsht\u00eb e realizuar n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave t\u00eb quajtur Aurora Serverless AWS. Parimi \u00ebsht\u00eb i thjesht\u00eb: k\u00ebrkesat nga aplikacionet e jashtme pranohen nga flota e proxy. Duke par\u00eb rritjen e ngarkes\u00ebs, ai ndan burime llogarit\u00ebse nga instancat minimale t\u00eb p\u00ebrgatitura paraprakisht \u2014 lidhja realizohet sa m\u00eb shpejt t\u00eb jet\u00eb e mundur. \u00c7aktivizimi i instancave ndodh gjithashtu n\u00eb at\u00eb m\u00ebnyr\u00eb.<\/p>\n<p>Brenda Aurora ka konceptin e Nj\u00ebsis\u00eb s\u00eb Kapacitetit Aurora, ACU. Kjo \u00ebsht\u00eb (n\u00eb nj\u00eb kuptim) \u2014 nj\u00eb instanc\u00eb (server). \u00c7do ACU konkret mund t\u00eb jet\u00eb master ose slave. \u00c7do Nj\u00ebsi Kapaciteti ka memorien e tij operuese, procesorin dhe diskun minimal. P\u00ebr rrjedhoj\u00eb, nj\u00eb master, t\u00eb tjerat jan\u00eb replika vet\u00ebm p\u00ebr lexim.<\/p>\n<p>Numri i k\u00ebtyre Nj\u00ebsive t\u00eb Kapacitetit Aurora n\u00eb pun\u00eb \u00ebsht\u00eb nj\u00eb parametr i konfiguruar. Numri minimal mund t\u00eb jet\u00eb nj\u00eb ose zero (n\u00eb k\u00ebt\u00eb rast, baza nuk punon n\u00ebse nuk ka k\u00ebrkesa).<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/ab034e66fbd8874f062a656afa7044c5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKur baza merr k\u00ebrkesa, flota proxy aktivizon Nj\u00ebsit\u00eb e Kapacitetit Aurora, duke rritur burimet e sistemit. Mund\u00ebsia p\u00ebr t\u00eb rritur dhe zvog\u00ebluar burimet lejon sistemin t\u00eb \"gjongloj\u00eb\" burimet: t\u00eb d\u00ebrgoj\u00eb automatikisht Nj\u00ebsit\u00eb e ve\u00e7anta ACU (duke i z\u00ebvend\u00ebsuar ato me t\u00eb reja) dhe t\u00eb aplikoj\u00eb t\u00eb gjitha p\u00ebrdit\u00ebsimet e aktualizuara n\u00eb burimet e d\u00ebrguara.<\/p>\n<p>Baza Aurora Serverless mund t\u00eb skaloj\u00eb ngarkes\u00ebn lexuese. Por n\u00eb dokumentacion kjo nuk thuhet qart\u00eb. Mund t\u00eb krijohet iluzioni se ata mund t\u00eb aktivizojn\u00eb multi-master. Nuk ka asnj\u00eb magji n\u00eb k\u00ebt\u00eb. <\/p>\n<p>Kjo baz\u00eb \u00ebsht\u00eb mjaft e p\u00ebrshtatshme p\u00ebr t\u00eb mos shpenzuar shum\u00eb para p\u00ebr sisteme me akses t\u00eb paparashikuar. P\u00ebr shembull, kur krijojm\u00eb MVP ose faqe marketingu, zakonisht nuk presim ngarkes\u00eb t\u00eb q\u00ebndrueshme. Prandaj, n\u00eb munges\u00eb akses, ne nuk paguajm\u00eb p\u00ebr instancat. Kur papritur ndodh ngarkesa, p\u00ebr shembull, pas nj\u00eb konference ose fushate reklamimi, turma e njer\u00ebzve hyn n\u00eb faqen dhe ngarkesa rritet ndjesh\u00ebm, Aurora Serverless automatikisht e pranon k\u00ebt\u00eb ngarkes\u00eb dhe lidhet shpejt me burimet e nevojshme (ACU). M\u00eb pas, konferenca kalon, t\u00eb gjith\u00eb e harrojn\u00eb prototipin, server\u00ebt (ACU) fik\u00ebn, dhe shpenzimet bien n\u00eb zero \u2014 shum\u00eb e p\u00ebrshtatshme.<\/p>\n<p>Ky zgjidhje nuk \u00ebsht\u00eb e p\u00ebrshtatshme p\u00ebr ngarkesa t\u00eb larta dhe t\u00eb q\u00ebndrueshme, sepse nuk din t\u00eb shkall\u00ebzoj\u00eb ngarkes\u00ebn e shkrimit. T\u00eb gjitha k\u00ebto lidhje dhe \u00e7 lidhje burimesh ndodhin n\u00eb momentin e ashtuquajtur 'scale point' \u2014 momenti kur databaza nuk mbahet nga nj\u00eb transaksion, nuk mbahen tabela t\u00eb p\u00ebrkohshme. P\u00ebr shembull, gjat\u00eb nj\u00eb jave scale point mund t\u00eb mos ndodhi, dhe databaza punon me t\u00eb nj\u00ebjtat burime dhe thjesht nuk mund t\u00eb vazhdoj\u00eb as t\u00eb zgjeroh\u00ebt, as t\u00eb t\u00ebrheq\u00eb. <\/p>\n<p>Nuk ka magji \u2014 ky \u00ebsht\u00eb nj\u00eb PostgreSQL i zakonsh\u00ebm. Por procesi i shtimit t\u00eb makinave dhe \u00e7aktivizimi \u00ebsht\u00eb pjes\u00ebrisht i automatizuar.<\/p>\n<h2>Serverless me dizajn<\/h2>\n<p>\nAurora Serverless \u00ebsht\u00eb nj\u00eb baz\u00eb e vjet\u00ebr, e ripar\u00eb p\u00ebr re, p\u00ebr t\u00eb p\u00ebrdorur avantazhet e ve\u00e7anta Serverless. Tani do t\u00eb flas p\u00ebr baz\u00ebn q\u00eb nga fillimi \u00ebsht\u00eb shkruar p\u00ebr re, p\u00ebr qasjen serverless \u2014 Serverless-by-design. Ajo \u00ebsht\u00eb zhvilluar menj\u00ebher\u00eb pa supozimin se do t\u00eb funksionoj\u00eb n\u00eb server\u00eb fizik\u00eb.<\/p>\n<p>Kjo baz\u00eb quhet Snowflake. Ajo ka tre blloqe kryesore.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/15f9f07ed0281686e509ca6ced387db3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nE para \u2014 \u00ebsht\u00eb blloku i metadatave. Kjo \u00ebsht\u00eb nj\u00eb sh\u00ebrbim i shpejt\u00eb in-memory, q\u00eb zgjidh \u00e7\u00ebshtjet me sigurin\u00eb, metadat\u00ebn, transaksionet, optimizimin e pyetjeve (n\u00eb ilustrimin n\u00eb t\u00eb majt\u00eb).<\/p>\n<p>Blloku i dyt\u00eb \u2014 \u00ebsht\u00eb nj\u00eb shum\u00ebllojshm\u00ebri klasteresh virtuale p\u00ebr llogaritje (n\u00eb ilustrim \u2014 nj\u00eb grup rrethesh blu).<\/p>\n<p>Blloku i tret\u00eb \u2014 \u00ebsht\u00eb sistemi i ruajtjes s\u00eb t\u00eb dh\u00ebnave mbi baz\u00ebn S3. S3 \u00ebsht\u00eb nj\u00eb magazin\u00eb objektesh pa kufi n\u00eb AWS, di\u00e7ka si nj\u00eb Dropbox pa kufij p\u00ebr biznesin.<\/p>\n<p>Le t\u00eb shohim se si funksionon Snowflake, duke supozuar nj\u00eb fillim t\u00eb ftoht\u00eb. Pra, baza ekziston, t\u00eb dh\u00ebnat jan\u00eb ngarkuar n\u00eb t\u00eb, nuk ka k\u00ebrkesash aktive. K\u00ebshtu q\u00eb, n\u00ebse nuk ka k\u00ebrkesa p\u00ebr baz\u00ebn, ne kemi ngritur nj\u00eb sh\u00ebrbim t\u00eb shpejt\u00eb Metadata n\u00eb memorie (blloku i par\u00eb). Dhe kemi nj\u00eb depo S3, ku ndodhen t\u00eb dh\u00ebnat e tabelave, t\u00eb ndara n\u00eb ato q\u00eb quhen mikroparti. P\u00ebr thjesht\u00ebsi: n\u00ebse tabela p\u00ebrmban transaksione, mikroparti jan\u00eb dit\u00ebt e transaksioneve. \u00c7do dit\u00eb \u00ebsht\u00eb nj\u00eb mikroparti e ve\u00e7ant\u00eb, nj\u00eb skedar i ve\u00e7ant\u00eb. Dhe kur baza punon n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, ju paguani vet\u00ebm p\u00ebr hap\u00ebsir\u00ebn q\u00eb z\u00ebn\u00eb t\u00eb dh\u00ebnat. P\u00ebr m\u00eb tep\u00ebr, tarifa p\u00ebr hap\u00ebsir\u00ebn \u00ebsht\u00eb shum\u00eb e ul\u00ebt (sidomos duke marr\u00eb parasysh kompresimin e konsideruesh\u00ebm). Sh\u00ebrbimi i metadatas gjithashtu funksionon vazhdimisht, por p\u00ebr optimizimin e k\u00ebrkesave nuk nevojiten shum\u00eb burime, dhe sh\u00ebrbimi mund t\u00eb konsiderohet zhvillimsa-burim t\u00eb kushtit t\u00eb lir\u00eb. <\/p>\n<p>Tani imagjinoni q\u00eb nj\u00eb p\u00ebrdorues ka ardhur n\u00eb baz\u00ebn ton\u00eb dhe ka hedhur nj\u00eb k\u00ebrkes\u00eb SQL. K\u00ebrkesa SQL menj\u00ebher\u00eb d\u00ebrgohet p\u00ebr p\u00ebrpunim n\u00eb sh\u00ebrbimin Metadata. K\u00ebshtu, pasi merr k\u00ebrkes\u00ebn, ky sh\u00ebrbim analizon k\u00ebrkes\u00ebn, t\u00eb dh\u00ebnat e disponueshme, dhe autorizimet e p\u00ebrdoruesit dhe, n\u00ebse gjith\u00e7ka shkon mir\u00eb, p\u00ebrgatit nj\u00eb plan p\u00ebr p\u00ebrpunimin e k\u00ebrkes\u00ebs.<\/p>\n<p>M\u00eb pas, sh\u00ebrbimi fillon aktivizimin e klasterit t\u00eb llogaritjeve. Klasteri i llogaritjeve \u00ebsht\u00eb nj\u00eb klaster serverash q\u00eb kryejn\u00eb llogaritje. Kjo do t\u00eb thot\u00eb se mund t\u00eb p\u00ebrmbaj\u00eb 1 server, 2 servera, 4, 8, 16, 32 \u2014 sa t\u00eb doni. Ju d\u00ebrgoni nj\u00eb k\u00ebrkes\u00eb dhe menj\u00ebher\u00eb fillohet aktivizimi i k\u00ebtij klasteri. Realisht, kjo zgjat disa sekonda.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00eb rrug\u00ebn drejt bazave t\u00eb t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse\" src=\"\/wp-content\/uploads\/2020\/08\/51b11aee0b0868681c4978f5becd1f1d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPas k\u00ebsaj, pasi klasteri ka nisur, mikro-particionet q\u00eb nevojiten p\u00ebr t\u00eb p\u00ebrpunuar k\u00ebrkes\u00ebn tuaj fillojn\u00eb t\u00eb kopjohen nga S3 n\u00eb klaster. Dometh\u00ebn\u00eb, le t\u00eb supozojm\u00eb se p\u00ebr t\u00eb ekzekutuar nj\u00eb SQL k\u00ebrkes\u00eb, nevojiten dy parti\u00e7ione nga nj\u00eb tabel\u00eb dhe nj\u00eb nga tjetra. N\u00eb k\u00ebt\u00eb rast, vet\u00ebm tre parti\u00e7ione t\u00eb nevojshme do t\u00eb kopjohen n\u00eb klaster, dhe jo t\u00eb gjitha tabelat n\u00eb t\u00ebr\u00ebsi. Pik\u00ebrisht p\u00ebr k\u00ebt\u00eb arsye, dhe p\u00ebr shkak se gjith\u00e7ka ndodhet brenda nj\u00eb qendre t\u00eb dh\u00ebnash dhe \u00ebsht\u00eb e lidhur me kanale shum\u00eb t\u00eb shpejta, gjith\u00eb procesi i transferimit ndodhet shum\u00eb shpejt: p\u00ebr sekonda, rrall\u00eb her\u00eb \u2014 p\u00ebr minuta, n\u00ebse b\u00ebhet fjal\u00eb p\u00ebr k\u00ebrkesa t\u00eb jasht\u00ebzakonshme. P\u00ebrputhsh\u00ebm, mikro-particionet kopjohen n\u00eb klasterin e llogaritjes, dhe, pas p\u00ebrfundimit, k\u00ebrkesa SQL ekzekutohet n\u00eb k\u00ebt\u00eb klaster. Rezultati i k\u00ebsaj k\u00ebrkese mund t\u00eb jet\u00eb nj\u00eb rresht, disa rreshta ose nj\u00eb tabel\u00eb \u2014 ato d\u00ebrgohen jasht\u00eb p\u00ebrdoruesit, n\u00eb m\u00ebnyr\u00eb q\u00eb ai ta eksportoj\u00eb, ta shfaq\u00eb n\u00eb mjetin e tij BI, ose ta p\u00ebrdor\u00eb ndryshe.<\/p>\n<p>\u00c7do k\u00ebrkes\u00eb SQL mund t\u00eb jo vet\u00ebm t\u00eb lidh\u00eb agregat\u00ebt nga t\u00eb dh\u00ebnat e ngarkuara m\u00eb par\u00eb, por gjithashtu t\u00eb ngarkoj\u00eb\/formoj\u00eb t\u00eb dh\u00ebna t\u00eb reja n\u00eb baz\u00eb. Kjo do t\u00eb thot\u00eb se kjo mund t\u00eb jet\u00eb nj\u00eb k\u00ebrkes\u00eb q\u00eb, p\u00ebr shembull, kryen inserimin e sh\u00ebnimeve t\u00eb reja n\u00eb nj\u00eb tabel\u00eb tjet\u00ebr, e cila \u00e7on n\u00eb krijimin e nj\u00eb ndarje t\u00eb re n\u00eb klas\u00ebn kompjuterike, q\u00eb, nga ana e saj, ruhet automatikisht n\u00eb depozitat e vetme S3.<\/p>\n<p>Skenari i p\u00ebrshkruar m\u00eb sip\u00ebr, nga ardhja e p\u00ebrdoruesit deri te ngritja e klasht\u00ebr\u00ebve, ngarkimi i t\u00eb dh\u00ebnave, ekzekutimi i k\u00ebrkesave, marrja e rezultateve, k\u00ebt\u00eb e paguani sipas tarif\u00ebs p\u00ebr minutat e p\u00ebrdorimit t\u00eb klasht\u00ebr\u00ebs virtuale t\u00eb llogaritur, warehouse virtual. Tarifa variolon n\u00eb var\u00ebsi t\u00eb zon\u00ebs AWS dhe madh\u00ebsis\u00eb s\u00eb klasht\u00ebr\u00ebs, por, n\u00eb mesatare, \u00ebsht\u00eb disa dollar\u00eb n\u00eb or\u00eb. Nj\u00eb klasht\u00ebr me kat\u00ebr makina \u00ebsht\u00eb dyfish m\u00eb e shtrenjt\u00eb se nj\u00eb me dy makina, nd\u00ebrsa nj\u00eb me tet\u00eb makina \u00ebsht\u00eb dyfish m\u00eb e shtrenjt\u00eb se ajo me kat\u00ebr. Disponohen opsione nga 16, 32 makina, n\u00eb var\u00ebsi t\u00eb kompleksitetit t\u00eb k\u00ebrkesave. Por paguani vet\u00ebm p\u00ebr ato minuta kur klasht\u00ebria \u00ebsht\u00eb n\u00eb pun\u00eb, sepse kur s'ka k\u00ebrkesa, ju si\u00e7 b\u00ebni heqjen dor\u00eb, dhe pas 5-10 minutash pritjeje (paramet\u00ebr i p\u00ebrshtatsh\u00ebm) ai automatikisht do t\u00eb ndalet, do t\u00eb liroj\u00eb burimet dhe do t\u00eb b\u00ebhet falas.<\/p>\n<p>\u00cbsht\u00eb krejt\u00ebsisht e mundur skenari, ku ju d\u00ebrgoni nj\u00eb k\u00ebrkes\u00eb, klasht\u00ebria shfaqet, po t\u00eb themi, p\u00ebr nj\u00eb minut\u00eb, nj\u00eb minut\u00eb tjet\u00ebr ajo llogarit, m\u00eb pas pes\u00eb minuta p\u00ebr fikje, dhe n\u00eb fund paguani vet\u00ebm p\u00ebr shtat\u00eb minuta t\u00eb pun\u00ebs s\u00eb k\u00ebsaj klashtre, e jo p\u00ebr muaj e vite.<\/p>\n<p>Skenari i par\u00eb p\u00ebrshkroi p\u00ebrdorimin e Snowflake n\u00eb nj\u00eb variant p\u00ebr nj\u00eb p\u00ebrdorues. Tani le t\u00eb imagjinojm\u00eb se ka shum\u00eb p\u00ebrdorues, q\u00eb \u00ebsht\u00eb m\u00eb af\u00ebr nj\u00eb skenari real.<\/p>\n<p>Le t\u00eb supozojm\u00eb se kemi shum\u00eb analist\u00eb dhe raporte Tableau, t\u00eb cil\u00ebt vazhdimisht bombardojn\u00eb baz\u00ebn ton\u00eb me nj\u00eb sasi t\u00eb madhe k\u00ebrkesh analitike SQL t\u00eb thjeshta.<\/p>\n<p>P\u00ebrve\u00e7 k\u00ebsaj, le t\u00eb supozojm\u00eb se kemi Data Scientists t\u00eb zellsh\u00ebm, q\u00eb p\u00ebrpiqen t\u00eb b\u00ebjn\u00eb gj\u00ebra monstruoze me t\u00eb dh\u00ebnat, t\u00eb operojn\u00eb me dhjet\u00ebra Terabajt, analizohet miliarda dhe triliona rreshta t\u00eb dh\u00ebnash. <\/p>\n<p>P\u00ebr llojet e ngarkesave t\u00eb p\u00ebrshkruara m\u00eb sip\u00ebr, Snowflake lejon ngritjen e disa klaster\u00ebve t\u00eb llogaritjes t\u00eb pavarur me fuqi t\u00eb ndryshme. Dhe k\u00ebta klaster\u00eb llogarit\u00ebs punojn\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb pavarur, por me t\u00eb dh\u00ebna t\u00eb p\u00ebrbashk\u00ebta t\u00eb harmonizuara.<\/p>\n<p>P\u00ebr nj\u00eb num\u00ebr t\u00eb madh k\u00ebrkesash t\u00eb lehta, mund t\u00eb krijoni 2-3 klastera t\u00eb vegj\u00ebl, secili me p\u00ebrmasat, p\u00ebr ngarkesa t\u00eb p\u00ebraf\u00ebrta, nga 2 makina. Ky funksionim \u00ebsht\u00eb i realizuesh\u00ebm, p\u00ebrfshir\u00eb edhe p\u00ebrmes konfigurimeve automatik. K\u00ebshtu, thoni: \"Snowflake, ngrit nj\u00eb klaster t\u00eb vog\u00ebl. N\u00ebse ngarkesa mbi t\u00eb kalon nj\u00eb paramet\u00ebr t\u00eb caktuar, ngrit nj\u00eb t\u00eb dyt\u00eb, t\u00eb tret\u00eb. Kur ngarkesa fillon t\u00eb bie, ndalo t\u00eb tep\u00ebrta.\" K\u00ebshtu, pavar\u00ebsisht n\u00ebse sa analist\u00eb vijn\u00eb dhe fillojn\u00eb t\u00eb shqyrtojn\u00eb raportet, t\u00eb gjith\u00eb kan\u00eb mjaft burime.<\/p>\n<p>N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, n\u00ebse analist\u00ebt flen\u00eb dhe askush nuk po sheh raportet, klasterat mund t\u00eb fik\u00ebn plot\u00ebsisht, dhe k\u00ebshtu ndaloni pages\u00ebn p\u00ebr to.<\/p>\n<p>P\u00ebr k\u00ebrkesa t\u00eb r\u00ebnda (nga Data Scientists), mund t\u00eb krijoni nj\u00eb klaster shum\u00eb t\u00eb madh me p\u00ebrmasat e p\u00ebraf\u00ebrta 32 makina. Ky klaster gjithashtu do t\u00eb paguhet vet\u00ebm p\u00ebr ato minuta dhe or\u00eb kur aty funksionon k\u00ebrkesa juaj gjigande.<\/p>\n<p>Mund\u00ebsia e p\u00ebrshkruar m\u00eb sip\u00ebr lejon ndarjen midis klasterave jo vet\u00ebm p\u00ebr 2, por edhe p\u00ebr m\u00eb shum\u00eb lloje ngarkesash (ETL, monitorim, materializimi i raporteve,\u2026).<\/p>\n<p>Le t\u00eb b\u00ebjm\u00eb nj\u00eb p\u00ebrmbledhje t\u00eb Snowflake. Baza kombinon nj\u00eb ide t\u00eb bukur me nj\u00eb realizim funksional. N\u00eb ManyChat ne p\u00ebrdorim Snowflake p\u00ebr analizimin e t\u00eb gjitha t\u00eb dh\u00ebnave t\u00eb disponueshme. Ne kemi nga 5 deri n\u00eb 9 klaster\u00eb t\u00eb ndrysh\u00ebm n\u00eb vend t\u00eb tre, si\u00e7 \u00ebsht\u00eb n\u00eb shembull. Kemi klaster\u00eb me 16 makina, me 2 makina, dhe madje edhe super-t\u00eb vogla me 1 makin\u00eb p\u00ebr disa detyra. Ata shp\u00ebrndajn\u00eb ngarkes\u00ebn me sukses dhe na lejojn\u00eb t\u00eb kursejm\u00eb shum\u00eb.<\/p>\n<p>Baza e Snowflake e shkall\u00ebzon me sukses ngarkes\u00ebn lexuese dhe shkruese. Ky \u00ebsht\u00eb nj\u00eb ndryshim i madh dhe nj\u00eb p\u00ebrparim i madh n\u00eb krahasim me \"Auror\u00ebn\", e cila p\u00ebrballonte vet\u00ebm ngarkes\u00ebn lexuese. Snowflake lejon t\u00eb shkall\u00ebzohet edhe ngarkesa shkruese me k\u00ebto klaster\u00eb llogarit\u00ebs. Pra, si\u00e7 e p\u00ebrmenda, ne n\u00eb ManyChat p\u00ebrdorim disa klaster\u00eb; klaster\u00ebt e vegj\u00ebl dhe super-t\u00eb vegj\u00ebl p\u00ebrdoren kryesisht p\u00ebr ETL, p\u00ebr ngarkimin e t\u00eb dh\u00ebnave. Nd\u00ebrsa analist\u00ebt punojn\u00eb n\u00eb klaster\u00ebt mesatar\u00eb, t\u00eb cil\u00ebt nuk preken nga ngarkesa ETL, prandaj punojn\u00eb shum\u00eb shpejt. <\/p>\n<p>K\u00ebshtu, baza \u00ebsht\u00eb e p\u00ebrshtatur mir\u00eb p\u00ebr detyrat OLAP. Megjithat\u00eb, p\u00ebr ngarkesat OLTP, ajo ende nuk \u00ebsht\u00eb e aplikueshme. S\u00eb pari, kjo baz\u00eb \u00ebsht\u00eb kolonale, me t\u00eb gjitha pasojat q\u00eb vijn\u00eb nga kjo. S\u00eb dyti, vet\u00eb qasja, kur p\u00ebr \u00e7do k\u00ebrkes\u00eb ngat\u00ebrroni nj\u00eb kluster llogarit\u00ebs dhe e mbushni at\u00eb me t\u00eb dh\u00ebna, fatkeq\u00ebsisht, p\u00ebr ngarkesat OLTP nuk \u00ebsht\u00eb ende mjaft e shpejt\u00eb. Disa sekonda pritjeje p\u00ebr detyrat OLAP jan\u00eb t\u00eb pranuara, ndryshe p\u00ebr detyrat OLTP \u2014 \u00ebsht\u00eb e papranueshme, do t\u00eb ishte m\u00eb mir\u00eb 100 ms, dhe akoma m\u00eb mir\u00eb \u2014 10 ms.<\/p>\n<h2>P\u00ebrfundimi<\/h2>\n<p>\nBaza e t\u00eb dh\u00ebnave pa server \u00ebsht\u00eb e mundur p\u00ebrmes ndarjes s\u00eb baz\u00ebs n\u00eb pjes\u00eb Stateless dhe Stateful. Ju, sigurisht, keni v\u00ebn\u00eb re se n\u00eb t\u00eb gjitha shembujt e paraqitur, pjesa Stateful \u00ebsht\u00eb, n\u00eb nj\u00ebfar\u00eb m\u00ebnyre, ruajtja e mikro-particioneve n\u00eb S3, nd\u00ebrsa Stateful \u00ebsht\u00eb optimizuesi, punimi me metadatat, p\u00ebrpunimi i \u00e7\u00ebshtjeve t\u00eb siguris\u00eb, t\u00eb cilat mund t\u00eb ngrihen si sh\u00ebrbime t\u00eb lehta Stateless t\u00eb pavarura.<\/p>\n<p>Kryerja e k\u00ebrkesave SQL gjithashtu mund t\u00eb perceptohet si sh\u00ebrbime me nj\u00eb gjendje t\u00eb leht\u00eb, t\u00eb cilat mund t\u00eb ngrihen n\u00eb modalitetin pa server, si klasteret llogaritus Snowflake, p\u00ebr t\u00eb shkarkuar vet\u00ebm t\u00eb dh\u00ebnat q\u00eb nevojiten, p\u00ebr t\u00eb kryer k\u00ebrkes\u00ebn dhe \"t\u00eb shuajn\u00eb\".<\/p>\n<p>Baza serverless t\u00eb nivelit t\u00eb prodhimit jan\u00eb tani t\u00eb disponueshme p\u00ebr p\u00ebrdorim dhe funksionojn\u00eb. K\u00ebto baza serverless jan\u00eb tashm\u00eb t\u00eb gatshme p\u00ebr t'u p\u00ebrballur me detyra OLAP. Megjithat\u00eb, p\u00ebr detyrat OLTP ato p\u00ebrdoren\u2026 me disa nuanca, pasi ka kufizime. Nga nj\u00ebra an\u00eb, kjo \u00ebsht\u00eb nj\u00eb mang\u00ebsi. Por, nga ana tjet\u00ebr, kjo \u00ebsht\u00eb nj\u00eb mund\u00ebsi. Ndoshta ndonj\u00eb nga lexuesit do t\u00eb gjej\u00eb nj\u00eb m\u00ebnyr\u00eb p\u00ebr ta b\u00ebr\u00eb baz\u00ebn OLTP plot\u00ebsisht serverless, pa kufizime Aurora.<\/p>\n<p>Shpresoj se ka qen\u00eb interesante p\u00ebr ju. P\u00ebr nj\u00eb t\u00eb ardhme serverless \ud83d\ude42<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/514298\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0413\u043e\u043b\u043e\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\u0439. \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u0410\u0432\u0438\u0442\u043e \u0438 \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u043b Data Platform, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438: \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 (Vertica, ClickHouse), \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u043c\u0438 \u0438 OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u0438 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u043a\u0435\u0439\u0441\u0430\u043c\u0438 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91636,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91635","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0413\u043e\u043b\u043e\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\u0439. \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u0410\u0432\u0438\u0442\u043e \u0438 \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u043b Data Platform, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438: \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 (Vertica, ClickHouse), \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u043c\u0438 \u0438 OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u0438 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u043a\u0435\u0439\u0441\u0430\u043c\u0438 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441\" \/>\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\/sq\/blog\/administrirovanie\/na-puti-k-besservernym-bazam-dannyh-kak-i-zachem\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\u041d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u0431\u0430\u0437\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0413\u043e\u043b\u043e\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\u0439. \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u0410\u0432\u0438\u0442\u043e \u0438 \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u043b Data Platform, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438: \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 (Vertica, ClickHouse), \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u043c\u0438 \u0438 OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u0438 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u043a\u0435\u0439\u0441\u0430\u043c\u0438 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/na-puti-k-besservernym-bazam-dannyh-kak-i-zachem\" \/>\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=\"2020-08-15T17:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-15T17:42:23+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\udd47 N\u00eb rrug\u00ebn drejt bazave t\u00eb dh\u00ebnave pa server \u2014 si dhe p\u00ebrse | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! Emri im \u00ebsht\u00eb Nikolai Golov. M\u00eb par\u00eb kam punuar n\u00eb Avito dhe kam udh\u00ebhequr Data Platform p\u00ebr gjasht\u00eb vjet, q\u00eb do t\u00eb thot\u00eb se kam b\u00ebr\u00eb t\u00eb gjith\u00eb bazat: analitike (Vertica, ClickHouse), t\u00eb rrjedhshme dhe OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). Gjat\u00eb k\u00ebsaj kohe, kam kuptuar nj\u00eb sasi t\u00eb madhe bazash t\u00eb dh\u00ebnash \u2014 t\u00eb llojeve t\u00eb ndryshme dhe t\u00eb \u00e7uditshme, dhe me raste t\u00eb pazakonta t\u00eb p\u00ebrdorimit t\u00eb tyre. Tani","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/na-puti-k-besservernym-bazam-dannyh-kak-i-zachem","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\u041d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u0431\u0430\u0437\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0413\u043e\u043b\u043e\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\u0439. \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u0410\u0432\u0438\u0442\u043e \u0438 \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u043b Data Platform, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438: \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 (Vertica, ClickHouse), \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u044b\u043c\u0438 \u0438 OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0445, \u0438 \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u043a\u0435\u0439\u0441\u0430\u043c\u0438 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/na-puti-k-besservernym-bazam-dannyh-kak-i-zachem","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":"2020-08-15T17:42:23+00:00","article:modified_time":"2020-08-15T17:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91635","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:23:25","updated":"2022-09-27 17:18:10"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91635","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=91635"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/91635\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/91636"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=91635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=91635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=91635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}