Knowledge graph on the lakehouse

Build a knowledge graphdirectly on your lakehouse.

Define entities and relationships over your existing lakehouse tables. Query them with PuppyGraph without copying your data into a separate graph database.

Labeled property graph modelopenCypher & GremlinDedicated graph computeNo separate graph data copy

Connected context for your applications

Analystsmulti-hop questions
Applicationsconnected context
AI agentsgraph-aware tools

Query relationships · retrieve context

PuppyGraph

Knowledge graph on your lakehouse

A connected knowledge graphAn abstract network of entities and relationships modeled and queried by PuppyGraph over existing lakehouse tables.

Graph query engine · Gremlin · openCypher

Define entities and relationships

Existing lakehouse tables

Iceberg
Delta Lake
Hudi

Data stays in your lakehouse. No separate graph data copy.

Built for your lakehouse ecosystem

Bring graph queries to your lakehouse tables through the catalogs and storage behind them.

Open table formats

  • Apache Iceberg
  • Delta Lake
  • Apache Hudi

Platforms & services

  • Amazon S3 Tables
  • Microsoft OneLake
  • Google Cloud Lakehouse
  • Databricks
  • Snowflake
  • Cloudera Open Data Lakehouse

Catalogs

  • Apache Polaris
  • Nessie
  • Unity Catalog
  • Hive Metastore

Storage

  • Amazon S3
  • MinIO
  • Google Cloud Storage
  • Azure Blob Storage
A selection of the ecosystem. Explore more connection options in the docs:Iceberg →Delta Lake →Hudi →

The relationship gap

Your lakehouse holds the data. Make its relationships explicit.

Your lakehouse brings enterprise data together. Define business entities, their properties, and the meaning of their relationships in an explicit graph model.

01

A foundation already in place. Your lakehouse stores and manages data from across the business, providing a foundation for analytics and applications.

02

A connected world within the data. Tables, fields, and identifiers represent business entities and their relationships, even when they are not modeled as a graph.

03

A graph model makes the difference. Having the data does not by itself provide a queryable knowledge graph. An explicit model and graph query engine let you work with it as entities, relationships, and paths.

Beyond rows and columns

Business data describes a connected world.

  • People belong to organizations.
  • Products depend on suppliers.
  • Equipment is linked to events.

A knowledge graph gives these entities and relationships an explicit model, so you can understand and query them together.

Separate compute from storage

Bring graph compute to the data.

A traditional graph database brings data into its own storage and compute system. PuppyGraph leaves the underlying data in the lakehouse and supplies the model and compute needed to query it as a graph.

Traditional approach

Move the data to the graph

Lakehouse tablessystem of record
IcebergDelta LakeHudi
Transform + graph ETLnew pipeline
Graph databasecopied store
Applicationsquery the copy
  • Duplicate storage and operational surface
  • A synchronization path to build and monitor
  • Freshness depends on the copy pipeline

From tables to graph

Connect. Define. Compute.

Define the business model in a graph schema. Let PuppyGraph’s graph query engine plan and execute queries over the connected data. The model describes the knowledge; the engine makes it queryable.

01 / Connect

Connect your lakehouse catalog.

Configure a catalog connection with the endpoint and access settings for your lakehouse. This makes its tables available for graph modeling.

supply_chainLakehouse catalog
Source
Apache Iceberg
Catalog endpoint
<your-catalog-endpoint>
Access
Your catalog and storage credentials
02 / Define

Declare entities and relationships.

Select tables from the connected catalog. Map them to typed nodes, relationships, and properties in a graph schema without copying the source data.

Productproducts.product_id → id
USES
Componentcomponents.component_id → id
SUPPLIED_BY
Suppliersuppliers.supplier_id → id
03 / Compute

Execute the graph workload.

PuppyGraph uses its query engine and compute resources to run openCypher or Gremlin patterns, multi-hop paths, aggregations, and algorithms.

Which products depend on Supplier S42?

openCypher

MATCH (p:Product)-[:USES]->      (:Component)-[:SUPPLIED_BY]->      (s:Supplier {id: "S42"})RETURN DISTINCT p.id

Follow each product’s components to their supplier. Return the IDs of products that depend on S42, without duplicates.

Flexible model

Evolve the graph over existing data.

Choose the entities, relationships, and properties that fit your business questions. Edit the schema as those needs change, and export it as JSON for version control. Different model definitions can draw on the same underlying tables.

Explore graph modeling →

Dedicated query engine

Scale graph compute with the workload.

PuppyGraph supports distributed query execution in cluster mode, parallelizing queries across compute nodes. Size graph compute for the latency and throughput your applications need, and validate performance against your workload.

Explore cluster deployment →

AI agents

Let agents query connected knowledge.

Give AI agents graph query tools to follow explicitly modeled relationships and retrieve connected context from your lakehouse data. Use that context to ground answers in GraphRAG workflows.

Explore GraphRAG and AI agents →

What connected knowledge unlocks

Put connected knowledge to work.

From security investigations and AI context to plant operations and incident response, teams use PuppyGraph to make the relationships in their lakehouse data queryable.

Security investigations

Prevalent AI

Follow the investigation, not a predefined dashboard path.

