Interagire con ScyllaDB in Python

ScyllaDB è un database NoSQL distribuito ad alte prestazioni compatibile con Apache Cassandra. Grazie alla libreria cassandra-driver di DataStax, è possibile interagire facilmente con ScyllaDB utilizzando Python. In questo articolo vedremo come connettersi a un cluster, creare una tabella, inserire e leggere dati.

Installazione del driver Cassandra

Per iniziare, è necessario installare il driver ufficiale:

pip install cassandra-driver

Connessione al cluster ScyllaDB

Per connettersi al cluster, è sufficiente specificare gli IP dei nodi:

from cassandra.cluster import Cluster

# Connessione al cluster ScyllaDB
cluster = Cluster(['127.0.0.1'])  # Inserire gli IP dei nodi ScyllaDB
session = cluster.connect()

# Creazione di un keyspace (se non esiste)
session.execute("""
CREATE KEYSPACE IF NOT EXISTS test_keyspace
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}
""")

# Selezione del keyspace
session.set_keyspace('test_keyspace')

Creazione di una tabella

Creiamo ora una tabella semplice per contenere dati utente:

session.execute("""
CREATE TABLE IF NOT EXISTS users (
    id UUID PRIMARY KEY,
    name text,
    age int
)
""")

Inserimento di dati

Possiamo usare istruzioni preparate per inserire dati:

import uuid

insert_stmt = session.prepare("INSERT INTO users (id, name, age) VALUES (?, ?, ?)")
session.execute(insert_stmt, (uuid.uuid4(), 'Alice', 30))
session.execute(insert_stmt, (uuid.uuid4(), 'Bob', 25))

Lettura dei dati

Infine, leggiamo i dati dalla tabella:

rows = session.execute("SELECT id, name, age FROM users")
for row in rows:
    print(f"ID: {row.id}, Name: {row.name}, Age: {row.age}")

Conclusione

In questo articolo abbiamo visto i passaggi fondamentali per connettersi a ScyllaDB usando Python: connessione al cluster, creazione di un keyspace e di una tabella, inserimento e lettura dei dati. ScyllaDB, grazie alla sua compatibilità con Cassandra e alle sue prestazioni elevate, è un’ottima scelta per applicazioni distribuite ad alta scalabilità.

Torna su