Programmēšana

Amazon Neptune pārskats: Mērogojama grafu datu bāze OLTP

Grafiku datu bāzes, piemēram, Neo4j, Apache Spark GraphX, DataStax Enterprise Graph, IBM Graph, JanusGraph, TigerGraph, AnzoGraph, Azure Cosmos DB grafiku daļa un šī pārskata priekšmets Amazon Neptune, ir piemēroti vairāku veidu lietojumiem, kas saistīti ar ļoti saistītas datu kopas, piemēram, ieteikumu sniegšana, pamatojoties uz sociālajiem grafikiem, krāpšanas atklāšana, produktu reāllaika ieteikumu sniegšana un tīkla un IT darbību ielaušanās atklāšana. Šīs ir jomas, kurās tradicionālās relāciju datu bāzes mēdz kļūt neefektīvas un lēnas, jo ir nepieciešami sarežģīti SQL savienojumi, kas darbojas lielās datu kopās.

Neptūns ir pilnībā pārvaldīts grafu datu bāzes pakalpojums ar ACID īpašībām un tūlītēju konsekvenci, kura pamatā ir mērķa izveidots, augstas veiktspējas grafu datu bāzes dzinējs, kas ir optimizēts miljardu attiecību glabāšanai un grafika vaicāšanai ar milisekunžu latentumu. Neptūns atbalsta divas populārākās atvērtā pirmkoda grafu vaicājumu valodas - Apache TinkerPop Gremlin un W3C SPARQL. Neo4j izmantotā populārā Cypher Query Language (CQL) sākās ar patentētu, bet vēlāk kļuva par atvērtu pirmkoda.

Gremlin un SPARQL adresē dažāda veida grafu datu bāzi. Gremlin, tāpat kā CQL, paredzēts īpašuma diagrammu datu bāzēm; SPARQL ir paredzēts resursu apraksta ietvara (RDF) trīskāršošanai, kas paredzēts tīmeklim. Gremlin ir grafiku šķērsošanas valoda; SPARQL ir vaicājuma valoda ar klauzulām SELECT un WHERE.

Amazon Neptune ieviešana ļauj gan Gremlin, gan SPARQL valodas vienā datu bāzes instancē, taču viņi nevar redzēt viens otra datus. Iemesls atļaut abiem ir ļaut jaunajiem lietotājiem saprast, kurš darbojas viņu vajadzībām labāk.

Neptūna dokumentācijā ir paraugi, izmantojot Gremlin-Groovy, Gremlin-Java un Gremlin-Python variantus. Neptūns ļauj Gremlin lietot konsolē, HTTP REST zvanus, Java, Python, .Net un Node.js programmās. SPARQL pusē Neptune atbalsta Eclipse RDF4J konsoli un darbagaldu, HTTP REST zvanus un Java programmas.

Amazon Neptune funkcijas un priekšrocības

Kā pilnībā pārvaldīta darījumu grafu datu bāze kā pakalpojums, Amazon Neptune piedāvā ne tikai nepieciešamību uzturēt datu bāzes aparatūru un programmatūru, bet arī vienkāršu mērogošanu, pieejamību vairāk nekā 99,99% un vairākus drošības līmeņus. Neptūna datu bāzes kopām var būt līdz pat 64 TB automātiskās mērogošanas krātuve sešās jūsu datu kopijās trīs pieejamības zonās un vairāk, ja iespējojat augstu pieejamību, izmantojot lasīšanas kopijas papildu zonās.

Neptūna datu glabāšanas slāni atbalsta SSD, tie ir izturīgi pret kļūdām un paši dziedina. Diska kļūmes tiek novērstas fonā, nezaudējot datu bāzes pieejamību. Neptūns automātiski atklāj datu bāzes avārijas un tiek restartēts - parasti 30 sekunžu laikā vai mazāk - bez avārijas atkopšanas vai datu bāzes kešatmiņas atjaunošanas, jo kešatmiņa ir izolēta no datu bāzes procesiem un var izdzīvot restartējot. Ja neizdodas visa primārā instance, Neptūns automātiski neizdosies vienā no līdz 15 lasītām kopijām. Dublējumi tiek nepārtraukti straumēti uz S3.

Jūs varat mērogot Amazon Neptune kopas uz augšu un uz leju, modificējot gadījumus, vai (lai izvairītos no dīkstāves), pievienojot vajadzīgā lieluma instanci un izslēdzot veco instanci, tiklīdz datu kopija ir migrējusi un jūs esat paaugstinājis jauno instanci uz primārs. Neptūna VM instances izmēri svārstās no db.r4.large (divi vCPU un 16 GiB RAM) līdz db.r4.16xlarge (64 vCPU un 488 GiB RAM).

