Для PostgreSQL ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ AGE для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π³Ρ€Π°Ρ„Π°

Для PostgreSQL ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ AGE (AgensGraph-Extension) с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ языка запросов openCypher для манипуляций с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ связанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой иСрархичСских Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Π³Ρ€Π°Ρ„. ВмСсто столбцов ΠΈ строк Π³Ρ€Π°Ρ„ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹Π΅ Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ структуру, ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ Π½Π° ΡΠ΅Ρ‚ΡŒ — Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡƒΠ·Π»Ρ‹, ΠΈΡ… свойства ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ. AGE распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Bitnine ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡ€ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π€ΠΎΠ½Π΄Π° Apache ΠΈ Π² настоящСС врСмя ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½ Π² ΠΈΠ½ΠΊΡƒΠ±Π°Ρ‚ΠΎΡ€ Apache.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π‘Π£Π‘Π” AgensGraph, которая прСдставляСт собой ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ PostgreSQL. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ являСтся рСализация AGE Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ дополнСния, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ надстройки Π½Π°Π΄ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌΠΈ выпусками PostgreSQL. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° днях выпуск Apache AGE 0.2.0 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с PostgreSQL 11.

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии AGE ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности языка запросов Cypher, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ выраТСния «CREATE» для опрСдСлСния ΡƒΠ·Π»ΠΎΠ² ΠΈ связСй, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «MATCH» для поиска Π΄Π°Π½Π½Ρ‹Ρ… Π² Π³Ρ€Π°Ρ„Π΅ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ условиям (WHERE), Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ порядкС (ORDER BY) ΠΈ с выставлСнными ограничСниями (SKIP, LIMIT). Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ запросом, опрСдСляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ выраТСния «RETURN». Для объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ доступно Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «WITH».

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ созданиС ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π‘Π”, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»ΠΈ иСрархичСского хранСния свойств Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π³Ρ€Π°Ρ„Π°, Ρ€Π΅Π»ΡΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ модСль ΠΈ модСль хранСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… элСмСнты языков SQL ΠΈ Cypher.
Доступно созданиС индСксов для свойств Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ Ρ€Ρ‘Π±Π΅Ρ€ Π³Ρ€Π°Ρ„Π°.
Для использования ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ² Agtype, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏΡ‹ для Ρ€Ρ‘Π±Π΅Ρ€, Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ ΠΏΡƒΡ‚Π΅ΠΉ Π² Π³Ρ€Π°Ρ„Π΅. АгрСгатныС выраТСния ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹. Π‘Ρ€Π΅Π΄ΠΈ доступных спСциализированных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: id, start_id, end_id, type, properties, head, last, length, size, startNode, endNode, timestamp, toBoolean, toFloat, toInteger ΠΈ coalesce.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru