Software:Apache AGE: Difference between revisions
(link) |
Importwiki (talk | contribs) (import) |
||
Line 1: | Line 1: | ||
{{Infobox software | {{Infobox software | ||
| title = Apache AGE | |||
| logo = Apache-age-logo.png | |||
| author = Bitnine Global, Inc. | |||
| developer = Apache Software Foundation | | developer = Apache Software Foundation | ||
| | | released = {{Start date and age|2022|March|12}} | ||
| latest release date = | | latest release version = 1.5.0 | ||
| repo = {{URL|https://github.com/apache/age | | latest release date = {{Start date and age|2024|01|08}} | ||
| programming language = C | | repo = {{URL|https://github.com/apache/age}} | ||
| operating system = | | programming language = C Programming Language | ||
| genre = Graph | | 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/}} | |||
}} | }} | ||
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 | == 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 == | ||
====== '''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> | |||
==== '''OpenCypher Support''' ==== | |||
Offers support for the [[Cypher (query language)|openCypher query language]], allowing users to perform complex graph queries.<ref name=":0" /> | |||
== | ==== '''Integration with Relational Data''' ==== | ||
Seamlessly integrates graph data with existing relational data models, providing a hybrid database solution.<ref name=":0" /> | |||
[[ | == Architecture == | ||
[[ | 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> | ||
[[ | |||
{{ | 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 16:17, 12 April 2024
![]() | |
Original author(s) | Bitnine Global, Inc. |
---|---|
Developer(s) | Apache Software Foundation |
Initial release | March 12, 2022 |
Stable release | 1.5.0
/ January 8, 2024 |
Repository | github |
Written in | C Programming Language |
Operating system | Linux |
Type | Graph Database, NoSQL |
License | Apache License 2.0 |
Website | age |
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
- ↑ "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.
- ↑ "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/.
- ↑ Clark, Lindsay. "The Great Graph Database Debate" (in en). https://www.theregister.com/2023/03/06/great_graph_debate_monday/.
- ↑ 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.
- ↑ "What is Apache AGE? (#1 in our new ASF Incubator series)" (in en). 2021-01-12. https://www.thestack.technology/what-is-apache-age/.
- ↑ Schmid, Matthias (2021). Towards Storing 3D Model Graphs in Relational Databases (Thesis). Universität Passau. p 12.
- ↑ 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.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.
- ↑ "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/.
- ↑ "The Internals of PostgreSQL". https://www.interdb.jp/pg/index.html.
- ↑ "age/README.md at master · apache/age" (in en). https://github.com/apache/age/blob/master/README.md.
External Links
- bitnine.net https://bitnine.net/agensgraph/?ckattempt=1. Retrieved 2024-04-08.
- "The Apache Incubator". https://incubator.apache.org. Retrieved 2024-04-08.
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
![]() | Original source: https://en.wikipedia.org/wiki/Apache AGE.
Read more |