Skip to content

Training Doc 01 quickstart guide

github-actions[bot] edited this page Sep 1, 2026 · 3 revisions

ThemisDB Quick Start Guide

Ziel: In 15 Minuten mit ThemisDB arbeiten β€” von der Installation bis zur ersten Multi-Model-Abfrage.


Schritt 1: ThemisDB starten

docker run -d \
  --name themisdb \
  -p 8080:8080 \
  -p 18765:18765 \
  -v themisdb-data:/var/lib/themisdb \
  themisdb/themisdb:latest

# Warten bis der Server bereit ist
curl http://localhost:8080/health
# Erwartet: {"status":"ok","version":"1.8.0"}

Schritt 2: Python-Client installieren

pip install themis-client
from themis_client import ThemisClient

client = ThemisClient("http://localhost:8080")
print(client.health())

Schritt 3: Daten einfΓΌgen

# Collection erstellen
client.query("CREATE COLLECTION IF NOT EXISTS users")

# Dokumente einfΓΌgen
client.query("""
  FOR person IN [
    { name: "Anna",  age: 30, city: "Berlin" },
    { name: "Bob",   age: 25, city: "Hamburg" },
    { name: "Clara", age: 35, city: "MΓΌnchen" }
  ]
    INSERT person INTO users
""")

Schritt 4: Daten abfragen

# Alle Benutzer
result = client.query("FOR u IN users RETURN u")
for doc in result:
    print(doc['name'], 'β€”', doc['city'])

# Gefilterte Abfrage
result = client.query("""
  FOR u IN users
    FILTER u.age > @min_age
    SORT u.name ASC
    RETURN u
""", bind_vars={"min_age": 28})

Schritt 5: Daten aktualisieren

# Einzelnes Dokument aktualisieren
client.query("""
  FOR u IN users
    FILTER u.name == "Anna"
    UPDATE u WITH { age: 31, last_login: DATE_NOW() }
    IN users
""")

# Dokument lΓΆschen
client.query("""
  FOR u IN users
    FILTER u.name == "Bob"
    REMOVE u IN users
""")

Schritt 6: Graph β€” Verbindungen erstellen

# Vertex-Collections
client.query("CREATE COLLECTION IF NOT EXISTS people TYPE VERTEX")
client.query("CREATE COLLECTION IF NOT EXISTS knows TYPE EDGE FROM people TO people")

# Graph definieren
client.query("""
  CREATE GRAPH IF NOT EXISTS network
    EDGE DEFINITION knows FROM people TO people
""")

# Knoten einfΓΌgen
client.query("""
  FOR person IN [
    { _key: "alice", name: "Alice" },
    { _key: "bob",   name: "Bob"   },
    { _key: "charlie", name: "Charlie" }
  ]
    INSERT person INTO people
""")

# Kanten einfΓΌgen
client.query("""
  FOR edge IN [
    { _from: "people/alice",   _to: "people/bob",     since: "2024-01-01" },
    { _from: "people/bob",     _to: "people/charlie", since: "2024-06-01" }
  ]
    INSERT edge INTO knows
""")

Schritt 7: Graph traversieren

# Direkte Verbindungen von Alice
result = client.query("""
  FOR v IN 1..1 OUTBOUND "people/alice"
    GRAPH "network"
    RETURN v.name
""")
print("Alice kennt:", result)  # ['Bob']

# Transitive Verbindungen (Freunde von Freunden)
result = client.query("""
  FOR v IN 1..2 OUTBOUND "people/alice"
    GRAPH "network"
    RETURN DISTINCT v.name
""")
print("Alice kennt indirekt:", result)  # ['Bob', 'Charlie']

Schritt 8: Aggregation

result = client.query("""
  FOR u IN users
    COLLECT city = u.city
      WITH COUNT INTO count
    SORT count DESC
    RETURN { city, count }
""")

for row in result:
    print(f"{row['city']}: {row['count']} Benutzer")

NΓ€chste Schritte

Thema Ressource
AQL Referenz 02_aql_referenz_kurzuebersicht.md
Datenmodellierung 03_datenmodellierung_guide.md
Übungsaufgaben 04_uebungsaufgaben.md
Best Practices 05_best_practices_guide.md
Code-Beispiele ../examples/

πŸ”— Hilfreiche Links


ThemisDB 1.9.0-beta Β· Home Β· Module-Index Β· GitHub Β· Issues

ThemisDB Wiki

🏠 Overview

πŸš€ Getting Started

πŸ“– Tutorials

πŸ“— User Guide

βš™οΈ Operations & Security

πŸ“Ÿ Ops Runbooks

πŸ—οΈ Architecture

πŸ“ ADRs

πŸ”§ Contributing

πŸ“‹ Governance

πŸ” Audit

🧩 Plugins

πŸ”Œ Adapters

πŸ’‘ Examples

πŸ“¦ Client SDKs

πŸŽ“ Training

πŸ› οΈ Tools

πŸ€– Developer LLM Wiki

Clone this wiki locally