Rozszerzanie możliwości grafowej bazy danych
Zrób więcej, szybciej za pomocą biblioteki APOC Neo4j
Neo4j 3.x wprowadziła pojęcie procedur i funkcji zdefiniowanych przez użytkownika. Są to niestandardowe implementacje pewnych funkcjonalności, których nie da się (łatwo) wyrazić w samym Cypherze. Są zaimplementowane w Javie i mogą być łatwo wdrożone w twojej instancji Neo4j, a następnie wywoływane bezpośrednio z Cypher. Biblioteka APOC składa się z wielu (około 450) procedur i funkcji, które pomagają w wielu różnych zadaniach w obszarach takich jak integracja danych, algorytmy wykresów lub konwersja danych
APOC oznacza "Awesome Procedures On Cypher"
Instalacja biblioteki Neo4j APOC
Zbiór procedur APOC Core jest dostarczany z Neo4j i można go znaleźć w katalogu $NEO4J_HOME/labs. APOC Full można pobrać z GitHub. Niektórych procedur nie znajdziesz w edycji core. Wersja full zawiera to co posiada 'core' plus inne. APOC Core można zainstalować, przenosząc plik jar APOC z katalogu $NEO4J_HOME/labs do katalogu $NEO4J_HOME/plugins i ponownie uruchamiając Neo4j.
Użycie
Funkcje APOC mogą być używane w dowolnym wyrażeniu podobnie jak funkcje wbudowane. Procedury mogą być nazywane autonomicznymi za pomocą CALL procedure.name(); Ale możesz również zintegrować je ze swoimi instrukcjami Cypher, co czyni je znacznie potężniejszymi. Przykład odczytania JSON z URLa i utworzenia nodow w Neo4j
WITH 'https://strona/plik.json' AS url
CALL apoc.load.json(url) YIELD value as person
MERGE (p:Person {name:person.name})
ON CREATE SET p.age = person.age, p.children = size(person.children)
Pełna lista dostępnych procedur
Spis procedur i funkcji dostępnych w bibliotece APOC znajdziesz pod adresem https://neo4j.com/labs/apoc/4.3/overview/ Lista zawiera informację czy funkcja/procedura jest zawarta w kompaktowej wersji 'core' czy w pełnej 'full'. Dodatkowo znajdziesz tam przykłady użycia.
Inne funkcje biblioteki APOC
Biblioteka APOC oferuje także import danych z różnych formatów (API, JSON, CSV, XLSX...), export do różnych formatów, integrację z bazami danych (np. Elasticsearch, MySQL, Neo4j)