Przejdź do głównej zawartości

Apache 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.

Utwórz wolumen dla danych:

cgc volume create -s 5 -sc <storage_class> pgage-volume

Uruchom bazę danych z podłączonym wolumenem:

cgc db create -n pgage-001-prod -v pgage-volume pg-age

Po utworzeniu bazy danych otrzymasz app token do swojej bazy danych.

warning

Zawsze twórz bazę danych z zamontowanym wolumenem. Bez -v baza zapisuje dane na ulotnym dysku poda, więc każdy restart (cgc resource restart, prace serwisowe na node, awaria) inicjalizuje PostgreSQL od zera i wszystkie dane przepadają po jednym restarcie. Z wolumenem (montowanym pod /var/lib/postgresql/data, gdzie znajduje się PGDATA) te same wiersze przetrwały cgc resource restart, a także usunięcie bazy i utworzenie jej ponownie pod tą samą nazwą z tym samym wolumenem.

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. Zawsze db — nie jest ustawiana na nazwę aplikacji, którą podałeś.
  • 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.
  • PGDATA=/var/lib/postgresql/data/pgdata: Katalog danych, podkatalog zamontowanego wolumenu.
informacja

Jeśli chcesz nadpisać POSTGRES_PASSWORD i zachować jego prawidłowe wyświetlanie podczas cgc db list -d, zalecamy użycie flagi CGC -ce app_token=TWOJE_HASŁO

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