Software:Apache AGE: Difference between revisions

From HandWiki
(link)
 
(import)
 
Line 1: Line 1:
<!-- Please do not remove or change this AfD message until the discussion has been closed. -->
<!-- Once discussion is closed, please place on talk page: {{Old AfD multi|page=Apache age|date=20 June 2022|result='''keep'''}} -->
<!-- End of AfD message, feel free to edit beyond this point -->
{{DISPLAYTITLE:Apache AGE}}
{{Infobox software
{{Infobox software
| title = Apache AGE
| logo = Apache-age-logo.png
| author = Bitnine Global, Inc.
| developer = Apache Software Foundation
| developer = Apache Software Foundation
| latest release version = {{url|https://github.com/apache/age/releases/tag/v1.0.0-rc1|1.0.0}}
| released = {{Start date and age|2022|March|12}}
| latest release date = 21 April 2022; 2 months ago
| latest release version = 1.5.0
| repo = {{URL|https://github.com/apache/age|AGE Repository on Github}}
| latest release date = {{Start date and age|2024|01|08}}
| programming language = C
| repo = {{URL|https://github.com/apache/age}}
| operating system = Cross-platform
| programming language = C Programming Language
| genre = Graph database
| operating system = [[Software:Linux|Linux]]
| license = Apache License 2.0
| genre = Graph Database, [[NoSQL]]
| website = {{URL|https://age.apache.org}}
| license = [[Software:Apache License 2.0|Apache License 2.0]]
| website = {{URL|https://age.apache.org/}}
}}
}}


'''Apache AGE''' is an open-source project to develop a [[Software:PostgreSQL|PostgreSQL]] extension for handling graph queries written in the [[Cypher (query language)|Cypher query language]] . AGE is an abbreviation of ‘A Graph Extension’. AGE was first developed by Bitnine Global and then donated to Apache Software Foundation<ref>{{Cite web |title=Apache AGE Project Incubation Status - Apache Incubator |url=https://incubator.apache.org/projects/age.html |access-date=2022-06-20 |website=incubator.apache.org}}</ref> as an Apache Incubator project. In May 2022 Apache AGE graduated from incubation to become a Top-Level Project.<ref>{{Cite web |last=Foundation |first=The Apache Software |date=2022-06-08 |title=The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project |url=https://www.globenewswire.com/news-release/2022/06/08/2458799/17401/en/The-Apache-Software-Foundation-Announces-Apache-AGE-as-a-Top-Level-Project.html |access-date=2022-06-20 |website=GlobeNewswire News Room |language=en}}</ref><ref>{{Cite web |title=The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project – IT Business Net |url=https://itbusinessnet.com/2022/06/the-apache-software-foundation-announces-apache-age-as-a-top-level-project/ |access-date=2022-06-21 |language=en-US}}</ref>
AGE (A Graph Extension) is an [[Open-source software|open-source]] [[Software:PostgreSQL|PostgreSQL]] extension under the [[Organization:The Apache Software Foundation|Apache Software Foundation]], which equips [[Software:PostgreSQL|PostgreSQL]] with [[Graph database|graph database]] functionality, allowing it to serve as both a graph and [[Relational database|relational database]]. This extension supports the modeling, storage, and querying of [[Graph (abstract data type)|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.<ref>{{Cite web |date=2024-03-22 |title=Innovative AI Company AGEDB Technology Commences Trading on the TSX Venture Exchange |url=https://finance.yahoo.com/news/innovative-ai-company-agedb-technology-182000687.html |access-date=2024-04-09 |website=Yahoo Finance |language=en-US}}</ref><ref>{{Cite web |last= |date=2023-12-19 |title=ApacheAGE 1.4.0: Apache AGE is a PostgreSQL Extension that provides graph database functionality / PostgreSQL Extension Network |url=https://pgxn.org/dist/apacheage/1.4.0/ |access-date=2024-04-08 |website=PGXN: PostgreSQL Extension Network |language=en}}</ref><ref>{{Cite web |last=Clark |first=Lindsay |title=The Great Graph Database Debate |url=https://www.theregister.com/2023/03/06/great_graph_debate_monday/ |access-date=2024-04-09 |website=www.theregister.com |language=en}}</ref>


Apache AGE allows PostgreSQL users to use ANSI SQL along with graph queries to store and query property graph data consisting of nodes, edges, and their properties.<ref>{{Cite web |title=Overview — Apache AGE master documentation |url=https://age.apache.org/docs/master/intro/overview.html |access-date=2022-06-20 |website=age.apache.org}}</ref>
== History ==
Apache AGE was inspired by [https://bitnine.net/agensgraph/?ckattempt=1 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 [https://incubator.apache.org/ 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.<ref>{{Cite press release |last=Foundation |first=The Apache Software |date=2022-06-08 |title=The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project |url=https://www.globenewswire.com/news-release/2022/06/08/2458799/17401/en/The-Apache-Software-Foundation-Announces-Apache-AGE-as-a-Top-Level-Project.html |access-date=2024-04-08 |website=GlobeNewswire News Room |language=en}}</ref><ref>{{Cite web |date=2021-01-12 |title=What is Apache AGE? (#1 in our new ASF Incubator series) |url=https://www.thestack.technology/what-is-apache-age/ |access-date=2024-04-09 |website=The Stack |language=en}}</ref><ref>{{Cite thesis |title=Towards Storing 3D Model Graphs in Relational Databases |url=https://opus4.kobv.de/opus4-uni-passau/frontdoor/index/index/docId/1035 |publisher=Universität Passau |date=2021 |first=Matthias |last=Schmid}} p 12.</ref>


== Features ==
== Features ==


Apache AGE now runs on PostgreSQL 11 and will support PostgreSQL 12, 13 and 14 before the end of 2022.<ref>{{Cite web |title=Apache AGE - A Graph Extension for PostgreSQL |url=https://age.apache.org/ |access-date=2022-06-20 |website=age.apache.org}}</ref>
====== '''Graph Database Functionality''' ======
Enables graph data modeling, storage, and querying within PostgreSQL.<ref name=":0">{{Cite web |title=Postgres Pro Enterprise : Documentation: 15: F.3. apache_age |url=https://postgrespro.com/docs/enterprise/15/apache-age |access-date=2024-04-09 |website=postgrespro.com |language=en}}</ref>


* Supporting openCypher
==== '''OpenCypher Support''' ====
* Hybrid query combining SQL and openCypher
Offers support for the [[Cypher (query language)|openCypher query language]], allowing users to perform complex graph queries.<ref name=":0" />
* Indexes on nodes and edges’ properties
* Multi-graph querying
* Variable length edge traversal


==References==
==== '''Integration with Relational Data''' ====
{{Reflist}}
Seamlessly integrates graph data with existing relational data models, providing a hybrid database solution.<ref name=":0" />


[[Category:Apache Software Foundation]]
== Architecture ==
[[Category:PostgreSQL]]
Apache AGE extends [[Software:PostgreSQL|PostgreSQL]] by adding [[Graph database|graph database]] capabilities on top of its existing [[Relational model|relational model]]. This approach allows for the storage and management of [[Graph (abstract data type)|graph data]] (nodes, edges, and properties) within the framework of [[Software:PostgreSQL|PostgreSQL]], utilizing its features such as [[ACID]] transactions, [[Database index|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 (query language)|Cypher]] queries:<ref name=":1">{{Cite web |title=AGE - The Open Source PostgreSQL Extension For Graph Database Functionality |url=https://www.i-programmer.info/news/84-database/15530-age-the-open-source-postgresql-extension-for-graph-database-functionality.html |access-date=2024-04-09 |website=www.i-programmer.info}}</ref>
[[Category:Graph databases]]


{{Sourceattribution|Apache AGE|1}}
Cypher Query Parsing: Apache AGE parses [[Cypher (query language)|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.<ref name=":1" />
 
Query Tree Transformation: Once a [[Cypher (query language)|Cypher]] query is parsed, Apache AGE transforms it into a Query tree. This tree is then attached as a subquery node within the [[Software:PostgreSQL|PostgreSQL]] query processing architecture. This step is crucial for integrating graph queries with the relational data model.<ref name=":1" />
 
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 [[Software:PostgreSQL|PostgreSQL]] environment.<ref name=":1" />
 
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.<ref name=":1" />
 
Transaction / Cache Layer: [[Cypher (query language)|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.<ref name=":1" /><ref>{{Cite web |title=Apache AGE, Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL. |url=https://age.apache.org/ |access-date=2024-04-08 |website=age.apache.org |language=en}}</ref><ref>{{Cite web |title=The Internals of PostgreSQL |url=https://www.interdb.jp/pg/index.html |access-date=2024-04-08 |website=www.interdb.jp}}</ref>
 
== Usage ==
The extension is designed to be easy to install and use, requiring minimal configuration to add [[Graph database|graph database]] functionality to existing [[Software:PostgreSQL|PostgreSQL]] instances. Users can create graph objects, write graph queries using [[Cypher (query language)|openCypher]], and integrate graph analytics into their applications with the same tools and interfaces they use for [[Relational database|relational data]] in [[Software:PostgreSQL|PostgreSQL]].<ref name=":0" />
 
To facilitate integration into diverse development environments, Apache AGE supports [[Software:Driver|drivers]] in multiple [[Programming language|programming languages]], including [[Go (programming language)|Go]], [[Java (programming language)|Java]], [[Software:Node.js|Node.js]], [[Python (programming language)|Python]], and [[Rust (programming language)|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.<ref>{{Cite web |title=age/README.md at master · apache/age |url=https://github.com/apache/age/blob/master/README.md |access-date=2024-04-09 |website=GitHub |language=en}}</ref>
 
== 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 [[Organization:The Apache Software Foundation|Apache Software Foundation]], focusing on collaborative, consensus-based processes.
 
== License ==
Apache AGE is released under the [[Software:Apache License 2.0|Apache License 2.0]], a permissive [[Open-source software|open-source]] license that allows for broad use and modification.
 
== See Also ==
 
* [[Software:PostgreSQL|PostgreSQL]]
* [[Graph database]]
* [[Relational database]]
* [[Cypher (query language)]]
 
== References ==
<!-- Inline citations added to your article will automatically display here. See en.wikipedia.org/wiki/WP:REFB for instructions on how to add citations. -->
{{reflist}}
 
== External Links ==
 
* ''bitnine.net'' https://bitnine.net/agensgraph/?ckattempt=1. Retrieved 2024-04-08.
* "The Apache Incubator". [https://incubator.apache.org https://''incubator.apache.org'']. Retrieved 2024-04-08.
 
{{Apache Software Foundation}}
[[: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]]
{{Sourceattribution|Apache AGE}}

Latest revision as of 15:17, 12 April 2024

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; 10 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