Edit

Share via


Graph snapshots overview (preview)

Switch services using the Version drop-down list. Learn more about navigation.
Applies to: ✅ Microsoft Fabric ✅ Azure Data Explorer

Note

This feature is currently in public preview. Functionality and syntax are subject to change before General Availability.

A graph snapshot is a database entity that represents a materialized instance of a graph model at a specific point in time. While a graph model defines the structure and data sources, a snapshot is the queryable graph implementation.

Overview

Graph snapshots provide:

  • Model linkage: Connected to a specific graph model
  • Point-in-time materialization: Represents the graph state at creation time
  • Persistence: Stored in the database until explicitly dropped
  • Direct querying: Enables queries without rebuilding the graph
  • Metadata storage: Contains creation time and model information

Multiple snapshots from the same graph model enable historical analysis and temporal comparison of graph data.

Graph snapshot structure

Each graph snapshot contains two primary components:

Metadata

  • Name: Unique snapshot identifier
  • SnapshotTime: Creation timestamp
  • Model information:
    • ModelName: Source graph model name
    • ModelVersion: Model version at snapshot creation
    • ModelCreationTime: Source model creation timestamp

Graph data

  • Nodes: Materialized nodes from the model's AddNodes operations
  • Edges: Materialized relationships from the model's AddEdges operations
  • Properties: Node and edge properties as defined in the model

Example snapshot configuration

{
  "Metadata": {
    "Name": "UserInteractionsSnapshot",
    "SnapshotTime": "2025-04-28T10:15:30Z"
  },
  "ModelInformation": {
    "ModelName": "SocialNetworkGraph",
    "ModelVersion": "v1.2",
    "ModelCreationTime": "2025-04-15T08:20:10Z"
  }
}

Management commands

Use these commands to manage graph snapshots:

Command Purpose
.make graph_snapshot Create a snapshot from an existing graph model
.drop graph_snapshot Remove a snapshot from the database
.show graph_snapshots List available snapshots in the database

Querying snapshots

Query graph snapshots using the graph() function:

Query the latest snapshot

graph("SocialNetworkGraph")
| graph-match (person)-[knows]->(friend)
  where person.age > 30
  project person.name, friend.name

Query a specific snapshot

graph("SocialNetworkGraph", "UserInteractionsSnapshot")
| graph-match (person)-[knows]->(friend)
  where person.age > 30
  project person.name, friend.name

For advanced pattern matching and traversals, see Graph operators.

Monitoring and diagnostics commands

Use these commands to analyze the snapshot build process:

Command Purpose
.show graph_snapshot statistics Display detailed statistics for a specific snapshot, including performance metrics and resource utilization
.show graph_snapshots statistics Display statistics for all snapshots of a graph model
.show graph_snapshots failures Display information about failed snapshot creation attempts with failure reasons and troubleshooting details

These commands provide insights into:

  • Performance analysis: CPU time, memory usage, and duration metrics for snapshot creation
  • Resource monitoring: Peak memory consumption and processing efficiency
  • Build process details: Step-by-step breakdown of the snapshot creation process
  • Failure investigation: Detailed error information and retry behavior analysis
  • Troubleshooting: Operation IDs for deep-dive analysis and failure classification

Key benefits

Graph snapshots provide:

  • Enhanced performance: Eliminates graph rebuilding for each query
  • Data consistency: Ensures all queries operate on identical graph state
  • Temporal analysis: Enables historical comparison across time periods
  • Resource optimization: Reduces CPU and memory consumption for repeated operations