Amazon Neptune īsteno drošību, darbinot motoru VPC (virtuālā privātā mākoņa) tīklā un pēc izvēles šifrējot datus miera stāvoklī, izmantojot AWS atslēgu pārvaldības pakalpojumu. Papildus pamatā esošās krātuves šifrēšanai Neptune šifrē arī dublējumkopijas, momentuzņēmumus un kopijas. Neptūns ir piemērots izmantošanai HIPAA lietojumprogrammās. Neptūns to dara pieprasiet izveidot īpašus indeksus, lai sasniegtu labu vaicājumu veiktspēju, kas ir apsveicama izmaiņa salīdzinājumā ar vaicājumu un rakstīšanas veiktspēju, rūpīgi pielāgojot indeksus.

Amazon Neptūns to dara atbalsta analītiskos vaicājumu algoritmus, piemēram, PageRank, kas tiek parādīti dažās citās diagrammu datu bāzēs, piemēram, Neo4j, TigerGraph un AnzoGraph. Neptūns ir paredzēts kā zema latentuma darījumu (OLTP) diagrammu datu bāze milzīgām datu kopām, nevis analītiska (OLAP) datu bāze, un tā vienkārši nav optimizēta analītiskas lietošanas gadījumiem vai vaicājumiem, kuros iesaistīti vairāk nekā trīs apiņi, un PageRank pieskaras katram vienumam. datu bāzē.

Amazon Neptune atbalsta agregātus, tāpēc tas var a maz analīze, bet ne daudz. Tāpat kā Neptūns, arī Neo4j sākotnēji bija paredzēts izmantot OLTP, taču 2017. gadā pievienoja analītisko vaicājumu bibliotēku. Fakts, ka Neptūnā ir ierobežotas analīzes iespējas, ne vienmēr ir iemesls to izslēgt, jo zema latentuma OLTP diagrammu datu bāze ar visā pasaulē izplatītām nolasītām kopijām un spēju apstrādāt 64 TB datu nav ko šķaudīt.

Sāciet darbu ar Amazon Neptune

Jūs varat palaist Amazon Neptune kopu divos veidos: tieši no Amazon Neptune konsoles vai izmantojot AWS CloudFormation veidni, lai izveidotu Neptune kaudzīti. Ņemiet vērā, ka sniegtā CloudFormation veidne nav piemērota ražošanai, jo tā nav ļoti droša - tā ir paredzēta kā pamats apmācībai.

Varat sākt ar mazu darbību un pievienot ietilpību - lielākas VM vai vairāk lasītas kopijas - ikreiz, kad tas nepieciešams jūsu lietojumprogrammai. Krātuve palielinās automātiski, un jūs maksājat tikai par izmantoto krātuvi.

Turpmākajos ekrānuzņēmumos es parādīju dažus no Neptūna konsoles izveidotā Neptūna attēla dzīves ciklu. Es sāku ar kopas izveidi.

Vai vēlaties, lai savam klasterim būtu augsta pieejamība? Tas nemaz nav grūti.

Papildu iestatījumos ir vairāki paneļi. Par laimi, lielākajai daļai noklusējumu vajadzētu kalpot jūsu vajadzībām.

Visbeidzot, pirms nospiežat pogu, lai palaistu datu bāzi, jūs redzēsiet brīdinājumu. Ja jums patiešām ir jāredz paskaidrojums, ar peles labo pogu noklikšķiniet uz saites un parādiet to citā cilnē. (Es ceru, ka šī kļūda tiks novērsta.)

Kad jums ir darba kopa, jūs varat veikt vairākas darbības instancēs.

Klastera līmenī varat izveidot kopsavilkumu.

Instances līmenī jūs varat redzēt veiktspējas diagrammas.

Notiek datu ielāde Amazon Neptune

Lai ielādētu datus Amazon Neptune, vispirms faili tiek ielādēti Amazon S3 vienā no pareizajiem formātiem: CSV Gremlin un trīskārši, četrriteņi, RDF / XML vai Turtle for RDF. Iekrāvējs atbalsta atsevišķu failu saspiešanu gzip formātā.

Jums būs jāizveido IAM loma un S3 VPC galapunkts, lai piešķirtu Neptune atļauju piekļūt jūsu S3 spainim, ja vien tie jau nav izveidoti, piemēram, izmantojot CloudFormation veidni. Ir Neptune loader API, kuru var izsaukt, izmantojot REST galapunktu (piemēram, no čokurošanās komandas), kas var uzņemties IAM lomu un lielapjoma ielādēt datus jūsu kopā. GitHub ir arī pārveidotājs GraphML uz CSV. Datu ielādes ceļvedis paredzēts jebkuram atbalstītam datu formātam.

Vaicājiet Amazon Neptūnu ar Gremlin

Varat izmantot Gremlin konsoli un REST galapunktu, lai izveidotu savienojumu un vaicātu savām Amazon Neptune instancēm Gremlin no EC2 VM tajā pašā VPC kā datu bāze. Lietderīgāk lietojumprogrammām varat veikt vaicājumus Neptune, izmantojot Java, Python, .Net un Node.js Gremlin.

Par Gremli ir vesela grāmata, Praktiskais Gremlin: Apache TinkerPop apmācība, autors Kelvins Lorenss. Grāmatā savai datu bāzei tiek izmantots TinkerGraph, taču tā pati Gremlin sintakse darbojas Neptūnam ar nelieliem izņēmumiem, kurus dokumentē Amazon.

