Tu primera consulta
Prerrequisitos
Solo necesitas el paquete de Python — ver Instalación.
pip install namidbAbre un namespace, escribe, lee
Abre un REPL de Python (python -i, una celda de Jupyter o cualquier
script .py):
import namidb
# Abre un namespace en memoria. Sin bucket, sin credenciales, sin disco.# Vive mientras este proceso de Python esté vivo.client = namidb.Client("memory://demo")
# Escribe algunos datos.client.cypher("CREATE (a:Person {name: 'Alice', age: 30})")client.cypher("CREATE (b:Person {name: 'Bob', age: 25})")client.cypher( "MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) " "CREATE (a)-[:KNOWS {since: 2020}]->(b)")
# Lee de vuelta, con un parámetro.result = client.cypher( "MATCH (p:Person) WHERE p.age >= $min RETURN p.name AS name, p.age AS age", params={"min": 18},)
print(result.rows())Eso es todo. Tienes una base de datos de grafos funcionando, con su lenguaje de consulta, parser, optimizador, executor y capa de almacenamiento, todo dentro de un solo proceso de Python — y escribiste tres sentencias Cypher contra ella.
Qué acaba de pasar
memory://demo— abriste un namespace de grafo efímero llamadodemo. No se escribió nada al disco ni a un bucket. Al cerrar el proceso de Python se pierde todo.CREATE— escribiste dos nodosPersony una relaciónKNOWS. El mismo motor que potencia el cluster de Cloud ejecutó esas escrituras a través del parser, planificador, executor, WAL y memtable dentro de tu proceso.MATCH … WHERE … RETURN— lo leíste de vuelta. El parámetro$minse bindeó en tiempo de ejecución, el predicadop.age >= 18se hizo pushdown, y la proyección devolvió solo las columnasnameyage.
Hazlo persistente
Cuando quieras que el grafo sobreviva al proceso de Python, solo cambia la URI — el código Python queda igual:
| Dónde vive | URI |
|---|---|
| Disco local | file:///var/lib/namidb?ns=demo |
| MinIO (S3-compatible, local) | s3://my-bucket?ns=demo&endpoint=http://localhost:9000&allow_http=true |
| AWS S3 | s3://my-bucket?ns=demo®ion=us-east-1 |
| Cloudflare R2 | s3://my-bucket?ns=demo&endpoint=https://<id>.r2.cloudflarestorage.com®ion=auto |
| Google Cloud Storage | gs://my-bucket?ns=demo |
| Azure Blob | az://my-account/my-container?ns=demo |
Las credenciales vienen de las variables de entorno estándar
(AWS_ACCESS_KEY_ID, GOOGLE_APPLICATION_CREDENTIALS, etc.). Consulta
Backends de almacenamiento para la
referencia por backend.
Siguientes pasos
- Embedded (Python) — la superficie
Python completa (parámetros, async con
acypher, salida Arrow / pandas / polars). - Leer datos — cada cláusula de lectura.
- Escribir datos —
CREATE,MERGE,SET,DELETE.