Kuzu Link -

conn.execute("CREATE REL TABLE Follows (FROM User TO User, since INT64)")

Step 4: Insert Data

conn.execute("CREATE (u:User name: 'Alice', age: 30)")
conn.execute("CREATE (u:User name: 'Bob', age: 25)")
conn.execute("CREATE (u1:User name: 'Alice')-[f:Follows since: 2020]->(u2:User name: 'Bob')")

Step 5: Query Data

result = conn.execute("MATCH (u:User)-[f:Follows]->(v:User) RETURN u.name, v.name, f.since")
print(result.get_as_df())

When populating the graph, users can load node and relationship data directly from these linked sources using standard SQL-like projection.

Example Syntax:

LOAD FROM my_external_db.users
RETURN id, name, age;

This allows for "Just-In-Time" graph construction. You do not need to export CSVs from your production SQL database to build your graph; you link the source and define the mapping directly in Cypher.

Unlike traditional ETL (Extract, Transform, Load) processes that require copying data into the database storage engine, Kuzu Link adopts a federated approach. By linking external databases, Kuzu treats them as extensions of its own storage. kuzu link

This is achieved primarily through the ATTACH and LOAD FROM clauses in Kuzu’s query language (Cypher). This functionality transforms Kuzu from a standalone silo into a semantic layer that sits on top of existing data infrastructure.