Software:Apache AGE

From HandWiki
Apache AGE
Apache-age-logo.png
Original author(s)Bitnine Global, Inc.
Developer(s)Apache Software Foundation
Initial releaseMarch 12, 2022; 2 years ago (2022-03-12)
Stable release
1.5.0 / January 8, 2024; 3 months ago (2024-01-08)
Repositorygithub.com/apache/age
Written inC Programming Language
Operating systemLinux
TypeGraph Database, NoSQL
LicenseApache License 2.0
Websiteage.apache.org

AGE (A Graph Extension) is an open-source PostgreSQL extension under the Apache Software Foundation, which equips PostgreSQL with graph database functionality, allowing it to serve as both a graph and relational database. This extension supports the modeling, storage, and querying of graph data within the PostgreSQL ecosystem, thereby enabling complex graph analytics and queries on existing databases. With AGE, users and developers gain the flexibility to manage relational and graph data models without the need for a separate graph database.[1][2][3]

History

Apache AGE was inspired by AgensGraph, a multi-model database that is itself a fork of PostgreSQL, developed by Bitnine Global. The project was officially donated to the Apache Software Foundation and entered incubation in April 2020. It graduated to a Top-Level Project in May 2022, signifying its maturity and the community's confidence in its governance and sustainability.[4][5][6]

Features

Graph Database Functionality

Enables graph data modeling, storage, and querying within PostgreSQL.[7]

OpenCypher Support

Offers support for the openCypher query language, allowing users to perform complex graph queries.[7]

Integration with Relational Data

Seamlessly integrates graph data with existing relational data models, providing a hybrid database solution.[7]

Architecture

Apache AGE extends PostgreSQL by adding graph database capabilities on top of its existing relational model. This approach allows for the storage and management of graph data (nodes, edges, and properties) within the framework of PostgreSQL, utilizing its features such as ACID transactions, indexing, and extensions. The architecture of Apache AGE is designed to seamlessly integrate graph operations with PostgreSQL's relational model, offering a hybrid database solution. Here's a breakdown of how Apache AGE processes Cypher queries:[8]

Cypher Query Parsing: Apache AGE parses Cypher queries embedded in cypher function calls. At this stage, it implements the grammar for openCypher, allowing users to input queries in a syntax that is familiar to those used in other graph databases.[8]

Query Tree Transformation: Once a Cypher query is parsed, Apache AGE transforms it into a Query tree. This tree is then attached as a subquery node within the PostgreSQL query processing architecture. This step is crucial for integrating graph queries with the relational data model.[8]

Planner / Optimizer: Apache AGE understands various graph operations and produces plan nodes that are specifically related to graph operations. This capability ensures that graph-related tasks are handled efficiently within the PostgreSQL environment.[8]

Executor: The plan nodes related to graph operations are executed, allowing for the manipulation and querying of graph data. This process uses PostgreSQL's execution engine.[8]

Transaction / Cache Layer: Cypher queries in Apache AGE work seamlessly with PostgreSQL's existing fully transactional system (ACID). This integration ensures that graph operations benefit from the same level of data integrity, consistency, isolation, and durability that PostgreSQL provides for relational data.[8][9][10]

Usage

The extension is designed to be easy to install and use, requiring minimal configuration to add graph database functionality to existing PostgreSQL instances. Users can create graph objects, write graph queries using openCypher, and integrate graph analytics into their applications with the same tools and interfaces they use for relational data in PostgreSQL.[7]

To facilitate integration into diverse development environments, Apache AGE supports drivers in multiple programming languages, including Go, Java, Node.js, Python, and Rust. This wide range of language support enables developers to work with Apache AGE in their preferred programming environments, making it accessible for a variety of projects and applications.[11]

Development and Contributions

Apache AGE is an open-source project, welcoming contributions from the global developer community. The project's development is guided by the principles of the Apache Software Foundation, focusing on collaborative, consensus-based processes.

License

Apache AGE is released under the Apache License 2.0, a permissive open-source license that allows for broad use and modification.

See Also

References

  1. "Innovative AI Company AGEDB Technology Commences Trading on the TSX Venture Exchange" (in en-US). 2024-03-22. https://finance.yahoo.com/news/innovative-ai-company-agedb-technology-182000687.html. 
  2. "ApacheAGE 1.4.0: Apache AGE is a PostgreSQL Extension that provides graph database functionality / PostgreSQL Extension Network" (in en). 2023-12-19. https://pgxn.org/dist/apacheage/1.4.0/. 
  3. Clark, Lindsay. "The Great Graph Database Debate" (in en). https://www.theregister.com/2023/03/06/great_graph_debate_monday/. 
  4. Foundation, The Apache Software (2022-06-08). "The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project". GlobeNewswire News Room (Press release). Retrieved 2024-04-08.
  5. "What is Apache AGE? (#1 in our new ASF Incubator series)" (in en). 2021-01-12. https://www.thestack.technology/what-is-apache-age/. 
  6. Schmid, Matthias (2021). Towards Storing 3D Model Graphs in Relational Databases (Thesis). Universität Passau. p 12.
  7. 7.0 7.1 7.2 7.3 "Postgres Pro Enterprise : Documentation: 15: F.3. apache_age" (in en). https://postgrespro.com/docs/enterprise/15/apache-age. 
  8. 8.0 8.1 8.2 8.3 8.4 8.5 "AGE - The Open Source PostgreSQL Extension For Graph Database Functionality". https://www.i-programmer.info/news/84-database/15530-age-the-open-source-postgresql-extension-for-graph-database-functionality.html. 
  9. "Apache AGE, Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL." (in en). https://age.apache.org/. 
  10. "The Internals of PostgreSQL". https://www.interdb.jp/pg/index.html. 
  11. "age/README.md at master · apache/age" (in en). https://github.com/apache/age/blob/master/README.md. 

External Links

Category:Apache Software Foundation Category:Graph databases Category:PostgreSQL Category:Relational database management systems Category:Apache Software Foundation projects Category:Free database management systems Category:Structured storage Category:NoSQL Category:Big data products