Prevalent AI added graph traversal to the cyber knowledge graph its data fabric already maintained on Iceberg. Analysts can explore relationships across people, hosts, and vulnerabilities through self-service dashboards and Navigator, its conversational analytics interface.

Lakehouse foundationApache Iceberg

PuppyGraph queries the existing entity-resolved tables, with no separate graph store to load and synchronize.

“We found that GPEs like PuppyGraph—especially in cached mode—excel at analytical and summarization use cases, outperforming most graph databases by a wide margin.”
Namith CholappurathHead of Architecture, Prevalent AI
Read the Prevalent AI story →
GraphRAG & AI agents

AMD

Give AI connected enterprise context.

AMD added a knowledge graph layer over Iceberg to connect context about users, devices, applications, and other enterprise entities. Multi-hop graph queries supply connected enterprise context to chatbots and agents.

Lakehouse foundationApache Iceberg

Graph access alongside the existing data stack, without a separately loaded and synchronized graph store.

“This approach enables enterprises to bridge structured data from various sources and build relationships enabling AI for smarter decision-making.”
Rajdeep SenguptaSenior Director Application & Systems Engineering, AMD
Read the AMD story →
Industrial operations

Baker Hughes

Connect equipment failures to their operational context.

A Baker Hughes study used PuppyGraph to connect equipment, incidents, root-cause analyses, bad-actor records, and work orders into a knowledge graph over Databricks Delta tables. AI agents generated graph queries from plain-language questions to identify high-loss equipment and recurring reliability problems across four plants.

Lakehouse foundationDatabricks · Delta Lake

Five datasets queried as a graph without moving them into a separate graph database.

“PuppyGraph functions as a zero-ETL graph analytics engine that allows direct querying of data from sources like Databricks without requiring data movement.”
Ryan ElsingaSenior Data & AI Engineer, Baker Hughes
Read the Baker Hughes story →
Observability

Coinbase

Investigate service failures and understand their impact.

Coinbase combined tracing data with service ownership information to build a service dependency graph. PuppyGraph queries helped its RCA Bot expand investigations to related services, while engineers could follow dependencies directly to understand which services and products might be affected.

Lakehouse foundationDatabricks · Delta Lake

PuppyGraph queried service relationships over data in Databricks, keeping graph compute separate from storage so the data remained available for other analyses.

“PuppyGraph is a very interesting graph query engine. It doesn't require us to load or ETL any of the data into a specialized or proprietary database storage layer for graphs. PuppyGraph queries all our transactional and crypto data directly and performs all kinds of graph-based exploration and aggregation. It's so powerful, and our users really enjoy this type of flexibility.”
Eric SunSr. Manager of Data Platform, Coinbase
Read the Coinbase story →

Knowledge graph modeling

Labeled property graph as the graph model.

RDF & SPARQL are not the only way to build a knowledge graph. PuppyGraph uses the labeled property graph model, with openCypher and Gremlin to query the graph. Model the concepts and relationships in your domain ontology to bring explicit business semantics to your lakehouse data.

Labeled property graph

Entities become nodes. Named, directed edges connect them. Both carry properties.

LABELED NODESNODE PROPERTIESProductComponentSupplierid: "P17"name: "Pump"id: "C8"name: "Seal"id: "S42"name: "Acme"USESEDGE PROPERTY quantity: 2SUPPLIED_BYEDGE PROPERTY lead_time_days: 7LABELED NODESNODE PROPERTIESProductComponentSupplierid: "P17"name: "Pump"id: "C8"name: "Seal"id: "S42"name: "Acme"USESEDGE PROPERTY quantity: 2SUPPLIED_BYEDGE PROPERTY lead_time_days: 7LABELEDNODESNODEPROPERTIESProductid: "P17"name: "Pump"Componentid: "C8"name: "Seal"Supplierid: "S42"name: "Acme"USESEDGE PROPERTYquantity: 2SUPPLIED_BYEDGE PROPERTYlead_time_days: 7

Product, Component, and Supplier express domain concepts. USES and SUPPLIED_BY give relationships meaning. Properties describe the entities and how they connect.

openCypher & Gremlin

Two graph query languages for finding patterns, following relationships across multiple hops, and filtering or aggregating results.

Example: find products that depend on Supplier S42.

A declarative language: describe the graph pattern you want to find.

MATCH (p:Product)-[:USES]->
      (:Component)-[:SUPPLIED_BY]->
      (:Supplier {id: "S42"})
RETURN DISTINCT p.id

A graph traversal language: compose steps to navigate and process connected data.

g.V().has("Supplier", "id", "S42")
 .in("SUPPLIED_BY").in("USES")
 .hasLabel("Product")
 .values("id").dedup()

Start with your own data

Put graph queries to work on your existing data.

Download PuppyGraph to start building, book a demo to explore your use case, or join Slack to get support directly from our engineering team.

$ docker run -p 8081:8081 \
  -p 8182:8182 -p 7687:7687 \
  puppygraph/puppygraph:latestPulling puppygraph/puppygraph:latestStarting PuppyGraphWeb console listening on 0.0.0.0:8081Gremlin endpoint listening on 0.0.0.0:8182PuppyGraph is running# no pipelines · no second database · no data movement