AGE
Apache AGE to rozszerzenie do PostgreSQL, które umożliwia użytkownikom wykorzystanie graficznej bazy danych na podstawie istniejących relacyjnych baz danych. Jako rozszerzenie PostgreSQL, AGE obsługuje wszystkie funkcjonalności i cechy PostgreSQL oferując jednocześnie możliwość tworzenia grafów.
Uruchamianie
Uruchamianie na CGC jest bardzo proste. Wystarczy utworzyć nową bazę danych i załadować rozszerzenie AGE.
cgc db create -n <nazwa_bazy_danych> pg-age
Po utworzeniu bazy danych otrzymasz app token do swojej bazy danych.
Jak podłączyć się do bazy danych
Do bazy danych możesz się podłączyć z dowolnego notebooka działającego w twoim namespace za pomocą CGC SDK.
import cgc.sdk as cgc
postgresql = cgc.postgresql_client("<database_name>","<app_token>")
Po więcej informacji o CGC SDK i tym jak podłączyć się do bazy danych, zajrzyj do naszej dokumentacji
Instalacja
Dla każdego połączenia AGE, które chcesz utworzyć, musisz załadować rozszerzenie AGE do swojej bazy danych.
CREATE EXTENSION age;
LOAD age;
SET search_path = ag_catalog, "$user", public;
Gotowe! Możesz teraz korzystać z AGE w swojej bazie danych.
Przykładowe działanie
Aby utworzyć graf, użyj funkcji create_graph znajdującej się w ag_catalog.
SELECT create_graph('graph_name');
Aby utworzyć wierzchołek z etykietą i właściwościami, użyj klauzuli CREATE.
SELECT *
FROM cypher('graph_name', $$
CREATE (:label {property:"Node A"})
$$) as (v agtype);
SELECT *
FROM cypher('graph_name', $$
CREATE (:label {property:"Node B"})
$$) as (v agtype);
Aby utworzyć krawędź między dwoma wierzchołkami i ustawić jej właściwości:
SELECT *
FROM cypher('graph_name', $$
MATCH (a:label), (b:label)
WHERE a.property = 'Node A' AND b.property = 'Node B'
CREATE (a)-[e:RELTYPE {property:a.property + '<->' + b.property}]->(b)
RETURN e
$$) as (e agtype);
Aby wykonać zapytanie o połączone wierzchołki:
SELECT * from cypher('graph_name', $$
MATCH (V)-[R]-(V2)
RETURN V,R,V2
$$) as (V agtype, R agtype, V2 agtype);
Po więcej informacji o AGE, zajrzyj do oficjalnej dokumentacji oraz repozytorium Github