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.

Domyślna konfiguracja

Domyślna konfiguracja dla AGE jest ustawiona do używania silnika bazy danych PostgreSQL. Baza danych zostanie utworzona z następującymi parametrami:

  • POSTGRES_PASSWORD: Hasło dla użytkownika PostgreSQL. Jest ustawione na specyficzny dla CGC app_token, który otrzymujesz po utworzeniu bazy danych.
  • POSTGRES_USER=admin: Użytkownik dla bazy danych PostgreSQL.
  • POSTGRES_DB=db: Nazwa bazy danych PostgreSQL. Jest ustawiona na nazwę, którą podałeś podczas tworzenia bazy danych.
  • POSTGRES_HOST_AUTH_METHOD=trust: Konfiguruje PostgreSQL do pomijania weryfikacji hasła dla połączeń, ufając, że uwierzytelnienie już nastąpiło na poziomie systemu. Jest to wygodne do rozwoju, ale stwarza znaczące zagrożenie bezpieczeństwa w środowiskach produkcyjnych.

Jak podłączyć się do bazy danych

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