Článek přečtěte do 5 min.

Grafové funkce Oracle Database (Oracle Graph) umožňují vývojářům ukládat a procházet vztahy mezi entitami. Oracle poskytuje podporu pro grafy vlastností i znalostí RDF a zjednodušuje proces modelování relačních dat jako grafových struktur. Interaktivní grafové dotazy mohou běžet přímo na grafová data v databázi nebo na vysoce výkonném serveru grafů v paměti. Oracle Graph Server and Client umožňuje vývojářům, analytikům a datovým vědcům používat grafy v rámci Oracle Database, zatímco Graph Studio v Oracle Autonomous Database odstraňuje překážky vstupu automatizací složitého nastavení a správy, bezproblémovou integrací dat a poskytováním podrobných informací. příklady kroků pro začátek.

Poslední čtvrtletní aktualizace Oracle Graph oznámila dostupnost Oracle Graph Server a Client 23.1. Tato verze zahrnovala knihovnu JavaScript pro vizualizaci grafů pro Property Graphs, která vývojářům umožňuje využívat mnoho výhod vizualizace grafů dostupných v Graph Studiu a nástroji pro vizualizaci grafů, ale v jejich vlastních aplikacích. Kromě toho oznámila podporu GraphML pro model Supervised Edge Wise a nové API pro Python a Java, které lze použít k importu místních souborů GraphSON v3.0 do databáze Oracle a vytvoření grafu z něj.

Oracle Graph Server and Client 23.2 je nyní k dispozici ke stažení pro použití s ​​databázemi v cloudu (k dispozici je obraz OCI Marketplace) a pro místní databáze. Toto vydání obsahuje řadu změn, včetně změn v aplikaci pro vizualizaci grafů, aktualizací PGQL a integrací Oracle Graph s dalšími službami. Aplikace pro vizualizaci grafů byla změněna, aby lépe odpovídala standardu SQL a podporovala grafy vlastností SQL, které jsou dostupné prostřednictvím Oracle Database 23c Free – Developer Release. Zahrnuje také další funkce prostřednictvím PGQL a aktualizace, které úzce sladí PGQL se standardem SQL. A konečně, Oracle Graph je nyní k dispozici prostřednictvím PyPi a má vylepšenou integraci s SQL Developer a OCI Data Science. Více o těchto změnách se dozvíte níže.

Aplikace pro vizualizaci grafů

Tato verze obsahuje některé změny v aplikaci Graph Visualization. Nejprve byla odstraněna rozevírací nabídka pro výběr grafu. Místo toho musí být název grafu uveden v klauzuli ON ve snaze sladit se se standardem SQL. Chcete-li zobrazit seznam dostupných grafů, byl rozevírací seznam nahrazen vyskakovacím oknem se seznamem dostupných grafů.

Seznam dostupných grafů

Oracle Database 23c Free – Developer Release, oznámená 3. dubna, zahrnuje podporu pro SQL Property Graphs. Vizualizační aplikace zjistí, zda jsou k dispozici grafy vlastností SQL, a pokud jsou, vytvoří kartu pro dotazy SQL/PGQ. Aplikace si také zapamatuje preferovanou kartu, aby bylo její používání snadnější.

Vizualizace

 

Aktualizace PGQL

Režimy trasy CHŮZE, TRAIL, JEDNODUCHÁ, ACYKLICKÁ

Aktualizace PGQL zahrnují podporu pro dotazování podél cest, aby bylo možné vyhnout se cyklům. Každý režim cesty (WALK, TRAIL, ACYCLIC a SIMPLE) jsou různé režimy cesty a lze je shrnout následovně:

  • WALK: výchozí režim cesty, kde nedochází k žádnému filtrování cest.
  • TRAIL: kde nejsou vráceny vazby cesty s opakovanými hranami.
  • ACYKLICKÉ: kde nejsou vráceny vazby cesty s opakovanými vrcholy.
  • JEDNODUCHÉ: kde vazby cesty s opakovanými vrcholy nejsou vráceny, pokud opakovaný vrchol není první a poslední v cestě.

Režimy cesty jsou syntakticky umístěny za ALL, ANY, ANY SHORTEST, SHORTEST k, ALL SHORTEST a volitelně za nimi následuje klíčové slovo PATH nebo PATHS. Viz následující příklad, který prochází grafem pro cesty z účtu 10039 zpět k sobě bez opakování vrcholů, s výjimkou vrcholu pro účet 10039:

VYBERTE LISTAGG(e.amount, ', ') JAKO částky OD POROVNÁNÍ VŠECH JEDNODUCHÝCH CEST (a:účet) -[:transakce]->+ (a) WHERE a.number = 10039
+--------------------------------+
| částky |
+--------------------------------+
| 1000,0, 1500,3, 9999,5, 9900,0 |
| 1000,0, 3000,7, 9999,5, 9900,0 |
+--------------------------------+

LATERAL poddotaz

V této verzi jsme přidali podporu pro poddotazy LATERAL, abychom umožnili předávání výstupních řádků jednoho dotazu do jiného. Můžete například použít ORDER BY / GROUP BY vedle jiného ORDER BY / GROUP BY.

/* Najděte 5 největších transakcí a vraťte číslo účtu, který obdržel nejvyšší počet takových velkých transakcí */
VYBERTE příjemce, COUNT(*) AS num_large_transactions
FROM LATERAL( SELECT m.number AS příjemce
FROM MATCH (n:account) -[e:transaction]-> (m:account)
ORDER BY e.amount DESC
LIMIT 5 )
GROUP BY příjemce
ORDER BY num_large_transactions DESC
LIMIT 1

