如果您正在寻找一个简单的解决方案,您可以随时使用cqlsh 的COPY 实用程序。
> COPY myTable (col1, col2, col3, col4) FROM 'temp.csv' WITH HEADER=true;
在用 Python 构建新东西之前,我会选择 COPY 或 DSBulk。事实上,cqlsh 使用 Python 驱动程序并且已经构建用于处理分页、批量大小、超时等问题。
文档:COPY FROM
编辑 20210903
如果您准备使用 CQL 进行查询并在 Python 中处理结果集,您会想要做这样的事情...
导入部分将如下所示:
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra.query import SimpleStatement
首先建立你的连接:
auth_provider = PlainTextAuthProvider(username=username, password=password)
cluster = Cluster(nodes,auth_provider=auth_provider)
session = cluster.connect()
然后将您的查询构建为SimpleStatement。
strCQL = f"SELECT * FROM {keyspace}.{table}"
print(strCQL)
statement = SimpleStatement(strCQL,fetch_size=100)
rows = session.execute(statement)
for row in rows:
print(row)
请注意,您还可以在 row(row[0]、row[1] 等)上使用它们的序号索引 print 单个列值。
在上面的示例中,我将获取大小设置为 100。默认为 5000,但如果是 result set is large,您会希望它更小以避免超时。
Link to my Git repo 供参考。