Frequently Asked Questions


Thank you for visiting our FAQ page. If you can't find the question you're looking for, please leave your comments or questions in the issues or discussions section on the Apache AGE GitHub page. We look forward to hearing from you.



Q 1 : What is the graph database, and how is it different from the relational database?

A graph database is a specialized type of database designed for storing, managing, and querying highly interconnected data more efficiently than traditional databases. Unlike relational databases that store data in tables with rows and columns, graph databases use graph structures comprising nodes (entities), edges (relationships), and properties (attributes) to represent and store data.

The main differences between graph databases and relational databases include:

Data Structure: Graph databases utilize nodes and edges to represent entities and their relationships, facilitating direct storage of relationship data. Relational databases use tables, where relationships are inferred through joins.

Query Performance: Graph databases excel in scenarios requiring extensive traversal of relationships, making them ideal for complex networks like social networks, recommendation engines, and more. Relational databases can struggle with performance as the complexity and volume of relationships increase.

Schema Flexibility: Graph databases often offer more flexibility with schema-less designs, allowing easier modification of the data model. Relational databases typically require a predefined schema, making alterations more challenging.

Apache AGE extends PostgreSQL, enabling it to function as a graph database. This allows users to leverage graph database capabilities within a familiar relational database environment, offering the best of both worlds: the robustness and ACID compliance of PostgreSQL with the flexibility and relationship-handling prowess of graph databases.

Q 2 : What is the best way for someone to get started with Apache AGE? Are there any recommended resources or tutorials which you could recommend for a comprehensive introduction?

The best way to start with Apache AGE is by exploring the official documentation on the Apache AGE website.

For a comprehensive introduction, visit the Apache AGE documentation and the GitHub repository for in-depth guides, examples, and community resources.

Q 3 : How does the integration of Apache AGE with PostgreSQL benefit developers and organizations?

The integration of Apache AGE with PostgreSQL offers developers and organizations the ability to manage both graph and relational data within a single, powerful database system.

This facilitates complex data analyses and relationships with the efficiency and reliability of PostgreSQL.

Q 4 : Is Apache AGE compatible with all PostgreSQL versions?
Apache AGE is compatible with PostgreSQL versions up to 16. Please check the releases on GitHub.
Q 5 : What is the reason for people to use Apache AGE when there are other graph databases?

People use Apache AGE for its seamless integration with PostgreSQL, allowing them to leverage graph database capabilities alongside relational data within a familiar SQL environment, without the need to adopt a separate graph database system.

Q 6 : What query language does Apache AGE use for graph operations?
openCypher
Q 7 : Do I need to pay to use Apache AGE?

Apache AGE is an open source project and free to use.

But there are some vendors providing commercial support such as AGEDB in Canada.

Q 8 : How can I install Apache AGE?
Source codes and binaries are available atGitHub.Docker Hub. Please refer tothe official AGE manual for more details.
Q 9 : How does Apache AGE stand out compared to other similar tools?

Apache AGE stands out by integrating graph database capabilities directly into PostgreSQL, allowing users to manage graph and relational data within the same database system.

This unique approach offers the robustness, scalability, and familiarity of PostgreSQL while enabling complex graph queries and analyses without the need for separate graph database solutions.

Q 10 : Could you provide instances of industries wherein Apache AGE could be utilized?

pache AGE is beneficial in industries like social networking, for analyzing relationships; finance, for fraud detection and customer insights; healthcare, for patient data and relationships; telecommunications, for network infrastructure management; and logistics, for route optimization and supply chain analysis.

Q 11 : How often is Apache AGE updated, and how can I stay informed about new releases?

Apache AGE updates vary based on development progress and community contributions.

To stay informed about new releases, follow the Apache AGE project on GitHub, subscribe to their mailing list, or join their community forums.

Q 12 : Is there a community or support forum for Apache AGE?
Q 13 : How can I contribute to the development of Apache AGE?
Q 14 : Is there any ongoing research or development related to features or capabilities of Apache AGE?

Yes, being an open-source project, Apache AGE benefits from a vibrant community of dedicated developers who are passionate about using their skills to improve its features and capabilities. This collaborative environment fosters continuous research and development efforts focused on enhancing the functionality of Apache AGE and addressing emerging needs in the GDB field. With contributors from various backgrounds using their expertise to innovate and improve the platform, Apache AGE continuously evolves itself, granting users access to cutting-edge innovations and expanded functionalities for graph-based data management and analysis.

Q 15 : Does Apache AGE support ACID(Atomicity, Consistency, Isolation, and Durability) transactions?

Yes, Apache AGE supports ACID transactions for Graph, Relational and JSON Document.

Q 16 : Are there any limitations to the size or scale of graphs that Apache AGE can handle?

Yes. The capacity for both vertices and edges is 281474976710655. This limitation only applies to one particular graph. AGE allows creating multiple graphs.

Q 17 : How does Apache AGE handle indexing and optimization for graph queries?

AGE uses PostrgreSQL's indexes. It stores properties of elements (vertices and edges) as a custom type called "agtype". The structure of properties is comparable to JSON objects. Therefore, properties can be indexed in a similar way a "JSONB" column is indexed. For example, BTree, Hash and GIN etc. indexes are supported.

Q 18 : Can Apache AGE be used alongside other PostgreSQL extensions?

Yes. AGE uses its own namespace for tables, functions, and other database objects to avoid potential conflicts. Cypher queries are invoked by the "cypher()" function which returns a set of rows. The column values of those rows are usually in "agtype". AGE provides the functionality to cast "agtype" to a PostgreSQL type in most cases. So, AGE can be used together with other extensions.

Q 19 : Does Apache AGE provide support for data replication and synchronization in distributed environments?

Apache AGE has been tested with Citus. Due to inherited tables not being supported by Citus, Apache AGE tables cannot be distributed with Citus yet. However, it may be supported in future.

Q 20 : Are there any known interoperability issues between Apache AGE and other PostgreSQL extensions or tools?

No interoperability issue has been reported so far.

Q 21 : How does Apache AGE handle schema-less data or semi-structured data?

Apache AGE follows labeled-property graph model. Each vertex\edge stores its properties in a JSON-like object. As long as, your data can be prepresented in JSON object, Apache AGE can handle it.

Q 22 : Does Apache AGE support data encryption at rest and in transit?

Since Apache AGE is a PostgreSQL extension, a network connection to AGE and its internal storage is entirely based on PostgreSQL. Therefore, Postgres' encryption mechanism applies to AGE.

Q 23 : Are there any known limitations or trade-offs when using Apache AGE compared to other graph databases?

Apache AGE uses relational models under the hood. Some limitations of relation model applies to AGE, for example large amount of table joins. Though, in some cases, AGE implements custom table scan node to gain performance.