First, enter your container:
docker exec -it tigergraph bashThen launch the GSQL shell:
gsqlAlways start schema design with global mode:
USE GLOBAL
This allows you to define vertices, edges, and graphs.
Before creating a fresh schema, you may want to drop existing ones.
- Drop an edge:
DROP EDGE placed
- Drop a vertex:
DROP VERTEX Customer
Define entities as vertices. Each vertex needs a PRIMARY_ID and can have attributes.
CREATE VERTEX Customer (
PRIMARY_ID customer_id STRING,
name STRING,
email STRING
)
CREATE VERTEX Order (
PRIMARY_ID order_id STRING,
date DATETIME,
amount FLOAT
)
CREATE VERTEX Product (
PRIMARY_ID product_id STRING,
name STRING,
price FLOAT
)
Edges represent relationships between vertices.
CREATE DIRECTED EDGE placed (FROM Customer, TO Order)
CREATE DIRECTED EDGE contains (FROM Order, TO Product)
DIRECTEDโ one-way relationship (e.g., Customer โ Order).UNDIRECTEDโ two-way relationship (e.g., friendship).
Finally, bundle everything into a graph object.
CREATE GRAPH ecommerceGraph(
Customer,
Order,
Product,
placed,
contains
)
This graph now knows which vertices and edges belong together.
Hereโs the full minimal schema file (schema.gsql):
USE GLOBAL
DROP GRAPH ecommerceGraph
DROP EDGE placed
DROP EDGE contains
DROP VERTEX Customer
DROP VERTEX Order
DROP VERTEX Product
CREATE VERTEX Customer (
PRIMARY_ID customer_id STRING,
name STRING,
email STRING
)
CREATE VERTEX Order (
PRIMARY_ID order_id STRING,
date DATETIME,
amount FLOAT
)
CREATE VERTEX Product (
PRIMARY_ID product_id STRING,
name STRING,
price FLOAT
)
CREATE DIRECTED EDGE placed (FROM Customer, TO Order)
CREATE DIRECTED EDGE contains (FROM Order, TO Product)
CREATE GRAPH ecommerceGraph(Customer, Order, Product, placed, contains)
Run this inside GSQL:
gsql schema.gsqlIncase of any previous loading job conflicts run this to clear all vertex and edge data instances without dropping the schema (similar to truncate):
CLEAR GRAPH STORE- Create a loading job (
LOADstatements) to load data from CSV into these vertices/edges. - Access GraphStudio (GUI) at: ๐ http://localhost:14240