Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Apache AGE (ett graftillägg) är ett kraftfullt PostgreSQL-tillägg som är utformat för att sömlöst integrera grafdatabasfunktioner i PostgreSQL-ekosystemet. AGE gör det möjligt för användare att lagra och fråga grafdata effektivt och uttrycksfullt genom att stödja det intuitiva openCypher-frågespråket när de utvecklas under Apache Incubator-projektet. Det överbryggar klyftan mellan relations- och grafdata, vilket gör det möjligt för utvecklare att hantera komplexa relationer och avslöja insikter som traditionella databaser kan ha svårt att avslöja.
Grafdata, som representeras via noder (entiteter) och kanter (relationer), identifieras alltmer som nödvändiga för program som sociala nätverk, rekommendationssystem, bedrägeriidentifiering, nätverksanalys och kunskapsdiagram. Apache AGE är en robust lösning för hantering av sådana sammankopplade data, vilket möjliggör avancerade analyser och effektiv datahantering.
Låsa upp grafdatafunktioner med Apache AGE
Genom att låsa upp grafdatafunktioner med Apache AGE kan utvecklare utnyttja den fulla potentialen för sammankopplade data i PostgreSQL. Apache AGE möjliggör sömlös utforskning och analys av komplexa relationer genom att integrera grafdatabasfunktioner direkt i relationsdatabasen. Den här funktionen är värdefull för program som kräver djupgående insikter om dataanslutningar, till exempel sociala nätverk, identifiering av bedrägerier och rekommendationssystem. Med stöd för openCypher-frågespråket och den robusta PostgreSQL-grunden tillhandahåller Apache AGE en skalbar och effektiv lösning för att hantera och köra frågor mot grafdata.
Viktiga funktioner i Apache AGE
- Diagram- och relationsdataintegrering: AGE möjliggör sömlös interaktion mellan graf- och relationsdata i PostgreSQL.
- openCypher Query Language: AGE stöder det här allmänt kända frågespråket för grafdatabaser, vilket förenklar frågeskrivning och underhåll.
- Skalbarhet och tillförlitlighet: Under PostgreSQL:s beprövade arkitektur ärver AGE dess skalbarhet och robusthet i företagsklass.
Varför ska jag använda en grafdatabas?
Graph-databaser är utmärkta när det gäller att representera och fråga komplexa och starkt sammankopplade relationer. Till skillnad från relationsdatabaser, som kräver flera kopplingar eller dokumentdatabaser som inte är optimerade för djup relationsbläddering, modellerar grafdatabaser naturligt relationer mellan entiteter. Att till exempel fråga "vänners vänner" eller den "kortaste sökvägen mellan två punkter" är mer intuitivt och effektivt i en grafdatabas.
AGE använder PostgreSQL:s ACID-kompatibla transaktionssystem, vilket säkerställer tillförlitlighet och atomitet för graffrågor. Den här integreringen underlättar avancerade program som Knowledge Graphs, som stöder AI-driven sökning och datagenerering genom att strukturera fakta och begrepp som noder och deras sammanlänkningar som kanter.
Azure-kunder kan aktivera AGE-tillägget
Azure Database for PostgreSQL innehåller Apache AGE som ett tillägg.
De här stegen hjälper dig att aktivera tillägget i din flexibla serverinstans:
Åtkomstserverparametrar
I Azure-portalen går du till postgreSQL-instansen för flexibel server och väljer alternativet Serverparametrar.
Justera följande inställningar:
- azure.extensions: Sök efter och aktivera AGE bland de tillgängliga tilläggen i parameterfiltret.
- shared_preload_libraries: Sök efter och aktivera AGE i parameterfiltret.
Välj Spara för att tillämpa ändringarna. Servern startas om automatiskt för att aktivera AGE-tillägget.
Anmärkning
Om du inte kan aktivera shared_preload_libraries resulterar detta i följande fel när du försöker använda AGE-schemat i en fråga: "ERROR: unhandled cipher(cstring) function call error on first cipher query"
Aktivera AGE i PostgreSQL
När servern har startats om ansluter du till PostgreSQL-instansen med psql-tolken. Kör följande kommando för att aktivera AGE:
CREATE EXTENSION IF NOT EXISTS AGE CASCADE;
När du lyckas ser du CREATE EXTENSION som resultat av frågan.
Du kan också söka i katalogtabellen pg_extension för att bekräfta att AGE är aktiverad och kontrollera tilläggets version.
SELECT * FROM pg_extension WHERE extname = 'age';
Konfigurera schemasökvägar
AGE lägger till ett schema med namnet ag_catalog, som är viktigt för att hantera grafdata. Kontrollera att det här schemat ingår i sökvägen genom att köra:
SET search_path=ag_catalog,"$user",public;
För Python kan du ange schemasökvägen genom att köra:
import psycopg as pg
with pg.Connection.connect(con_str + " options='-c search_path=ag_catalog,\"$user\",public'") as con:
Det kan också konfigureras programmatiskt i ditt program.
Genom att följa dessa steg ser du till att PostgreSQL-instansen är korrekt konfigurerad för att använda AGE-tilläggets funktioner. AGE-tillägget innehåller avancerade grafdatabasfunktioner direkt i PostgreSQL. Med den här konfigurationen kan du sömlöst integrera graffrågor i dina program, låsa upp kraftfulla datarelationer och insikter. När AGE-tillägget är aktiverat och konfigurerat är du nu redo att utforska den fulla potentialen för grafanalys i PostgreSQL-miljön.
Viktiga tabeller i ag_catalog-schemat
- ag_graph
- ag_label
ag_graph
Den ag_graph tabellen i ag_catalog-schemat för Apache AGE fungerar som en lagringsplats för metadata relaterade till grafer som skapats i PostgreSQL via ag_catalog.create_graph funktionen. Mer specifikt innehåller den information som grafens namn och tillhörande namnområde, som fungerar som ett schema i PostgreSQL. Det här namnområdet organiserar grafens struktur och innehåller tabeller för lagring av hörn- och kantdata.
\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
I tabellen ag_label lagras metadata om etiketter som används i AGE-grafer. Den håller reda på dessa etiketter, associerar dem med respektive diagram och definierar om de representerar hörn eller kanter. Posten innehåller etikettens unika ID, den associerade grafen, eventuella index och den underliggande PostgreSQL-tabellen som lagrar 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