Poznámka: Ve verzi 23.2 mohou klauzule FROM obsahovat pouze jeden poddotaz LATERAL nebo jednu či více klauzulí MATCH.

Dílčí dotaz GRAPH_TABLE

Abychom sladili PGQL se standardem SQL:2023, přidali jsme syntaxi GRAPH_TABLE pro PGQL, kterou lze použít i při dotazování na grafy na Graph Server (PGX). Pokud máme například graf s názvem „finanční_transakce“, můžeme napsat dotaz takto:

SELECT *
FROM GRAPH_TABLE ( finanční_transakce
MATCH ALL TRAIL (a IS účet) -[e IS transakce]->* (b IS účet)
/* volitelně JEDEN ŘÁDEK NA VERTEX/KROK klauzuli zde */
WHERE a.number= 8021 AND b. číslo= 1001
SLOUPCE ( LISTAGG(e.částka, ', ') JAKO částky )
)
ORDER BY částky
+----------------------------------------+
| částky |
+----------------------------------------+
| 1500,3 |
| 1500,3, 9999,5, 9900,0, 1000,0, 3000,7 |
| 3000,7 |
| 3000,7, 9999,5, 9900,0, 1000,0, 1500,3 |
+-----------------------------------------+

Pokud dotazy PGQL obsahují jeden nebo více poddotazů GRAPH_TABLE, musíte použít pouze přidruženou syntaxi, která je ve standardu SQL. Například MATCH (a:account) musí být nahrazen MATCH (účet IS) při použití poddotazů GRAPH_TABLE.

Další standardní zarovnání SQL

Toto vydání obsahuje varianty syntaxe, které jsou v souladu se standardem SQL, včetně následujících:

  • FETCH [ PRVNÍ / NEXT ] 10 [ ŘÁDEK / ŘÁDKY ] POUZE jako standardní forma LIMIT 10
  • v [ JE ] ZDROJ / CÍL [ OF ] e jako standardní forma is_source_of(e, v) / is_destination_of(e, v)
  • transakce e IS LABELED jako standardní forma has_label(e, ‚TRANSACTION‘)
  • MATCH TOP 10 SHORTEST 10 (n) –[e]->* (m) jako standardní forma MATCH TOP 10 SHORTEST (n) –[e]->* (m)
  • MATCH (n) –[e]->{1,4} (m) jako alternativa pro MATCH ALL (n) –[e]->{1,4} (m)
    • Klíčové slovo ALL se stalo nepovinným)
  • VERTEX_ID (v) / EDGE_ID (e) jako alternativa pro ID (v) / ID (e)
  • VERTEX_EQUAL (v1, v2) / EDGE_EQUAL (e1, e2) jako alternativa pro v1 = v2 / e1 = e2

 

Ukončení podpory schématu PG

Formát dat objektů PG (také známý jako schéma PG) byl zastaralý a nahrazen PG View a SQL Property Graph, počínaje 23c. Toto ukončení podpory zahrnuje jakákoli rozhraní API pro vytváření, dotazování, aktualizaci, odstraňování nebo jakoukoli jinou interakci s grafy uloženými v tabulkách VT$ a EG$. Navíc OPTIONS (PG_SCHEMA) již není výchozí v příkazech PGQL CREATE PROPERTY GRAPH. Klauzule OPTIONS musí být nyní explicitně specifikována pokaždé, když je pomocí PGQL vytvořen graf vlastností. Například:

VYTVOŘIT GRAF VLASTNOSTÍ BANK_GRAPH_PGQL
VERTEX TABLES (
BANK_ACCOUNTS
KEY ( ID )
LABEL účty VLASTNOSTI ( ID, name )
)
EDGE TABLES (
BANK_TRANSFERS
ZDROJOVÝ KLÍČ ( src_acct_id ) REFERENCE BANK_ACCOUNTS ACCOUNTS ACCOUNTS DESTINATION
BANK_COUNT REFERENCE_ACCOUNTS ACCOUNTS DESTINATION BANK EL
převádí VLASTNOSTI ( částka, popis, src_acct_id, dst_acct_id, txn_id )
) MOŽNOSTI (PG_VIEW);

Integrace

Spolu s touto verzí s potěšením oznamujeme integraci s několika dalšími službami.

Klient Python je nyní dostupný na PyPI.org. Python Package Index (PyPI) je oficiální softwarové úložiště pro komunitu Python. Tato integrace zjednodušuje instalaci pro uživatele pythonu tím, že instalace klienta je tak jednoduchá jako:

pip install oracle-graph-client

 

Došlo k vylepšení integrace SQL Developer v SQL Developer 23.1. Integrace grafů s SQL Developer nyní přidala podporu pro více příkazů v jednom listu PGQL a jeden příkaz lze zvýraznit, aby byl proveden.

Do OCI Data Science byl přidán úplný klient Oracle Graph Python. Zatímco PyPGX je k dispozici na OCI Data Science od verze 21.4, toto vydání přidává chybějící klientské komponenty, včetně klienta Graph Server, klienta Oracle Graph pro Graph Studio v autonomní databázi a knihovnu PGQL na RDBMS.

Další informace naleznete v dokumentaci Oracle ke grafu vlastností.

Zdroj: Oracle