Tentang Apache AGE
Apache AGE adalah adalah ekstensi dari PostgreSQL untuk model data graph. Apache AGE mendukung model data graph berupa property graph (jenis lainnya adalah RDF/TripleStore). Apache AGE merupakan software bebas dan mendukung berbagai versi PostgreSQL. Secara resmi, pada halaman web Apache AGE, dinyatakan bahwa versi PostgreSQL yang didukung adalah versi 11-15. Meski demikian, pada versi release dari Apache AGE di GitHub, terdapat versi untuk PostgreSQL 16.x. Artikel ini menggunakan versi 16.1.
Instalasi
Instalasi sangat mudah dilakukan dan harus dikompilasi dari source code. Berikut adalah cara melakukan instalasi:
$ pwd
/home/bpdp/master/postgresql/16/age-1.5.0-pg16/apache-age-1.5.0
$ make install
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -fPIC -fvisibility=hidden -I.//src/include -I.//src/include/parser -I. -I./ -I/home/bpdp/software/dbms/postgresql-16.1/include/server -I/home/bpdp/software/dbms/postgresql-16.1/include/internal -D_GNU_SOURCE -c -o src/backend/age.o src/backend/age.c
...
...
...
/bin/mkdir -p '/home/bpdp/software/dbms/postgresql-16.1/lib'
/bin/mkdir -p '/home/bpdp/software/dbms/postgresql-16.1/share/extension'
/bin/mkdir -p '/home/bpdp/software/dbms/postgresql-16.1/share/extension'
/usr/bin/install -c -m 755 age.so '/home/bpdp/software/dbms/postgresql-16.1/lib/age.so'
/usr/bin/install -c -m 644 .//age.control '/home/bpdp/software/dbms/postgresql-16.1/share/extension/'
/usr/bin/install -c -m 644 age--1.5.0.sql '/home/bpdp/software/dbms/postgresql-16.1/share/extension/'
$
Menggunakan Apache AGE
psql -U bpdp -d template1
psql (16.1)
Type "help" for help.
template1=# CREATE EXTENSION age;
CREATE EXTENSION
template1=# LOAD 'age';
LOAD
template1=# SET search_path = ag_catalog, "$user", public;
SET
template1=# GRANT USAGE ON SCHEMA ag_catalog TO bpdp;
GRANT
template1=# SELECT create_graph('test_age');
NOTICE: graph "test_age" has been created
create_graph
--------------
(1 row)
template1=# SELECT * FROM ag_catalog.ag_graph;
graphid | name | namespace
---------+----------+-----------
21353 | test_age | test_age
(1 row)
template1=# SELECT * FROM ag_catalog.drop_graph('test_age', true);
NOTICE: drop cascades to 2 other objects
DETAIL: drop cascades to table test_age._ag_label_vertex
drop cascades to table test_age._ag_label_edge
NOTICE: graph "test_age" has been dropped
drop_graph
------------
(1 row)
template1=#
Setelah ini, kita bisa menggunakan OpenCypher untuk bahasa query dari graph database yang kita buat (create_graph).
Happy hacking!