Gremlin vaicājumi apraksta, kā orientēties grafu virsotnēs un malās. Grāmatā apskatītā gaisa maršrutu datubāzes piemērs atrod visus veidus, kā lidot no Ostinas, Teksasas štatā (lidostas kods AUS) uz Agru, Indijā (lidostas kods AGR), veicot divas pieturas:

g.V (). has (‘kods’, ’AUS’). atkārtot (out ()). reizes (3). ir (‘kods’, ’AGR’). ceļš (). by (‘kods’)

Ja vēlaties izmēģināt Amazon Neptune grāmatas piemērus, vispirms būs jāpārkopē CSV faili malas un mezgli S3 spainī, izmantojot AWS CLI cp komandu, un no turienes jāielādē dati Neptūnā.

Vaicājiet Amazon Neptune ar SPARQL

Varat izmantot RDF4J konsoli, RDF4J darbagaldu un REST galapunktu, lai izveidotu savienojumu un vaicātu Amazon Neptune gadījumiem SPARQL no EC2 VM tajā pašā VPC kā datu bāze. Lietderīgāk lietojumprogrammām varat veikt vaicājumus Neptune, izmantojot Java SPARQL. SPARQL 1.1 vaicājumu valodas specifikācija nosaka, kā veidot vaicājumus. Ja tīmeklī meklējat “sparql apmācība”, jūs atradīsit vairākas bezmaksas rakstiskas un video pamācības par šo tēmu. Pēc datu ielādes tiem visiem vajadzētu darboties ar Neptūnu.

SPARQL izskatās mazāk kā funkcionāls kods nekā Gremlin, un vairāk kā SQL. Piemēram:

ATLASIET? Grāmatu?

KUR {? Book dc: creator? Who}

Amazon Neptūna veiktspēja un mērogošana

Amazon Neptune tika izstrādāts, lai iegūtu vaicājumus ar zemu latentumu līdz trim apiņiem milzīgās (līdz 64 TB) datu bāzēs. Tas atbalsta līdz 15 zema latentuma lasīšanas kopijām trīs pieejamības zonās, lai mērogotu lasīšanas jaudu un, pēc Amazon domām, var izpildīt vairāk nekā 100 000 grafiku vaicājumu sekundē.

Tā instanču izmēri ir no diviem līdz 64 vCPU ar 15 GiB līdz 488 GiB operatīvās atmiņas, aptuveni divkāršojot abus katrā solī. Neptūns maksimāli var izmantot 64 vCPU reizes 16 reizes kopā 1024 vCPU un 488 GiB RAM reizes 16 gadījumus kopā 7808 GiB RAM. Tas ir kopējais iespējamais mērogošanas pieaugums par 512x, ņemot vērā gan eksemplāru lielumu, gan izlasīto kopiju skaitu. Izmaksas diezgan precīzi izseko resursu mērogošanu.

Ja meklējat darījumu grafiku datu bāzi kā pakalpojumu, Amazon Neptune ir reāla izvēle. Ņemot vērā, ka Neptune atbalsta gan Gremlin, gan SPARQL vaicājumu valodas, jums vajadzētu būt iespējai atrast izstrādātājus, lai izveidotu pret to lietojumprogrammas. No otras puses, Neptūna Cypher atbalsta trūkums var atturēt esošos Neo4j lietotājus, un OLAP un grafu algoritmu atbalsta trūkums atturēs cilvēkus, kuri vēlas vienotu grafu datu bāzi darījumiem un analīzei.

Amazon Neptune plašajam jaudas diapazonam (līdz pat 16x lielumam un 16 gadījumiem), augstajam maksimālajam darījumu līmenim (100 000 vaicājumu sekundē) un maksas pēc cenas ir jāatbilst lielākajai daļai uzņēmējdarbības prasību. Tomēr tā, ka trūkst lokālu iespēju, var liegt to izmantot uzņēmumos, kuriem ir politika pret to, lai viņu sensitīvie dati netiktu ievietoti mākonī, un uzņēmumiem, kuri dod priekšroku kapitāla izmaksu radīšanai un norakstīšanai, nevis kārtējiem darbības izdevumiem.

Izmaksas: USD 0,348 līdz 5,568 USD par instances stundu, atkarībā no instances lieluma, 0,10 USD par GB mēnesī krātuvei, 0,20 USD par miljonu I / O pieprasījumu, 0,023 USD par GB mēnesī rezerves krātuvei, 0,12 USD par GB par izejošo datu pārsūtīšanu; tiek piemēroti dažādi cenu pārtraukumi.

Platforma: Amazon tīmekļa pakalpojumi; atbalsta Apache TinkerPop Gremlin vai SPARQL vaicājumus; piekļūt caur AWS konsoli, HTTP REST un Java, kā arī RDF4J Workbench (SPARQL) un Python, .Net un Node.js (Gremlin).

$config[zx-auto] not found$config[zx-overlay] not found