cloudparts

PuppyGraph

A graph query engine that reads tables where they already live, in Iceberg, Delta Lake, Hudi, warehouses and SQL databases, and answers openCypher and Gremlin queries without loading the data into a graph database.

Type
Commercial product
Made by
PuppyGraph
License
Proprietary; the Developer Edition is free
Facts checked
24 October 2026

What it is

PuppyGraph stores no data of its own. You connect it to catalogs and databases, then describe a graph in one JSON schema: each node type points at a table and its key columns, and each edge type points at a table plus the key columns that match the nodes at either end. The schema can be written by hand, built in the web UI’s schema builder, or proposed by PuppyGraph AI after it inspects the tables, and it can be edited in place later. At query time PuppyGraph compiles a graph query into a plan of node and edge operators and runs it in its own distributed, auto-sharded engine, sending only simple projection and filter SQL to the source. Connectors cover Iceberg, Delta Lake, Hudi and Hive tables, catalogs such as Unity Catalog, Polaris, Nessie, Amazon S3 Tables and OneLake, and databases including PostgreSQL, MySQL, ClickHouse, DuckDB, Snowflake, BigQuery, Redshift and Trino.

Clients reach it through a web UI and REST API on port 8081, a Gremlin server on 8182 and openCypher over the Bolt protocol on 7687. The Developer Edition is free forever but runs on a single node in Docker; the Enterprise Edition has a 30-day trial, runs in Docker, on an AWS AMI or from Helm charts and marketplace listings, and is priced by the memory and CPU of the machines it runs on. PuppyGraph’s own figures include a six-hop query over 600 million edges in under a second. It launched in March 2024 and released version 1.15.1 on 17 October 2026.

Why teams pick it

  • No second copy and no ETL pipeline: the graph reads the same governed tables as SQL and BI tools, so it is as fresh as those tables
  • The graph is only a mapping, so adding or reshaping node and edge types means editing the schema, not reloading data
  • Works over many sources at once, from Iceberg and Delta Lake tables to Postgres, Snowflake and BigQuery
  • Standard languages and protocols, openCypher over Bolt and Gremlin, so existing graph drivers and tools connect

Watch out for

  • Closed source, and Enterprise pricing is not published
  • Columnar tables are laid out for scans, not for following a few edges at a time; PuppyGraph itself says low-latency point traversals and write-heavy graph workloads fit a graph database better
  • Edges are only as good as the keys in the tables: entity resolution and choosing which relationships to model are up to you, and very high-degree nodes can blow up a hop
  • Independent numbers are scarce: a 2026 paper by TigerGraph and Purdue researchers reported PuppyGraph running out of memory on some LDBC queries and graph algorithms where their own engine finished
Data model
A graph schema mapped onto existing tables; no data of its own
Query language
openCypher and Gremlin
Client protocol
Bolt (7687), Gremlin server (8182), REST API (8081)
How it scales
Distributed, auto-sharded query engine; Developer Edition is single-node
Storage format
Reads Iceberg, Delta Lake, Hudi and Hive tables, warehouses and SQL databases in place
Ways to run it
Docker, AWS AMI, Helm charts, marketplace listings
Pricing model
Developer Edition free; Enterprise by the memory and CPU of its machines

Alternatives

What all graph lakehouses have in common →Compare side by side →

How it fits with other technologies

Part of a schema: Postgres tables mapped to a Person node type and a KNOWS edge type · json

{
  "node": [{
    "label": "Person",
    "dataSourceGroup": { "externalDataSource": {
      "enabled": true, "catalog": "postgres_data", "schema": "modern", "table": "person" } },
    "id": [{ "name": "id", "type": "STRING" }]
  }],
  "edge": [{
    "label": "KNOWS",
    "fromNodeLabel": "Person",
    "toNodeLabel": "Person",
    "dataSourceGroup": { "externalDataSource": {
      "enabled": true, "catalog": "postgres_data", "schema": "modern", "table": "knows" } },
    "id": [{ "name": "id", "type": "STRING" }],
    "fromKey": [{ "name": "from_id", "type": "STRING" }],
    "toKey": [{ "name": "to_id", "type": "STRING" }]
  }]
}

See it in a real stack

No architecture uses PuppyGraph yet. Drop it into the playground and wire it up yourself.Open playground →

Worth exploring

Paper· March 2026GraphLake: A Purpose-Built Graph Compute Engine for LakehouseShige Liu, Songting Chen, Chengjie Qin, Mingxi Wu and Jianguo Wang (Purdue University, TigerGraph), arXivExplains why running graph analytics over Iceberg tables is hard and how a TigerGraph-based engine does it: load only the key columns that form the topology, build one edge list per Parquet file, encode file and row in each vertex ID so properties can be fetched on demand, and cache column chunks with graph-aware priorities. On LDBC benchmarks it reports up to 26× faster startup and up to 60× faster queries than PuppyGraph, and it is candid that edge-list scans lose to TigerGraph’s own storage when few edges match. Half the authors work at TigerGraph and the baseline is a closed-source competitor measured from outside, so read the comparison with that in mind.
Video· January 2026Unified Data, Unified Insights: Meet the Graph LakehouseWeimo Liu and Jaz Ku (PuppyGraph) and Robert Pack (Databricks), Open Lakehouse + AIA 50-minute live session from the Delta Lake community with demos of querying Delta Lake tables as a graph with PuppyGraph, running multi-hop Cypher and Gremlin queries, and visualising the results, without a separate graph database or copy pipeline. Summarised here from the event description and listing; two of the three speakers are from PuppyGraph.
Video· February 2023Graph Queries on Data LakesWeimo Liu (PuppyGraph), Trino communityAn early talk for the Trino community making the case for a graph data lake instead of a graph database: keep the data once in tables such as Iceberg, start a separate graph query engine when you need traversals, and shut it down afterwards without losing anything. Summarised here from the event description; the speaker is PuppyGraph’s CEO, and the talk predates its product launch.
All resources →
Where it came from2023–2026

PuppyGraph was founded by Weimo Liu, who had worked on Google’s F1 team and at TigerGraph, with Danfeng Xu, a long-time LinkedIn infrastructure engineer, and Lei Huang. In a February 2023 talk for the Trino community, Liu argued that many users want a graph data lake rather than a graph database: they don’t want to load data twice, keep two copies in sync, or pay for a graph server that can’t be turned off without losing its data.

The product launched in March 2024, and in November 2024 the company raised a $5 million seed round led by defy.vc, naming Coinbase and Clarivate among production users and describing itself as Databricks’ first graph analytics partner for Unity Catalog. By 2026 it had added catalog integrations from Polaris to OneLake, a Snowflake Native App and an AI assistant that proposes graph schemas, and it promotes the term “graph lakehouse” for graph queries over open table formats.

Why it’s built this way

A query engine with no storage of its own
Graph databases tie the query layer to their own storage, which forces a copy of the data and an ETL pipeline. Keeping data in the lake means the engine can be stopped after a query and the data stays put.
The graph defined as a mapping over tables
Node and edge types point at existing tables and keys, so the same rows serve SQL and graph queries and the model can change without a reload.
Gremlin and openCypher rather than a new language
Both already have drivers, tools and users, so teams can query the lake as a graph with what they know.

Timeline

  1. 2023

    Weimo Liu presents graph queries on data lakes to the Trino community

  2. 2024

    PuppyGraph launches in March; $5 million seed round in November

  3. 2026

    Delta Lake community session on the graph lakehouse; version 1.15 in October

Sources10 · facts checked 24 October 2026

Improve this page on GitHub