Sparkier, sneller, meer: Graph databases, en Neo4j, bewegen op

0
176

Nul

Er is een hoop gebeurd in de grafiek is het land in de afgelopen zes maanden. Beknopte samenvatting: een nieuwe speler (TigerGraph), Microsoft opvoeren van de grafiek te spelen met grafiek ondersteuning in SQL Server en CosmosDB, en de nummer twee grafiek database, OrientDB, aan de verworven.

De nummer één grafiek database, Neo4j, is het kick-off van de Grafiek Connect-gebeurtenis van vandaag en de aankondiging van een nieuwe versie 3.3. Deze versie biedt uitgebreide ondersteuning voor het opvragen van in de Spark, ETL, analytics, en verbeterde prestaties. We bespreken de ontwikkelingen en wat deze betekenen voor deze ruimte met Neo4j, CEO van Emil Eifrem.

Vonk, voldoen aan de grafiek opnieuw

Een van de knelpunten in de grafiek ruimte is op dit moment opvragen. Niet dat je niet kunt query grafieken, maar er kan eigenlijk te veel van een keuze. Het is bijna alsof elk platform heeft zijn eigen query language.

Aangezien er geen dergelijk ding zoals een SQL voor grafieken nog, dit laat een lege ruimte die uitnodigt concurrentie voor de één grafiek query taal die ideologie de overhand krijgt. Een aantal van de meest gebruikte talen/Api ‘ s gebruikt voor de grafiek opvragen zijn SPARQL, Gremlin, en Cypher.

Cypher is Neo4j de query taal, die Neo4j heeft opengesteld als openCypher. Cypher is het zien van adoptie dan Neo4j van oplossingen, zoals SAP en Redis. Vandaag Neo4j is de aankondiging van het toevoegen van ondersteuning voor het gebruik van Cypher op Vonk. Betekent dat dan ook dat kunt u nu gebruik maken van Vonk om alles te doen wat je kunt doen met een grafiek database?

cypher-on-apache-spark-data-lake-integrator-001.png

Als je een Vonk gebruiker en wilt proces grafieken, nu heb je een andere optie: Cypher. Afbeelding: Neo4j

Niet precies. Eerste van alles, Neo4j integratie met Vonk was er al. Neo4j staat is geweest om het importeren en exporteren van gegevens van en naar de Vonk voor een tijdje nu via een Vonk connector. Natuurlijk, dat helpt niet echt veel als uw gegevens wordt regelmatig bijgewerkt, zoals je zou moeten bijwerken vanuit Vonk op een regelmatige basis te kunnen query ‘ s zijn gebaseerd op de meest recente gegevens.

En dan, als je echt wilt gebruiken grafiek gegevens over Vonk, er is altijd GraphX en GraphFrames. Dezelfde GraphX dat niet heel veel tractie en dezelfde GraphFrames dat Cypher afgevaardigden aan onder de motorkap. Verbaasd? Niet worden, want het kon echt niet veel anders op dit punt.

Neo4j maakt er een punt van het gebruik van een native grafiek stapel, met inbegrip van de opslag laag. Spark ‘ s-opslag van laag aan de andere kant is alles behalve native grafiek — HDFS, HBase, Cassandra, geen van deze opties is de grafiek gebaseerd. Dus wat is het punt van het brengen van Cypher Vonk?

Cypher op Vonk is in de praktijk een wrapper rond GraphFrames, en werkt op dezelfde manier als hoe Spark SQL werkt: de gegevens zijn verwerkt in het geheugen, Cypher is gebruik gemaakt van een interface met de buitenwereld. Eifrem geeft toe dat dit oploopt een performance penalty, maar zegt dat dit een eerste benadering, die zal evolueren en betoogt dat Cypher biedt een handige manier om te werken met de grafiek-vormige gegevens over Vonk:

