Przejdź do głównej zawartości

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