Programmering

De bedste grafdatabaser

Grafdatabaser, som udtrykkeligt udtrykker forbindelserne mellem noder, er mere effektive til analyse af netværk (computer, menneskelig, geografisk eller på anden måde) end relationsdatabaser. Det giver grafdatabaser et ben op til applikationer som f.eks. Afsløring af svindel og anbefalingssystemer.

Et af de største træk ved grafdatabaser er evnen til at køre grafberegningsalgoritmer. Disse bruges til opgaver, der ikke egner sig godt til relationsdatabaser, såsom grafsøgning, stedsøgning, centralitet, PageRank og detektion af samfund. Grafalgoritmer understøttes for det meste i analytiske (OLAP og HTAP) grafdatabaser, selvom nogle transaktionelle (OLTP) grafdatabaser såsom Neo4j understøtter dem.

Alle de grafdatabaser, der diskuteres her, har god vandret skalerbarhed. Nogle understøtter også læse replikaer, global distribution og automatisk vandret sharding.

Amazon Neptun

Amazon Neptune er en fuldt administreret (OLTP) grafdatabasetjeneste med ACID-egenskaber og øjeblikkelig konsistens, som i sin kerne har en specialbygget, højtydende grafdatabasemotor, der er optimeret til lagring af milliarder af forhold og forespørgsel om grafen med millisekunder reaktionstid. Neptune understøtter to af de mest populære open source-grafforespørgselssprog, Apache TinkerPop Gremlin og W3C SPARQL.

Neptune-databaseklynger kan have op til 64 TB automatisk skaleringslagring i seks replikaer af dine data på tværs af tre tilgængelighedszoner og mere, hvis du aktiverer høj tilgængelighed ved at bruge læse-replikaer i yderligere zoner. Neptune registrerer automatisk databasekrascher og genstarter - typisk inden for 30 sekunder eller mindre - uden at skulle udføre crashgendannelse eller genopbygge databasecachen, da cachen er isoleret fra databaseprocesserne og kan overleve en genstart. Hvis en hel primær forekomst mislykkes, fejler Neptune automatisk til en af ​​op til 15 læste replikaer. Sikkerhedskopier streames løbende til Amazon S3.

Du kan skalere Neptune-klynger op og ned enten ved at ændre forekomster eller for at undgå nedetid ved at tilføje en forekomst af den ønskede størrelse og lukke den gamle forekomst, når en kopi af dataene er migreret, og du har forfremmet den nye forekomst til primær. Neptune VM-instansstørrelser spænder fra db.r4.large (to vCPU'er og 16 GiB RAM) til db.r4.8xlarge (32 vCPU'er og 244 GiB RAM), hvilket giver Neptune et 16x dynamisk interval for skrivning og et 256x dynamisk interval for læser (tæller de læste replikaer).

Læs min anmeldelse af Amazon Neptune.

AnzoGraph

AnzoGraph er en massiv parallel OLAP-grafdatabase i hukommelsen, der fungerer med virksomhedens datakilder og udfører parallelle datalæsninger af RDF- og CSV-formater. AnzoGraph kan indsættes i sandkasser med en node eller i klynger med så mange noder, som det er nødvendigt til produktion. AnzoGraph har ACID-transaktionsegenskaber.

AnzoGraph bruger W3C-standard RDF triple og quad data og SPARQL 1.1 forespørgsler. Det understøtter mærkede egenskabsgrafer som en del af RDF-butikken, der overholder de foreslåede RDF * og SPARQL * standarder, og det har udvidelser til SPARQL til at understøtte grafalgoritmer, inferensering, vinduesaggregater, BI-funktioner og navngivne visninger. Understøttelse af det Neo4j-kompatible OpenCypher-sprog og Neo4j-protokollen Bolt er planlagt.

AnzoGraph har højtydende udførelse af grafforespørgsler og skalerbarhed til milliarder og endda billioner af tredobler samt hurtige parallelle datalæsninger, der ikke kræver, at databasen offline. AnzoGraph-klynger kan implementeres på CentOS, Kubernetes og AWS. Google Cloud Platform og Azure-implementeringer af AnzoGraph behandles normalt som Kubernetes-implementeringer. AnzoGraph har vist skalerbarhed til 40 noder i et syntetisk benchmark.

Læs min anmeldelse af AnzoGraph.

Neo4j

Neo4j er en skalerbar OLTP-grafdatabase med nogle OLAP-funktioner. Neo4j var den oprindelige grafdatabase, der blev oprettet første gang i 1999 og fortsætter med at være markedsleder.

Mens open source Neo4j Community Edition er begrænset til en enkelt server, giver Neo4j Enterprise Edition dig mulighed for at tilføje så mange noder til en klynge, som du har brug for til ydeevneformål.

Hver knude i en Neo4j høj tilgængelighed klyngen indeholder databasen og en klyngestyringskomponent, og klyngen kan tilgås via en belastningsafbalancering. Den fulde graf replikeres til hver forekomst af klyngen, og læsekapaciteten for hver HA-klynge øges lineært med antallet af serverforekomster. Neo4j kan begå titusinder af skrivninger pr. Sekund, mens de opretholder fuldt ACID-transaktioner.

I en Neo4j årsagssammenhæng klynge, en kerneklynge af læse-skrive servere kombineres med en eller flere asynkront opdaterede klynger af læse replikaer. Enhver applikation er garanteret årsagssammenhæng, hvilket betyder, at den garanteres at læse i det mindste sin egen skrivning, selv når hardware og netværk fejler. De læste replikaer i en kausal klynge kan være geografisk distribueret for at forbedre forespørgselens ydeevne for brugere i nærheden af ​​replikaerne.

Læs min anmeldelse af Neo4j.

TigerGraph

TigerGraph er en realtids, parallel parallel, HTAP-grafdatabase, der er tilgængelig til implementering i skyen eller lokalt. TigerGraph understøtter ACID-egenskaber, har indbygget datakomprimering, partitionerer automatisk en graf i en klynge og hævder at være hurtigere end konkurrencen. Det bruger en meddelelsesoverførende arkitektur, der iboende er parallel på en måde, der skaleres med datastørrelsen.

TigerGraph blev designet til at være i stand til at udføre dybe linkanalyser samt realtids online transaktionsbehandling og dataindlæsning med stort volumen. Ved "dyblinkanalyse" betyder TigerGraph at følge forhold fra et toppunkt gennem grafen i tre eller flere humle og analysere resultaterne.

Mens adskillige open source-grafforespørgselssprog er blevet bredt vedtaget, såsom Cypher, Gremlin og SPARQL, har TigerGraph et nyt forespørgselssprog, GSQL. GSQL kombinerer SQL-lignende forespørgselsyntaks med Cypher-lignende grafnavigation, plus procedureprogrammering og brugerdefinerede funktioner. TigerGraph kan konvertere Cypher til GSQL til folk, der flytter fra en Neo4j-database.

TigerGraph har et administreret cloud-tilbud, der i øjeblikket er i begrænset forhåndsvisning. TigerGraph har demonstreret en 6,7x speedup, når man kører en læs-skriv-klynge med otte maskiner, men har ikke sagt noget om læse-replikaer eller geografisk distribution.

Læs min anmeldelse af TigerGraph.