“De GraphFrames API lijkt een beetje op wat Neo4j API eruit zag in 2010. Hoewel ik niet kan bash die API te veel aangezien ik co-ontworpen, hebben we een bewogen op en een paar dingen geleerd over hoe de ontwikkelaars graag gebruik maken van graph Api ‘ s. Door het brengen van Cypher Vonk, wij helpen Vonk snel vooruit over tien jaar.”

Sneller, meer

We deden vermelden Cypher, de prestaties en het geheugen, en alle van deze komen samen in het verklaren van hoe Neo4j verbeterde zijn prestaties. Neo4j 3.3 beweert winsten van 55 procent ten opzichte van de vorige versie in schrijft en updates. Dit werd bereikt door te focussen op twee belangrijke gebieden.

De eerste verbetering was de invoering van een nieuwe, snellere, Cypher motor. Dus alles dat wordt door deze motor wordt sneller uitgevoerd, met een focus op schrijft en updates als het lijkt. Dit heeft geen invloed op dingen zoals niet-Cypher API-aanroepen of Neo4j server-side procedures, maar dat is waar de tweede verbetering komt te spelen.

De tweede verbetering is het gebruik van off-heap-geheugen management. Neo4j is JVM-based, wat betekent dat onder andere dat het beheer van het geheugen is ook gedaan door de JVM. Meestal de JVM beter doet dan de ontwikkelaars nog kon doen, maar niet als het gaat om database-specifieke, fijnkorrelig, en low-level memory management.

am4uhn8wrmmmtfvkzndloff-heap-memory.png

Het nemen van memory management uit de JVM kan resulteren in een verbetering van de prestatie-als je weet wat je aan het doen bent. Afbeelding: Apache Ontbranden

Zoals geïllustreerd door ScyllaDB, kan dit leiden tot aanzienlijke prestatieverbeteringen. Dus, was niet Neo4j de verleiding om dit toepassen op andere gebieden? Zeker. Eifrem zegt dat ze hebben geprobeerd dit te doen, maar de prestaties van de winsten die ze zag (in het bereik van 20 procent) zou niet gecompenseerd wordt de complexiteit veroorzaakt bij de programmering en organisatie niveau.

Onder andere nieuwe functies in Neo4j, de meest opvallende daarvan zijn ETL en analytics. Als het gaat om het ETL, wat Neo4j biedt momenteel zijn de methoden voor het vullen van graph databases van CSV-bestanden. Meestal zijn deze CSV-bestanden worden geëxporteerd uit een aantal relationele database schema en gebruikt als tussenstap om in te vullen Neo4j.

Wat is er nieuw is dat er nu is een instrument dat kan introspect relationele schema ‘ s en het automatiseren van de winning van csv-bestanden, gebaseerd op een aantal schema patronen kan identificeren en in kaart aan de grafiek. Eifrem zegt dat dit kan match-up tot 80 procent van de gevallen gebruik ze in de praktijk te zien, en het zal uiteindelijk groeien tot een volledig geautomatiseerde en twee-weg compatibel pijpleiding tussen Neo4j en relationele databases.

Google Analytics is een minder voor de hand liggende. Om te beginnen, wat betekent analytics zelfs betekenen voor Neo4j? Per Eifrem, Neo4j is een OLTP database. Maar vanwege de grafiek van de natuur, de mensen zijn ook te gebruiken voor grafiek analytics, wat betekent dat in principe alles met een hoog aantal joins in een relationele database. Aanbevelingen zou een typisch voorbeeld.

Wat is er nieuw is nu dat er een bibliotheek van grafiek op basis van algoritmen. Deze algoritmen zijn PageRank, clustering en het pad navigatie. De uitvoering van die op Neo4j mogelijk was, maar nu komen ze in een pre-packaged, geoptimaliseerd en klaar om te gebruiken vorm. Eifrem zegt dat ze sneller op Neo4j dan op de kaders zoals GraphX of Giraph, maar onderbouwen dat zou het invoeren benchmark grondgebied.

