ืึทืŸ AGE ืึทื“ื™ืฉืึทืŸ ืื™ื– ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึฟืึทืจ PostgreSQL ืฆื• ืงืจืึธื ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื’ืจืึทืคื™ืง

ืคึฟืึทืจ PostgreSQL ืคืืจื’ืขืœื™ื™ื’ื˜ AGE (AgensGraph-Extension) ืึทื“ื™ืฉืึทืŸ ืžื™ื˜ ืึธื ืคึฟืจืขื’ ืฉืคึผืจืึทืš ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ openCypher ืคึฟืึทืจ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ื˜ื™ื ื’ ืฉื˜ืขืœื˜ ืคื•ืŸ ื™ื ื˜ืขืจืงืึทื ืขืงื˜ื™ื“ ื›ื™ื™ืขืจืึทืจืงืึทืงืึทืœ ื“ืึทื˜ืŸ ื•ื•ืึธืก ืคืึธืจืขื ืึท ื’ืจืึทืคื™ืง. ืึทื ืฉื˜ืึธื˜ ืฉืคืืœื˜ืŸ ืื•ืŸ ืจืึธื•ื–, ื’ืจืึทืคื™ืง-ืึธืจื™ืขื ื˜ื™ื“ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื ื•ืฆืŸ ืึท ืกื˜ืจื•ืงื˜ื•ืจ ืขื ืœืขืš ืฆื• ืึท ื ืขืฅ - ื ืึธื•ื“ื–, ื–ื™ื™ืขืจ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ ื‘ืึทืฆื™ื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื ืึธื•ื“ื– ื–ืขื ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“. ืขืœื˜ืขืจ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ืœื™ื™ืกืึทื ืกื˜ ืื•ื ื˜ืขืจ ื“ื™ ืึทืคึผืึทื˜ืฉื™ 2.0 ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ื’ืขื‘ืจืื›ื˜ ืื•ื ื˜ืขืจ ื“ื™ ืึธืกืคึผื™ืกื™ื– ืคื•ืŸ ื“ื™ ืึทืคึผืึทื˜ืฉื™ ื•ื•ื™ืงื™ืคึผืขื“ื™ืข ื“ื•ืจืš ื‘ื™ื˜ื ื™ื ืข, ืื•ืŸ ื“ืขืจื•ื•ื™ื™ึทืœ ื›ืึทื•ื–ื“ ืื™ืŸ ื“ื™ ืึทืคึผืึทื˜ืฉื™ ื™ื ืงื•ื‘ืึทื˜ืึธืจ.

ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื”ืืœื˜ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื“ื™ DBMS ืึทื’ืขื ื˜ื’ืจืึทืฃื•ื•ืึธืก ืื™ื– ืื™ื– ืึท ืžืึทื“ืึทืคื™ื™ื“ ืคึผืึธืกื˜ื’ืจืขืกืงืœ ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคึฟืึทืจ ื’ืจืึทืคื™ืง ืคึผืจืึทืกืขืกื™ื ื’. ื“ืขืจ ืฉืœื™ืกืœ ื—ื™ืœื•ืง ืื™ื– ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ AGE ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืึทื“ื™ืฉืึทืŸ ื•ื•ืึธืก ืึทืจื‘ืขื˜ ื•ื•ื™ ืึทืŸ ืึทื“ื™ืฉืึทืŸ ืื™ื‘ืขืจ ื ืึธืจืžืึทืœ PostgreSQL ืจื™ืœื™ืกื™ื–. ืึทืจื•ื™ืกื’ืขื‘ืŸ ืœืขืฆื˜ื ืก ืืจื•ื™ืก ืึทืคึผืึทื˜ืฉื™ ืขืœื˜ืขืจ 0.2.0 ืฉื˜ื™ืฆื˜ PostgreSQL 11.

