Megosztás a következőn keresztül:


AGE-bővítmény az Azure Database for PostgreSQL-hez

Az Apache AGE (gráfbővítmény) egy hatékony PostgreSQL-bővítmény, amely zökkenőmentesen integrálja a gráfadatbázis funkcióit a PostgreSQL-ökoszisztémába. Az AGE lehetővé teszi a felhasználók számára a gráfadatok hatékony és kifejező tárolását és lekérdezését az intuitív openCypher lekérdezési nyelv támogatásával, amikor az Apache Inkubátor projekt keretében fejlesztették ki. Áthidalja a relációs és a gráfadatok közötti szakadékot, így a fejlesztők összetett kapcsolatokat kezelhetnek, és olyan megállapításokat fedhetnek fel, amelyeket a hagyományos adatbázisok nehezen fedhetnek fel.

A csomópontokon (entitásokon) és éleken (kapcsolatokon) keresztül ábrázolt gráfadatok egyre nélkülözhetetlenek az olyan alkalmazásokhoz, mint a közösségi hálózatok, a javaslati rendszerek, a csalásészlelés, a hálózatelemzés és a tudásgráfok. Az Apache AGE robusztus megoldást kínál az ilyen összekapcsolt adatok kezelésére, lehetővé téve a fejlett elemzéseket és az egyszerűbb adatkezelést.

A gráfadatok képességeinek feloldása az Apache AGE használatával

A gráfadatok apache AGE-beli képességeinek feloldása lehetővé teszi a fejlesztők számára, hogy kihasználják az összekapcsolt adatok teljes potenciálját a PostgreSQL-ben. Az Apache AGE lehetővé teszi az összetett kapcsolatok zökkenőmentes feltárását és elemzését úgy, hogy a gráfadatbázis funkcióit közvetlenül a relációs adatbázisba integrálja. Ez a képesség hasznos az olyan alkalmazások számára, amelyek mély betekintést igényelnek az adatkapcsolatokba, például a közösségi hálózatokba, a csalásészlelésbe és a javaslati rendszerekbe. Az OpenCypher lekérdezési nyelv és a robusztus PostgreSQL-alaprendszer támogatása révén az Apache AGE skálázható és hatékony megoldást kínál a gráfadatok kezeléséhez és lekérdezéséhez.

Az Apache AGE főbb jellemzői

  • Gráf- és relációs adatintegráció: Az AGE lehetővé teszi a gráfok és a relációs adatok közötti zökkenőmentes interakciót a PostgreSQL-ben.
  • openCypher lekérdezési nyelv: Az AGE támogatja ezt a széles körben elismert lekérdezési nyelvet a gráfadatbázisokhoz, leegyszerűsítve a lekérdezések írását és karbantartását.
  • Méretezhetőség és megbízhatóság: A PostgreSQL bevált architektúrája szerint az AGE örökli a méretezhetőséget és a nagyvállalati szintű robusztusságot.

Miért érdemes gráfadatbázist használni?

A gráfadatbázisok összetett és szorosan összekapcsolt kapcsolatok ábrázolását és lekérdezését is kiválóan szemléltetik. A relációs adatbázisoktól eltérően, amelyek több illesztést vagy dokumentumadatbázist igényelnek, amelyek nem a mély kapcsolat bejárására van optimalizálva, a gráfadatbázisok természetesen modellezik az entitások közötti kapcsolatokat. Például a "barátok barátainak" lekérdezése vagy a "két pont közötti legrövidebb út" lekérdezése intuitívabb és hatékonyabb egy gráfadatbázisban.

Az AGE a PostgreSQL ACID-kompatibilis tranzakciós rendszerét használja, biztosítva a gráfos lekérdezések megbízhatóságát és atomiságát. Ez az integráció olyan fejlett alkalmazásokat tesz lehetővé, mint a Knowledge Graphs, amely támogatja az AI-alapú keresést és az adatlétrehozást azáltal, hogy csomópontként strukturálja a tényeket és fogalmakat, valamint élekként összekapcsolja őket.

Az Azure-ügyfelek engedélyezhetik az AGE bővítményt

Az Azure Database for PostgreSQL bővítményként tartalmazza az Apache AGE-et.

Ezek a lépések segítenek engedélyezni a bővítményt a rugalmas kiszolgálópéldányban:

Az Access-kiszolgáló paraméterei

Az Azure Portalon keresse meg a rugalmas PostgreSQL-kiszolgálópéldányt, és válassza a Kiszolgálóparaméterek lehetőséget.

Módosítsa a következő beállításokat:

  • azure.extensions: Keresse meg és engedélyezze az AGE-t a paraméterszűrőben elérhető bővítmények között.
  • shared_preload_libraries: Keresse meg és engedélyezze az AGE-t a paraméterszűrőben.

A módosítások alkalmazásához válassza a Mentés lehetőséget. A kiszolgáló automatikusan újraindul az AGE bővítmény aktiválásához.

Megjegyzés:

A shared_preload_libraries engedélyezésének hiánya a következő hibát eredményezi, amikor megpróbálja használni az AGE-sémát egy lekérdezésben: "HIBA: nem kezelt titkosítási (cstring) függvényhívási hiba az első titkosítási lekérdezésben"

Az AGE engedélyezése a PostgreSQL-ben

A kiszolgáló újraindítása után csatlakozzon a PostgreSQL-példányhoz a psql-értelmezővel. Hajtsa végre a következő parancsot az AGE engedélyezéséhez:

CREATE EXTENSION IF NOT EXISTS AGE CASCADE;

Ha sikeres volt, a lekérdezés kimeneteként jelenik meg CREATE EXTENSION .

A pg_extension katalógustáblát is lekérdezheti, hogy az AGE engedélyezve van-e, és ellenőrizze a bővítmény verzióját.

SELECT * FROM pg_extension WHERE extname = 'age';

Sémaútvonalak konfigurálása

Az AGE hozzáad egy ag_catalog nevű sémát, amely nélkülözhetetlen a gráfadatok kezeléséhez. A következő végrehajtásával győződjön meg arról, hogy a séma szerepel a keresési útvonalban:

SET search_path=ag_catalog,"$user",public;

Python esetén a séma elérési útját a következő végrehajtásával állíthatja be:

import psycopg as pg
with pg.Connection.connect(con_str + " options='-c search_path=ag_catalog,\"$user\",public'") as con:

Programozott módon is konfigurálható az alkalmazásban.

Az alábbi lépések végrehajtásával győződjön meg arról, hogy a PostgreSQL-példány megfelelően van konfigurálva az AGE bővítmény képességeinek használatához. Az AGE bővítmény speciális gráfadatbázis-képességeket biztosít közvetlenül a PostgreSQL-ben. Ezzel a beállítással zökkenőmentesen integrálhatók a gráfos lekérdezések az alkalmazásokba, így hatékony adatkapcsolatok és elemzések hozhatók létre. Ha az AGE bővítmény engedélyezve van és konfigurálva van, most már készen áll a gráfelemzés teljes potenciáljának feltárására a PostgreSQL-környezetben.

Fontos táblák a ag_catalog sémában

  • ag_graph
  • ag_label

ag_graph

Az Apache AGE ag_catalog sémájában található ag_graph tábla a PostgreSQL-ben a függvényen keresztül ag_catalog.create_graph létrehozott gráfokhoz kapcsolódó metaadatok adattáraként szolgál. Pontosabban olyan részleteket kezel, mint a gráf neve és a társított névtér, amely sémaként működik a PostgreSQL-ben. Ez a névtér rendszerezi a gráf struktúráját, és a csúcs- és éladatok tárolására szolgáló táblákat tartalmaz.

\d+ ag_graph
                                          Table "ag_catalog.ag_graph"
 Column   |     Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description
-----------+--------------+-----------+----------+---------+---------+-------------+--------------+-------------
 graphid   | oid |           | not null |         | plain   |             |              |
 name | name |           | not null |         | plain   |             |              |
 namespace | regnamespace |           | not null |         | plain   |             |              |
Indexes:
    "ag_graph_graphid_index" UNIQUE, btree (graphid)
    "ag_graph_name_index" UNIQUE, btree (name)
    "ag_graph_namespace_index" UNIQUE, btree (namespace)
Referenced by:
    TABLE "ag_label" CONSTRAINT "fk_graph_oid" FOREIGN KEY (graph) REFERENCES ag_graph(graphid)
Access method: heap

ag_label

A ag_label táblázat az AGE-diagramokban használt címkék metaadatait tárolja. Nyomon követi ezeket a címkéket, társítja őket a megfelelő gráfokkal, és meghatározza, hogy csúcsokat vagy éleket jelölnek-e. A bejegyzés tartalmazza a címke egyedi azonosítóját, a társított gráfot, az indexeket és az adatokat tároló mögöttes PostgreSQL-táblát.

\d+ ag_label
                                   Table "ag_catalog.ag_label"
 Column  |    Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description
----------+------------+-----------+----------+---------+---------+-------------+--------------+-------------
 name | name |           | not null |         | plain   |             |              |
 graph    | oid |           | not null |         | plain   |             |              |
 id       | label_id   |           |          |         | plain   |             |              |
 kind     | label_kind |           |          |         | plain   |             |              |
 relation | regclass   |           | not null |         | plain   |             |              |
 seq_name | name |           | not null |         | plain   |             |              |
Indexes:
"ag_label_graph_oid_index" UNIQUE, btree (graph, id)
"ag_label_name_graph_index" UNIQUE, btree (name, graph)
"ag_label_relation_index" UNIQUE, btree (relation)
"ag_label_seq_name_graph_index" UNIQUE, btree (seq_name, graph)
Foreign-key constraints:
- `fk_graph_oid` FOREIGN KEY (graph) REFERENCES ag_graph(graphid)
Access method: heap