Leugens, verdomde leugens, statistieken en benchmarks

Eifrem is niet erg dol van benchmarks. Als iedereen die is rond voor een tijdje weet, benchmarks komen van leveranciers hebben de neiging om te laten zien leveranciers in kwestie beter te presteren dan de concurrentie. Dit is de reden waarom hij zegt Neo4j nooit produceert benchmarks van haar eigen en niet bemoeien met andere benchmarks:

“Er zijn leugens, verdomde leugens, statistieken, en de leverancier van benchmarks — dat is de hiërarchie van de ligt”, zegt hij. In het algemeen, zijn er op zijn minst een kern van waarheid. Maar dat is ook een goede gelegenheid om te verwijzen naar de grafiek database ruimte, die heeft veel gezien van activiteit in de laatste zes maanden.

Om te beginnen met, we hebben een nieuwe speler die nieuw is in de ruimte met een knal en een aantal indrukwekkende benchmarks — niet minder omdat ze daar in de open lucht worden gereproduceerd: TigerGraph. Neo4j is nog steeds nummer één in de adoptie, en hard werken om er te blijven als het lijkt.

TigerGraph ‘ s CEO heeft ten opzichte van TigerGraph te Neo4j door te stellen dat “Neo4j is niet een gedistribueerd systeem. Het heeft ‘clustering’ aanbieden waarbij elke machine moet nog een volledige kopie van de hele grafiek. De ‘clustering’ is alleen bedoeld voor hoger query ‘ s per seconde en een hogere beschikbaarheid. De clustering kan niet omgaan met een grafiek als de grafiek is groter dan een enkele machine kan verwerken.”

Eifrem niet op reageren direct. Maar hij deed commentaar geven op de vraag TigerGraph zou het een optie om te overwegen voor iedereen die op zoek voor een premium grafiek database oplossing:

“Misschien wel. Bij een volwassen staat, de markt moet ruimte voor zijn, en dat we liever hebben 60 procent van een grote, volwassen markt dan 100 procent van een ontluikende. TigerGraph kan aanspraak maken op succes, maar ze hebben een veel te bewijzen nog steeds. Ze hebben ongeveer 30 miljoen, maar dat is het wel. Ze konden het huren van een goede CEO, of het bouwen van hun commercieel team, ijzer of van hun product.

Dan konden ze uiteindelijk op een stukje van deze markt. Dat is goed nieuws, dat willen we. Tot nu toe hebben we ze niet gezien in deals. Als dat begint te gebeuren ik misschien een beetje meer chagrijnig, maar niet op dit punt. Zolang mensen zijn intellectueel eerlijk en blijf bij de feiten, meer spelers is het goed nieuws.”

Eifrem zegt dat de activiteit van deze ruimte heeft gezien in de afgelopen zes maanden is een teken van de toenemende vraag en de looptijd. Het probleem met dat hij blijft, is dat dit betekent dat de ruimte gaat door een enigszins vervelende fase van FUD, marketing, hype, en het aanvinken van vakjes:

“Gartner bevorderd het idee van multi-model-database, dus je had bijvoorbeeld MongoDB het toevoegen van een grafiek van de operator en zeggen dat ze een native grafiek database. Dit heeft geen zin, maar hen in staat stelde om aan te vinken dat vak. Door de manier, Gartner ook verklaarde onlangs dat ze zien geen groei in multi-model.”

Als voor de rest van de concurrentie, Eifrem lijkt forfaitaire het meeste samen in wat hij noemt een niet-native-oplossingen: “door het toevoegen van een laag op de top van niet-inheemse winkels, heb je iets dat eruit ziet en voelt als een grafiek. Je hebt een goede graph API, maar op het einde je het serialiseren van tabellen of documenten of wat dan ook, en dat is niet van plan om je prestaties.”

Als er een ding is zeker, het is dat deze ruimte is groeiende. We zullen revisting het dekken van meer benaderingen en meningen in de nabije toekomst.

0