ืื™ืŸ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ AGE ืฉื˜ื™ืฆื˜ ืึทื–ืึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ ืกื™ืคืขืจ ืึธื ืคึฟืจืขื’ ืฉืคึผืจืึทืš ื•ื•ื™ ื ื™ืฆืŸ ื“ื™ "CREATE" ืื•ื™ืกื“ืจื•ืง ืฆื• ื“ืขืคื™ื ื™ืจืŸ ื ืึธื•ื“ื– ืื•ืŸ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ืขืŸ, ื“ื™ "MATCH" ืื•ื™ืกื“ืจื•ืง ืฆื• ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ืึทื˜ืŸ ืื™ืŸ ืึท ื’ืจืึทืคื™ืง ืœื•ื™ื˜ ืกืคึผืขืกื™ืคื™ืขื“ ื˜ื ืึธื™ื (WHERE), ืื™ืŸ ืึท ืกืคึผืขืกื™ืคื™ืขื“ ืกื“ืจ (ORDER BY) ืื•ืŸ ืžื™ื˜ ืฉื˜ืขืœืŸ ืจื™ืกื˜ืจื™ืงืฉืึทื ื– (SKIP, LIMIT). ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืฉื˜ืขืœืŸ ืื•ืžื’ืขืงืขืจื˜ ื“ื•ืจืš ื“ื™ ืึธื ืคึฟืจืขื’ ืื™ื– ื‘ืืฉืœืืกืŸ ืžื™ื˜ ื“ื™ "RETURN" ืื•ื™ืกื“ืจื•ืง. ื“ื™ "ืžื™ื˜" ืื•ื™ืกื“ืจื•ืง ืื™ื– ื‘ื ื™ืžืฆื ืฆื• ืงื™ื™ื˜ ืงื™ื™ืคืœ ืจื™ืงื•ื•ืขืก ืฆื•ื–ืึทืžืขืŸ.

ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืฉืึทืคึฟืŸ ืžืึทืœื˜ื™-ืžืึธื“ืขืœ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื•ื•ืึธืก ืคืึทืจื‘ื™ื ื“ืŸ ืžืึธื“ืขืœืก ืคึฟืึทืจ ื›ื™ื™ืขืจืึทืจืงืึทืงืึทืœ ืกื˜ืึธืจื™ื“ื–ืฉ ืคื•ืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื’ืจืึทืคื™ืง, ืึท ืจื™ืœื™ื™ืฉืึทื ืึทืœ ืžืึธื“ืขืœ ืื•ืŸ ืึท ืžืึธื“ืขืœ ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ื“ืึธืงื•ืžืขื ื˜ืŸ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜. ืขืก ืฉื˜ื™ืฆื˜ ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืงื•ื•ื™ืจื™ื– ื•ื•ืึธืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ื“ื™ SQL ืื•ืŸ ืกื™ื™ืคืขืจ ืฉืคึผืจืึทื›ืŸ.
ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืฉืึทืคึฟืŸ ื™ื ื“ืขืงืกื™ื– ืคึฟืึทืจ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื•ื•ืขืจื˜ื™ืกืขืก ืื•ืŸ ืขื“ื–ืฉืึทื– ืคื•ืŸ ื“ื™ ื’ืจืึทืคื™ืง.
ืึทืŸ ืขืงืกื˜ืขื ื“ืขื“ ื’ืึทื ื’ ืคื•ืŸ ืึทื’ื˜ื™ืคึผืข ื˜ื™ื™ืคึผืก ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืคึฟืึทืจ ื ื•ืฆืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื˜ื™ื™ืคึผืก ืคึฟืึทืจ ืขื“ื–ืฉืึทื–, ื•ื•ืขืจื˜ื™ืกืขืก ืื•ืŸ ืคึผืึทื˜ืก ืื™ืŸ ื“ื™ ื’ืจืึทืคื™ืง. ืึทื’ื’ืจืขื’ืึทื˜ืข ืื•ื™ืกื“ืจื•ืงืŸ ื–ืขื ืขืŸ ื ืึธืš ื ื™ืฉื˜ ื™ืžืคึผืœืึทืžืขื ืึทื“. ื‘ื ื™ืžืฆื ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืคืึทื ื’ืงืฉืึทื ื– ืึทืจื™ื™ึทื ื ืขืžืขืŸ id, start_id, end_id, ื˜ื™ืคึผ, ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ืงืึธืคึผ, ืœืขืฆื˜ืข, ืœืขื ื’, ื’ืจื™ื™ืก, startNode, endNode, Timestamp, toBoolean, toFloat, toInteger, ืื•ืŸ ืงืึธื•ืึทืœืขืกืก.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’