Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Apache AGE (een grafiekextensie) is een krachtige PostgreSQL-extensie die is ontworpen om de functionaliteit van graafdatabases naadloos te integreren in het PostgreSQL-ecosysteem. AGE stelt gebruikers in staat om grafiekgegevens efficiënt en expressief op te slaan en op te vragen door de intuïtieve openCypher-querytaal te ondersteunen, wanneer ze zijn ontwikkeld onder het Apache Incubator-project. Het overbrugt de kloof tussen relationele gegevens en grafiekgegevens, zodat ontwikkelaars complexe relaties kunnen beheren en inzichten kunnen ontdekken die traditionele databases moeilijk kunnen onthullen.
Grafiekgegevens, weergegeven via knooppunten (entiteiten) en randen (relaties), worden steeds belangrijker herkend voor toepassingen zoals sociale netwerken, aanbevelingssystemen, fraudedetectie, netwerkanalyse en kennisgrafieken. Apache AGE biedt een robuuste oplossing voor het verwerken van dergelijke onderling verbonden gegevens, waardoor geavanceerde analyses en gestroomlijnd gegevensbeheer mogelijk zijn.
Mogelijkheden voor grafiekgegevens ontgrendelen met Apache AGE
Door grafiekgegevensmogelijkheden te ontgrendelen met Apache AGE kunnen ontwikkelaars optimaal gebruikmaken van het volledige potentieel van onderling verbonden gegevens in PostgreSQL. Apache AGE maakt naadloze verkenning en analyse van complexe relaties mogelijk door grafiekdatabasefunctionaliteit rechtstreeks in de relationele database te integreren. Deze mogelijkheid is waardevol voor toepassingen die diepgaande inzichten vereisen in gegevensverbindingen, zoals sociale netwerken, fraudedetectie en aanbevelingssystemen. Met de ondersteuning voor de openCypher-querytaal en robuuste PostgreSQL-basis biedt Apache AGE een schaalbare en efficiënte oplossing voor het beheren en opvragen van grafiekgegevens.
Belangrijkste functies van Apache AGE
- Grafiek- en relationele gegevensintegratie: AGE maakt naadloze interactie mogelijk tussen grafiek- en relationele gegevens in PostgreSQL.
- openCypher Query Language: AGE ondersteunt deze veelgebruikte querytaal voor grafiekdatabases, waardoor het schrijven en onderhoud van query's wordt vereenvoudigd.
- Schaalbaarheid en betrouwbaarheid: onder de bewezen architectuur van PostgreSQL neemt AGE de schaalbaarheid en robuustheid van bedrijf over.
Waarom een grafiekdatabase gebruiken?
Grafiekdatabases excelleren bij het weergeven en opvragen van complexe en zeer onderling verbonden relaties. In tegenstelling tot relationele databases, waarvoor meerdere joins of documentdatabases nodig zijn die niet zijn geoptimaliseerd voor deep relationship traversal, modelleren grafiekdatabases natuurlijk relaties tussen entiteiten. Het opvragen van 'vrienden van vrienden' of het 'kortste pad tussen twee punten' is bijvoorbeeld intuïtiever en efficiënter in een grafiekdatabase.
AGE maakt gebruik van het ACID-compatibele transactionele systeem van PostgreSQL en zorgt voor betrouwbaarheid en atomiciteit voor grafiekquery's. Deze integratie vereenvoudigt geavanceerde toepassingen zoals Knowledge Graphs, die ai-gestuurde zoek- en gegevensgeneratie ondersteunen door feiten en concepten te structureren als knooppunten en hun onderlinge verbindingen als randen.
Azure-klanten kunnen de AGE-extensie inschakelen
Azure Database for PostgreSQL bevat Apache AGE als extensie.
Met deze stappen kunt u de extensie inschakelen in uw flexibele serverinstanties:
Serverparameters voor Access
Navigeer in de Azure Portal naar het PostgreSQL flexibele serverexemplaar en selecteer de optie Serverparameters.
Pas de volgende instellingen aan:
- azure.extensions: Zoek en schakel AGE in onder de beschikbare extensies in het parameterfilter.
- shared_preload_libraries: Zoek en schakel AGE in het parameterfilter in.
Selecteer Opslaan om deze wijzigingen toe te passen. De server wordt automatisch opnieuw opgestart om de AGE-extensie te activeren.
Opmerking
Als het niet mogelijk is om het shared_preload_libraries in te schakelen, resulteert dit in de volgende fout wanneer u het AGE-schema in een query probeert te gebruiken: "ERROR: unhandled cipher(cstring) function call error on first cipher query"
Inschakelen AGE in PostgreSQL
Zodra de server opnieuw is opgestart, maakt u verbinding met het PostgreSQL-exemplaar met behulp van de psql-interpreter. Voer de volgende opdracht uit om AGE in te schakelen:
CREATE EXTENSION IF NOT EXISTS AGE CASCADE;
Zodra dit is gelukt, ziet u CREATE EXTENSION als de query-uitvoer.
U kunt ook een query uitvoeren op de pg_extension catalogustabel om te bevestigen dat AGE is ingeschakeld en de versie van de extensie te controleren.
SELECT * FROM pg_extension WHERE extname = 'age';
Schemapaden configureren
AGE voegt een schema toe met de naam ag_catalog, essentieel voor het verwerken van grafiekgegevens. Zorg ervoor dat dit schema is opgenomen in het zoekpad door het volgende uit te voeren:
SET search_path=ag_catalog,"$user",public;
Voor Python kunt u het schemapad instellen door het volgende uit te voeren:
import psycopg as pg
with pg.Connection.connect(con_str + " options='-c search_path=ag_catalog,\"$user\",public'") as con:
Het kan ook programmatisch worden geconfigureerd in uw toepassing.
Door deze stappen te volgen, zorgt u ervoor dat uw PostgreSQL-exemplaar correct is geconfigureerd voor het gebruik van de mogelijkheden van de AGE-extensie. De AGE-extensie biedt geavanceerde grafiekdatabasemogelijkheden rechtstreeks in PostgreSQL. Met deze installatie kunt u naadloos grafiekquery's integreren in uw toepassingen, krachtige gegevensrelaties en inzichten ontgrendelen. Nu de AGE-extensie is ingeschakeld en geconfigureerd, bent u klaar om het volledige potentieel van grafiekanalyses in uw PostgreSQL-omgeving te verkennen.
Belangrijke tabellen in het ag_catalog-schema
ag_graphag_label
ag_graph
De ag_graph tabel in het ag_catalog schema van Apache AGE fungeert als opslagplaats voor metagegevens die zijn gemaakt in PostgreSQL via de ag_catalog.create_graph functie. Het onderhoudt met name details zoals de naam van de grafiek en de bijbehorende naamruimte, die fungeert als een schema in PostgreSQL. Deze naamruimte organiseert de structuur van de grafiek en bevat tabellen voor het opslaan van hoekpunt- en randgegevens.
\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
In de ag_label tabel worden metagegevens opgeslagen over labels die worden gebruikt in AGE-grafieken. Deze labels worden bijgehouden, gekoppeld aan hun respectieve grafieken en worden gedefinieerd of ze hoekpunten of randen vertegenwoordigen. De vermelding bevat de unieke id van het label, de bijbehorende grafiek, alle indexen en de onderliggende PostgreSQL-tabel waarin de gegevens worden opgeslagen.
\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