Sdílet prostřednictvím


Rozšíření AGE se službou Azure Database for PostgreSQL

Apache AGE (rozšíření grafu) je výkonné rozšíření PostgreSQL navržené k bezproblémové integraci funkcí grafových databází do ekosystému PostgreSQL. AGE umožňuje uživatelům efektivně ukládat a dotazovat grafová data díky podpoře intuitivního dotazovacího jazyka openCypher, které bylo vyvinuto v rámci projektu Apache Incubator. Překlenuje mezeru mezi relačními a grafovými daty, což vývojářům umožňuje spravovat složité vztahy a odhalit přehledy, které tradiční databáze nemusí odhalit.

Grafová data reprezentovaná prostřednictvím uzlů (entit) a hran (relací) jsou stále důležitější pro aplikace, jako jsou sociální sítě, systémy doporučení, detekce podvodů, analýza sítě a grafy znalostí. Apache AGE poskytuje robustní řešení pro zpracování takových propojených dat, které umožňuje pokročilé analýzy a zjednodušenou správu dat.

Odemknutí možností grafových dat pomocí Apache AGE

Odemykání funkcí grafových dat pomocí Apache AGE umožňuje vývojářům využívat plný potenciál propojených dat v rámci PostgreSQL. Apache AGE umožňuje bezproblémový průzkum a analýzu složitých relací integrací funkcí grafové databáze přímo do relační databáze. Tato funkce je cenná pro aplikace, které vyžadují podrobné přehledy o datových připojeních, jako jsou sociální sítě, detekce podvodů a systémy doporučení. Díky podpoře dotazovacího jazyka OpenCypher a robustního základu PostgreSQL poskytuje Apache AGE škálovatelné a efektivní řešení pro správu a dotazování grafových dat.

Klíčové funkce Apache AGE

  • Integrace grafů a relačních dat: AGE umožňuje bezproblémovou interakci mezi grafy a relačními daty v rámci PostgreSQL.
  • openCypher Query Language: AGE podporuje tento široce rozpoznaný dotazovací jazyk pro grafové databáze, což zjednodušuje zápis a údržbu dotazů.
  • Škálovatelnost a spolehlivost: V rámci osvědčené architektury PostgreSQL age dědí svou škálovatelnost a odolnost na podnikové úrovni.

Proč používat grafovou databázi?

Grafové databáze excelují na reprezentaci a dotazování složitých a vysoce propojených relací. Na rozdíl od relačních databází, které vyžadují více spojení nebo dokumentových databází, které nejsou optimalizované pro hloubkovou relaci procházení, grafové databáze přirozeně modelují vztahy mezi entitami. Například dotazování "přátel přátel" nebo "nejkratší cesta mezi dvěma body" je intuitivnější a efektivnější v grafové databázi.

AGE používá transakční systém kompatibilní s ACID v PostgreSQL, který zajišťuje spolehlivost a atomicitu pro grafové dotazy. Tato integrace usnadňuje pokročilé aplikace, jako jsou Knowledge Graphs, které podporují vyhledávání založené na umělé inteligenci a generování dat strukturováním faktů a konceptů jako uzlů a jejich propojení jako hrany.

Zákazníci Azure můžou povolit rozšíření AGE.

Azure Database for PostgreSQL zahrnuje Apache AGE jako rozšíření.

Tento postup vám pomůže povolit rozšíření v instanci flexibilního serveru:

Parametry přístupového serveru

Na webu Azure Portal přejděte do instance flexibilního serveru PostgreSQL a vyberte možnost Parametry serveru.

Upravte následující nastavení:

  • azure.extensions: Vyhledejte a povolte AGE mezi dostupnými rozšířeními ve filtru parametrů.
  • shared_preload_libraries: Vyhledejte a povolte AGE v nástroji nastavení parametrů.

Chcete-li tyto změny použít, vyberte Uložit. Server se automaticky restartuje, aby se aktivoval rozšíření AGE.

Poznámka:

Neaktivace shared_preload_libraries způsobí následující chybu při pokusu o použití schématu AGE v dotazu: "CHYBA: neošetřená chyba volání funkce šifrování (cstring) při prvním dotazu na šifrování"

Povolení AGE v PostgreSQL

Po restartování serveru se pomocí interpretu psql připojte k instanci PostgreSQL. Spuštěním následujícího příkazu povolte AGE:

CREATE EXTENSION IF NOT EXISTS AGE CASCADE;

Po úspěšném dokončení se zobrazí CREATE EXTENSION výstup dotazu.

Můžete se také dotazovat na tabulku katalogu pg_extension, abyste potvrdili, že bylo povoleno rozšíření AGE, a zkontrolovat verzi rozšíření.

SELECT * FROM pg_extension WHERE extname = 'age';

Konfigurovat cesty schématu

AGE přidává schéma označované ag_catalogjako základní pro zpracování grafových dat. Spuštěním následujícího příkazu se ujistěte, že je toto schéma zahrnuté do cesty hledání:

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

V Případě Pythonu můžete cestu schématu nastavit spuštěním následujícího příkazu:

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

Dá se také nakonfigurovat programově ve vaší aplikaci.

Podle těchto kroků se ujistěte, že je vaše instance PostgreSQL správně nakonfigurovaná tak, aby používala možnosti rozšíření AGE. Rozšíření AGE poskytuje pokročilé možnosti grafové databáze přímo v PostgreSQL. Toto nastavení umožňuje bezproblémovou integraci grafových dotazů do vašich aplikací, odemykání výkonných relací dat a přehledů. S povoleným a nakonfigurovaným rozšířením AGE teď můžete prozkoumat úplný potenciál analýzy grafů v prostředí PostgreSQL.

Důležité tabulky ve schématu ag_catalog

  • ag_graph
  • ag_label

ag_graph

Tabulka ag_graph ve schématu ag_catalog Apache AGE slouží jako úložiště metadat souvisejících s grafy vytvořenými v rámci PostgreSQL prostřednictvím ag_catalog.create_graph funkce. Konkrétně udržuje podrobnosti, jako je název grafu a přidružený obor názvů, který funguje jako schéma v PostgreSQL. Tento obor názvů uspořádá strukturu grafu a obsahuje tabulky pro ukládání vrcholů a hraničních dat.

\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

Tabulka ag_label ukládá metadata o popiscích použitých v grafech AGE. Tyto popisky sleduje, asociuje je s příslušnými grafy a definuje, jestli představují vrcholy nebo hrany. Položka obsahuje jedinečné ID popisku, přidružený graf, všechny indexy a podkladovou tabulku PostgreSQL, která ukládá data.

\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