Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions pages/memgraph-zero.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ title: Memgraph Zero
description: Zero ETL. Query data where it lives.
---

import { Callout } from 'nextra/components'
import MemGQLAnimation from '/components/animations/memgql'

# Memgraph Zero
Expand All @@ -21,6 +22,11 @@ intelligence without the engineering tax of maintaining another data pipeline.

<MemGQLAnimation />

<Callout type="info">
Help shape the Memgraph Zero roadmap — [share your feedback in our short
survey](https://forms.gle/2MLfWp24uwbJpsey8).
</Callout>

## Powered by MemGQL

The first component of Memgraph Zero is **[MemGQL](/memgraph-zero/memgql)**, a
Expand Down
35 changes: 35 additions & 0 deletions pages/memgraph-zero/memgql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ title: MemGQL
description: MemGQL documentation and reference.
---

import { SocialCards } from '/components/social-card/SocialCards';
import { SocialCard } from '/components/social-card/SocialCard';
import Discord from '/components/icons/Discord';
import GitHub from '/components/icons/GitHub';

# MemGQL

MemGQL is a federated GQL ([ISO/IEC
Expand Down Expand Up @@ -30,5 +35,35 @@ details. Review the [Licensing](/memgraph-zero/memgql/licensing) information for
of use, and check the [Changelog](/memgraph-zero/memgql/changelog) to stay updated on
the latest improvements.

## Questions & Feedback

Have questions or want to share feedback? We'd love to hear from you!

<SocialCards>
<SocialCard
icon={<Discord />}
title="Discord"
body="Chat with the community"
href="https://discord.gg/memgraph"
is_external={true}
/>
<SocialCard
icon={<GitHub />}
title="GitHub Issues"
body="Report bugs or request features"
href="https://github.com/memgraph/memgraph/issues"
is_external={true}
/>
<SocialCard
icon={<GitHub />}
title="GitHub Discussions"
body="Start longer form discussions"
href="https://github.com/memgraph/memgraph/discussions"
is_external={true}
/>
</SocialCards>

## MemGQL Enterprise

Interested in MemGQL Enterprise? [Get in
touch](https://memgraph.com/contact-us) with our team to learn more.
11 changes: 11 additions & 0 deletions pages/memgraph-zero/memgql/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ description: MemGQL release notes

# MemGQL Changelog

## MemGQL v0.4.0 - May 7th, 2026

- Added "Federated GQL Across Heterogeneous Backends" use case showing graph queries over ClickHouse and PostgreSQL
- Added vector search capabilities (only Memgraph backend)
- Fixed `SET DEFAULT CONNECTION` handling
- Fixed flaky `USE graph` behavior and corrected `USE graph` routing
- Fixed multi node and edge SQL `INSERT`
- Fixed connection handling
- Improved Trino startup wait
- Fixed all tests under `run_tests.sh`

## MemGQL v0.3.0 - April 26th, 2026

- Added Apache Pinot connector support, including `CONNECTION_TYPE=pinot` single mode and multi-connection mode
Expand Down
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/complete.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ Save the following as `docker-compose.yml`:
```yaml
services:
memgql:
image: memgraph/memgql:0.3.0
image: memgraph/memgql:0.4.0
container_name: memgql
ports:
- "7688:7688"
Expand Down
2 changes: 2 additions & 0 deletions pages/memgraph-zero/memgql/connect/_meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ export default {
"memgraph": "to Memgraph",
"neo4j": "to Neo4j",
"postgres": "to PostgreSQL",
"mysql": "to MySQL",
"pinot": "to Pinot",
}
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/clickhouse.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -95,4 +95,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#clickhouse-clickhouse).
For environment variables, see [Reference](../reference.mdx#clickhouse-clickhouse).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/duckdb.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#duckdb-duckdb).
For environment variables, see [Reference](../reference.mdx#duckdb-duckdb).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/iceberg.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#iceberg-iceberg).
For environment variables, see [Reference](../reference.mdx#iceberg-iceberg).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/memgraph.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#memgraph-memgraph-memgraph-gql).
For environment variables, see [Reference](../reference.mdx#memgraph-memgraph-memgraph-gql).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/mysql.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,4 @@ MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
- Aliased single-table `DELETE` is emitted as the multi-table form
`DELETE alias FROM table AS alias WHERE …` (MySQL 8.0+ requirement).

For environment variables, see [Configuration](../config.mdx#mysql-mysql).
For environment variables, see [Reference](../reference.mdx#mysql-mysql).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/neo4j.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#neo4j-neo4j-neo4j-gql).
For environment variables, see [Reference](../reference.mdx#neo4j-neo4j-neo4j-gql).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/pinot.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#apache-pinot-pinot).
For environment variables, see [Reference](../reference.mdx#apache-pinot-pinot).
2 changes: 1 addition & 1 deletion pages/memgraph-zero/memgql/connect/postgres.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,4 @@ MATCH (p:Person)-[:WORKS_AT]->(c:Company) RETURN p.name, c.name;
MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a.name, b.name;
```

For environment variables, see [Configuration](../config.mdx#postgresql-postgres).
For environment variables, see [Reference](../reference.mdx#postgresql-postgres).
4 changes: 2 additions & 2 deletions pages/memgraph-zero/memgql/features.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ description: MemGQL Community and Enterprise feature comparison.
| [MySQL](/memgraph-zero/memgql/connect/mysql) | Yes | Yes |
| [Pinot](/memgraph-zero/memgql/connect/pinot) | Yes | Yes |
| **Multi-Connection Mode** | Yes | Yes |
| Max connectors | 4 | Unlimited |
| Max simultaneous connections | 4 | Unlimited |
| Max connectors | 2 | Unlimited |
| Max simultaneous connections | 2 | Unlimited |
| **Agentic Capabilities** | | |
| MCP Server | Yes | Yes |
| Structured2Graph Agent to create mappings | Yes | Yes |
65 changes: 42 additions & 23 deletions pages/memgraph-zero/memgql/reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Reference
description: All the details about syntax and various configs
---

## Graph Management
## Graph Management Query Syntax

```
ADD GRAPH <name> ON CONNECTOR <connector>
Expand All @@ -26,36 +26,55 @@ ALTER GRAPH <name> SET MAPPING <mapping_name>;
ALTER GRAPH <name> REMOVE MAPPING;
```

## Query Syntax

```
-- Single graph
USE <graph> <query>;

-- Focused multi-graph
USE <graph1> <simpleQuery>
USE <graph2> <simpleQuery>
RETURN ...;

-- Composite
USE <graph1> <query>
UNION | UNION ALL | INTERSECT | INTERSECT ALL | EXCEPT | EXCEPT ALL
USE <graph2> <query>;
```

# Configuration Reference

MemGQL is configured entirely via environment variables.
## Configuration Reference

## General
### General

| Variable | Default | Description |
|--------------------|---------------------|--------------------------------------|
| `CONNECTOR_TYPE` | `memgraph` | Connector to use (see table below) |
| `CONNECTION_TYPE` | _(none)_ | Alias for `CONNECTOR_TYPE` |
| `BOLT_LISTEN_ADDR` | `127.0.0.1:7688` | Address the Bolt server binds to |

## Enterprise License
### Logging

MemGQL writes log lines to the console (stdout/stderr) and, in parallel, to a
log file. Both destinations are configured via CLI flags on the Bolt server
binary.

#### CLI Flags

| Flag | Default | Description |
|------------------------|--------------------|--------------------------------------------------------------|
| `--log-level=<LEVEL>` | `info` | Console logging verbosity (see levels below) |
| `--log-file=<PATH>` | `bolt_server.log` | File to mirror all log output to (always written, regardless of `--log-level`) |

#### Log Levels

| Level | Console output |
|----------------------|---------------------------------------------------------------------------------|
| `info` | Full logging: connections, incoming queries, transpiled output, results, state changes |
| `info-queries-only` | Only the incoming GQL query and its transpiled output (Cypher / SQL) |

`info` is the most verbose level today. There is no `debug` or `trace`. The
`RUST_LOG` environment variable is not consulted.

The log file always receives every log line — including queries, errors, and
state changes — independent of the console `--log-level`. To silence the
console while keeping a full file record, use `--log-level=info-queries-only`
and tail the log file separately.

### Enterprise License

| Variable | Default | Description |
|-------------------------------|---------|------------------------------------------|
Expand All @@ -64,10 +83,10 @@ MemGQL is configured entirely via environment variables.

When set, the license is decoded and verified against the organization name at
startup. A valid enterprise license removes connector and connection limits.
Without a license, community mode allows up to 4 connectors and 4 simultaneous
Without a license, community mode allows up to 2 connectors and 2 simultaneous
connections.

## Connector Types
### Connector Types

| Connector | Translation | Backend |
|----------------|--------------------|----------------------------------|
Expand All @@ -83,7 +102,7 @@ connections.
| `pinot` | GQL -> SQL | Apache Pinot |
| `multi` | Per-connector | Multiple backends simultaneously |

## Memgraph (`memgraph`, `memgraph-gql`)
#### Memgraph (`memgraph`, `memgraph-gql`)

| Variable | Default | Description |
|-----------------|------------------|----------------|
Expand All @@ -92,7 +111,7 @@ connections.
| `MEMGRAPH_PASS` | `pass` | Password |
| `MEMGRAPH_DB` | `memgraph` | Database name |

## Neo4j (`neo4j`, `neo4j-gql`)
#### Neo4j (`neo4j`, `neo4j-gql`)

| Variable | Default | Description |
|--------------|------------------|----------------|
Expand All @@ -101,28 +120,28 @@ connections.
| `NEO4J_PASS` | `password` | Password |
| `NEO4J_DB` | `neo4j` | Database name |

## PostgreSQL (`postgres`)
#### PostgreSQL (`postgres`)

| Variable | Default | Description |
|----------------|-----------------------------------------------------------------|---------------------------|
| `POSTGRES_URL` | `host=localhost user=postgres password=postgres dbname=postgres` | libpq connection string |
| `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file |

## MySQL (`mysql`)
#### MySQL (`mysql`)

| Variable | Default | Description |
|----------------|-----------------------------------------------|------------------------------------------|
| `MYSQL_URL` | `mysql://root:mysql@localhost:3306/test` | MySQL connection URL (`mysql://user:pass@host:port/database`) |
| `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file |

## DuckDB (`duckdb`)
#### DuckDB (`duckdb`)

| Variable | Default | Description |
|----------------|---------------------------------|---------------------------|
| `DUCKDB_PATH` | `:memory:` | Path to DuckDB file |
| `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file |

## ClickHouse (`clickhouse`)
#### ClickHouse (`clickhouse`)

| Variable | Default | Description |
|-------------------|---------------------------|---------------------------|
Expand All @@ -132,15 +151,15 @@ connections.
| `CLICKHOUSE_DB` | `default` | ClickHouse database |
| `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file |

## Apache Pinot (`pinot`)
#### Apache Pinot (`pinot`)

| Variable | Default | Description |
|-----------------------|----------------------------|--------------------------------------------------|
| `PINOT_URL` | `http://localhost:8099` | Pinot broker base URL or full SQL endpoint |
| `PINOT_QUERY_OPTIONS` | `useMultistageEngine=true` | Query options sent with broker SQL requests |
| `MAPPING_FILE` | _(none, uses built-in default)_ | Path to JSON mapping file |

## Iceberg (`iceberg`)
#### Iceberg (`iceberg`)

| Variable | Default | Description |
|-----------------|-------------------------|---------------------------|
Expand Down
23 changes: 15 additions & 8 deletions pages/memgraph-zero/memgql/use-cases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,33 @@ across systems, silos, and compliance boundaries. Each use case below shows a
real pattern, explains the architecture, and provides a working example you can
run yourself.

## [Public-Private Data / Hybrid Graphs / Data Sovereignty](/memgraph-zero/memgql/use-cases/public-private)
## [Federated GQL Across Heterogeneous Backends](/memgraph-zero/memgql/use-cases/federated-gql)

Run graph queries across non-graph stores like ClickHouse and PostgreSQL
through a single GQL endpoint. Tables become nodes and edges through a mapping
file; cross-store joins, pattern matching, and variable-length paths work
without ETL or schema changes.

## [Public-Private Data / Data Sovereignty](/memgraph-zero/memgql/use-cases/public-private)

Keep sensitive data sovereign while querying it alongside public knowledge
graphs. A GDPR-compliant PostgreSQL database stores private customer profiles,
while a public Memgraph instance hosts the open product catalog. MemGQL joins
both from a single query endpoint without ever moving the regulated data.

## [Enterprise Context Sharing](/memgraph-zero/memgql/use-cases/enterprise-context)

Share canonical context — org charts, product hierarchies, ontologies — across
departments without forcing every team into the same database. Each team keeps
its own data store; MemGQL provides a unified graph view.

## [Horizontally Scalable Distributed Compute](/memgraph-zero/memgql/use-cases/distributed)

Spread graph computation across multiple nodes for workloads that exceed the
capacity of a single instance. MemGQL can partition queries and materialize
intermediate results across a cluster.

## [Agentic Data Access](/memgraph-zero/memgql/use-cases/agentic)
## [Enterprise Context Sharing](/memgraph-zero/memgql/use-cases/enterprise-context)

Share canonical context — org charts, product hierarchies, ontologies — across
departments without forcing every team into the same database. Each team keeps
its own data store; MemGQL provides a unified graph view.

## [Agentic Access](/memgraph-zero/memgql/use-cases/agentic)

Give AI agents a single semantic layer to discover and query any data in the
organization. Agents use standard GQL to explore relationships across
Expand Down
5 changes: 3 additions & 2 deletions pages/memgraph-zero/memgql/use-cases/_meta.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export default {
"federated-gql": "Federated GQL",
"public-private": "Public-Private Data",
"enterprise-context": "Enterprise Context",
"distributed": "Distributed Compute",
"agentic": "Agentic Data Access",
"enterprise-context": "Enterprise Context",
"agentic": "Agentic Access",
}
Loading