What is Apache AGE? (#1 in our emerging open source series).
SQL + openCypher queries...
The Apache Software Foundation incubator is the primary entry path into ASF for new open source projects and codebases. This year, The Stack will be sticking a journalistic paw into the incubator to see what kinds of goodness are emerging in this corner of the open source world. Up first is Apache AGE... So, what is Apache AGE?
Apache AGE aims to tie together the “graph database” with the relational database, so users can query their data with standard ANSI SQL or the Graph query language openCypher. The goal of the project is to create single storage that can handle both relational and graph model data.
A flying recap: a graph database treats the relationships between data as equally important to the data itself. Graph databases are used for everything from real-time routing of parcel deliveries, to content metadata management. Relational databases comprise data items with pre-defined relationships between them; organised as tables with columns and rows
What is Apache AGE and where does it fit in to this?
Apache AGE is an extension of relational database management system PostgreSQL that provides an implementation of Cypher, a query language similar to SQL, but optimised for graphs. (Cypher is used by a range of industry products including SAP HANA Graph and Redis graph).
In plain English, the Apache AGE team are trying to create a cleverly flexible new database system that allows users to see previously unspotted relationships in their data. The commiters to the nascent open source project think this could potentially lead to "advancements in AI, fraud detection, health care, and many other fields."
Apache AGE was first born out of a fork of PostgreSQL 10 called AgensGraph at software company Bitnine Global Inc., led by developer Junseok Yang (who is now at Samsung Electronics). One contributor to the open source code base is developer Josh Innis. He told The Stack: "My previous job was in the IT department at a healthcare company that primarily helps administer the government’s Medicaid program.
"The systems there all use relational databases to store their data. Unfortunately, most healthcare data does not fit well into the relational model, and most of my colleagues’ and my time was spent troubleshooting the SQL queries that handle the data.
He added: "When I learned about the cypher query language that AGE uses, I realized that it will create a data model that will make these healthcare systems less error prone, simpler to understand, and easier to adapt to the changing and expanding needs of the healthcare environment. Excited for the opportunity, I jumped onboard."
As Apache AGE's committers note, by graph data is a suitable form to apply machine learning. By creating a multi-model database designed to be simple and user-friendly, which supports the relational and graph data model at the same time with SQL queries and Cypher queries integrated into a single query in AGE, it could open up real doors.