Software:AgensGraph

From HandWiki
AgensGraph
Powerful Multi-Model Graph Database[1]
Powerful Multi-Model Graph Database[1]
Developer(s)Bitnine Global Inc.
Initial release16 January 2017;
8 years ago
 (2017-01-16)[2]
Stable release
2.14.1
Repositorygithub.com/bitnine-oss/agensgraph
Written inC
Operating systemCross-platform
TypeGraph database
LicenseApache License 2.0
Websitebitnine.net

AgensGraph is an open-source graph database developed by Bitnine Global Inc., a South Korean company specializing in graph database solutions. AgensGraph is PostgreSQL-derived [3] [4] database. It combines RDB and GDB features and support all the extension which are supported by PostgreSQL.

Version 1.0.0 was released in January 2017.[2]

From 2017 onwards, AgensGraph community has consistently released new versions with enhancements.[5] These updates included performance improvements, new features (like query language extensions), and better integration with other tools.

Latest community version of AgensGraph is v2.14.1 which was released in January 2025.

AgensGraph Community Edition is released under the Apache 2 License. The Enterprise Edition requires a commercial license.

Features

AgensGraph uniquely blends SQL and Cypher queries, enabling seamless interaction with both relational and graph data in a single query.

  • It supports a multi-model approach, handling property graphs, relational data, and JSON documents, simplifying diverse data management.
  • Hierarchical label organization via "Label Inheritance" structures large graph datasets efficiently.
  • Property indexing on vertices and edges ensures fast queries, while constraints maintain data integrity.
  • It supports relational[6] and graph data triggers.[7]
  • ACID transactions guarantee data reliability.
  • It support SQL syntax, Cypher syntax and also hybrid of both queries.[8]

Storage and Data Structure

AgensGraph's fundamental graph components are nodes, edges that establish connections between nodes, and the properties that characterize each node and edge.

AgensGraph utilizes relational tables to persist graph data.[9] Each node and edge type is represented by a dedicated table. Dynamic node properties are handled through JSON object storage, and B-tree indexes are automatically generated to optimize query performance.[10]

Query Syntax

AgensGraph boasts comprehensive support for two powerful query languages: SQL and Cypher. This dual-language capability allows users to leverage the strengths of both relational and graph database paradigms.

For relational data manipulation, AgensGraph adheres to standard SQL syntax, ensuring compatibility with existing applications and tools. When navigating complex relationships and patterns within graph data, users can seamlessly switch to Cypher, a declarative graph query language designed for intuitive and efficient traversal.

SELECT p.first_name, p.last_name, ct.name
FROM person p, city c
WHERE nationality(c.name) = 'EU'

AgensGraph's Cypher implementation aligns closely with the openCypher specification, facilitating interoperability and ease of use for developers familiar with other graph databases.[11]

MATCH (p:Person)-[:LIVES_IN]->(c:City), (p:Person)-[:NATIONAL_OF]->(EUCountry)
RETURN p.first_name, p.last_name, c.name, c.state

In AgensGraph you can also write hybrid queries to increase performance, better data integration.[8] There are two ways to write hybrid queries.

1. Cypher in SQL

SELECT p.first_name, p.last_name, ct.name
FROM city c,(MATCH (p:Person) RETURN p) as person, 
WHERE nationality(c.name) = 'EU'

2. SQL in Cypher

MATCH (p:Person)
WHERE p.city IN (SELECT city FROM countries WHERE nationality(city) = 'EU')
RETURN properties(p) AS p;

Both ISO standards GQL[12] and SQL/PGQ[13] (Published in 2023 and 2024 respectively) support hybrid query syntax which combines graph and relational model.[14]

Performance

In term of transaction processing, complex aggregate queries and data import, AgensGraph is 3x to 25x faster than ArangoDB and OrientDB.[15]

Because AgensGraph is derived from PostgreSQL, its performance can be improved with PostgreSQL performance recommendation [16] and using Graph Property Index.

Release history

Release history Collapse
Release First release[5] Latest minor version Latest release End of
Support Date
1.0 2017-01-16 1.0.0 N/A 2020-01-16
1.1 2017-03-16 1.1.0 N/A 2021-11-11
1.2 2017-08-22 1.2.1 2018-08-21 2021-11-11
1.3 2017-12-14 1.3.2 2018-09-06 2022-11-10
2.0 2018-09-18 2.0.0 N/A 2022-11-10
2.1 2019-01-17 2.1.3 2020-01-14 2022-11-10
2.5 2021-10-06 2.5.0 N/A 2023-11-09
2.12 2022-01-08 2.12.1 2023-01-11 2024-11-21
2.13 2022-11-10 2.13.1 2023-01-11 2025-11-13
2.14 2025-01-16 2.14.1 N/A 2026-11-12

