📅  最后修改于: 2023-12-03 15:19:33.777000             🧑  作者: Mango
Apache Cassandra是一个高效可扩展的分布式NoSQL数据库,因其高性能、高可用性和高可扩展性而备受欢迎。Python作为一种流行的编程语言,在Cassandra中持久存储和访问数据方面也很流行。在这里,我们将了解如何使用Python驱动程序连接到Cassandra以及如何在Python中使用Cassandra进行数据持久化。
在Python中连接Cassandra需要安装Python驱动程序。Python驱动程序可通过pip进行安装。在命令行中输入以下命令即可安装Cassandra Python驱动程序:
pip install cassandra-driver
成功安装驱动程序后,我们需要在Python中连接到Cassandra。连接到Cassandra需要几个连接参数诸如主机、端口、用户名和密码。以下是构建Cassandra连接的基本方法:
from cassandra.cluster import Cluster
cluster = Cluster(['localhost']) # Cassandra主机地址
session = cluster.connect() # 连接到Cassandra集群,创建一个会话
在上面的代码中,我们首先从cassandra.cluster
模块导入Cluster
。然后,我们创建了一个Cassandra集群,并将本地主机地址作为构造函数的参数传递给其构造函数。接下来,我们使用connect()
方法连接到集群。它会创建一个会话对象,该对象可以用于执行Cassandra查询。
在我们开始使用Cassandra进行数据持久化之前,我们需要创建一个Keyspace和Table。Keyspace是具有类似数据库的概念。Table是具有它自己的相应属性的Keyspace中的一部分。
以下是在Python中创建Keyspace和Table的基本方法:
session.execute(
"""
CREATE KEYSPACE IF NOT EXISTS demo
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}
"""
)
session.execute(
"""
CREATE TABLE IF NOT EXISTS demo.person (
id INT PRIMARY KEY,
name TEXT,
age INT
)
"""
)
在上面的代码中,我们首先使用execute()
方法创建一个名为demo
的Keyspace。在Keyspace创建后,我们创建了一个名为person
的Table,包含三个列,分别是id
、name
和age
。
我们已经创建了Keyspace和Table,接下来,让我们向Table中插入一些数据。以下是在Python中插入数据的基本方法:
session.execute("INSERT INTO demo.person (id, name, age) values (%s, %s, %s)", (1, 'John', 35))
在上面的代码中,我们使用execute()
方法将一条数据插入到person
表中。我们将数据的id
、name
和age
列分别设置为1、'John'和35。
我们已经将数据插入到Table中,接下来,让我们使用Python查询数据。以下是在Python中查询数据的基本方法:
rows = session.execute("SELECT * FROM demo.person")
for row in rows:
print(row.id, row.name, row.age)
在上面的代码中,我们使用execute()
方法执行一个SELECT查询,并使用for
循环遍历返回的结果集。row
是一个类似于字典的对象,我们可以按列名(例如row.id
)访问每行中的值。
我们已经将数据插入到Table中,接下来,让我们使用Python更新数据。以下是在Python中更新数据的基本方法:
session.execute("UPDATE demo.person SET age = %s WHERE id = %s", (40, 1))
在上面的代码中,我们使用execute()
方法执行一个UPDATE查询,并更新了person
表中id为1的记录的age
列为40。
最后,我们看一下如何在Python中删除数据。以下是在Python中删除数据的基本方法:
session.execute("DELETE FROM demo.person WHERE id = %s", (1,))
在上面的代码中,我们使用execute()
方法执行一个DELETE查询,并从person
表中删除id为1的记录。
Cassandra是一款流行的高效可扩展的NoSQL数据库。Python是一门强大的编程语言,也可以用于连接Cassandra并进行数据持久化。在本文中,我们了解了如何使用Python驱动程序连接到Cassandra集群,创建Keyspace和Table,插入、查询、更新和删除数据。这将帮助Python开发人员在应用程序中使用Cassandra进行数据持久化。