{{{2}}}


Related project

Because of Graph database popularity, An AgensGraph extension was proposed to The Apache Software Foundation.[17] Proposal was accepted and moved to incubation in April 2020.

After two more years of development in June 2022 Apache® announced Apache AGE Template:TM as Top Level Project as graph extension for PostgreSQL database.[18][19]

See also

References

  1. "AgensGraph, a transactional graph database based on PostgreSQL". https://github.com/bitnine-oss/agensgraph/. 
  2. Jump up to: 2.0 2.1 "Release Announcement AgensGraph 1.0.0". January 16, 2017. https://bitnine.tistory.com/263/. 
  3. "Software Catalogue - PostgreSQL-derived servers". 2025-02-18. https://www.postgresql.org/download/products/8/. 
  4. "AgensGraph - PostgreSQL wiki". 2025-02-18. https://wiki.postgresql.org/wiki/AgensGraph. 
  5. Jump up to: 5.0 5.1 "Releases · bitnine-oss/agensgraph". January 26, 2022. https://github.com/bitnine-oss/agensgraph/releases. 
  6. Ceri, Stefano; Bernasconi, Anna; Gagliardi, Alessia; Martinenghi, Davide; Bellomarini, Luigi; Magnanimi, Davide (9 June 2024). "PG-Triggers: Triggers for Property Graphs". Companion of the 2024 International Conference on Management of Data. pp. 373–385. doi:10.1145/3626246.3653386. ISBN 979-8-4007-0422-2. 
  7. "Release AgensGraph v2.12.1 · bitnine-oss/agensgraph" (in en). https://github.com/bitnine-oss/agensgraph/releases/tag/v2.12.1. 
  8. Jump up to: 8.0 8.1 Guo, Qingsong; Zhang, Chao; Zhang, Shuxun; Lu, Jiaheng (1 March 2024). "Multi-model query languages: taming the variety of big data" (in en). Distributed and Parallel Databases 42 (1): 31–71. doi:10.1007/s10619-023-07433-1. ISSN 1573-7578. https://link.springer.com/article/10.1007/s10619-023-07433-1. Retrieved 10 March 2025. 
  9. Bimonte, Sandro; Gallinucci, Enrico; Marcel, Patrick; Rizzi, Stefano (1 March 2023). "Logical design of multi-model data warehouses". Knowledge and Information Systems 65 (3): 1067–1103. doi:10.1007/s10115-022-01788-0. 
  10. Angles, Renzo; Bonifati, Angela; Dumbrava, Stefania; Fletcher, George; Green, Alastair; Hidders, Jan; Li, Bei; Libkin, Leonid et al. (20 June 2023). "PG-Schema: Schemas for Property Graphs". Proc. ACM Manag. Data 1 (2): 198:1–198:25. doi:10.1145/3589778. 
  11. "Current Projects · openCypher". https://opencypher.org/projects/. 
  12. "ISO/IEC 39075:2024" (in en). https://www.iso.org/standard/76120.html. 
  13. "ISO/IEC 9075-16:2023" (in en). https://www.iso.org/standard/79473.html. 
  14. Deutsch, Alin; Francis, Nadime; Green, Alastair; Hare, Keith; Li, Bei; Libkin, Leonid; Lindaaker, Tobias; Marsault, Victor et al. (11 June 2022). "Graph Pattern Matching in GQL and SQL/PGQ". Proceedings of the 2022 International Conference on Management of Data. pp. 2246–2258. doi:10.1145/3514221.3526057. ISBN 978-1-4503-9249-5. https://www.pure.ed.ac.uk/ws/files/260606327/Graph_Pattern_Matching_DEUTSCH_DOA27012022_AFV.pdf. 
  15. Zhang, Chao; Lu, Jiaheng (1 March 2021). "Holistic evaluation in multi-model databases benchmarking" (in en). Distributed and Parallel Databases 39 (1): 1–33. doi:10.1007/s10619-019-07279-6. ISSN 1573-7578. https://link.springer.com/article/10.1007/s10619-019-07279-6. Retrieved 7 March 2025. 
  16. "Chapter 14. Performance Tips" (in en). 20 February 2025. https://www.postgresql.org/docs/current/performance-tips.html. 
  17. "AGEProposal - INCUBATOR - Apache Software Foundation". https://cwiki.apache.org/confluence/display/INCUBATOR/AGEProposal. 
  18. "The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project". 8 June 2022. https://news.apache.org/foundation/entry/the-apache-software-foundation-announces83. 
  19. "Apache AGE Graph Database - Apache AGE". https://age.apache.org/. 

External links