比方说,我有卡桑德拉表定义是这样的:有道插入迭代数据到卡桑德拉使用Python
CREATE TABLE IF NOT EXISTS {} (
user_id bigint ,
username text,
age int,
PRIMARY KEY (user_id)
);
我在每个列表的大小相同咱们1 000 000
记录3名单。它是一个很好的做法,将数据插入使用一个循环是这样的:
比方说,我有卡桑德拉表定义是这样的:有道插入迭代数据到卡桑德拉使用Python
CREATE TABLE IF NOT EXISTS {} (
user_id bigint ,
username text,
age int,
PRIMARY KEY (user_id)
);
我在每个列表的大小相同咱们1 000 000
记录3名单。它是一个很好的做法,将数据插入使用一个循环是这样的:
准备并发执行语句将是您最好的选择。驱动程序提供了用于并发执行具有参数序列的语句的实用程序功能,就像您对列表所做的一样:execute_concurrent_with_args
Zipping您的列表将一起生成适合输入到该函数的参数元组序列。
事情是这样的:
prepared = session.prepare("INSERT INTO table (user_id, username, age) VALUES (?, ?, ?)")
execute_concurrent_with_args(session, prepared, zip(user_ids, username, age))
它可能是一个好主意,通过观察python的司机越来越started guide启动。如果你已经看到了,然后道歉,但我认为这值得一提。
一般来说你创建会话对象,然后做你的循环内的插入,可能使用像一个准备好的声明(关于进一步贬低这一入门Page)也here和here
的例子上述页面的使用这个作为一个很好的起点
user_lookup_stmt = session.prepare("SELECT * FROM users WHERE user_id=?")
users = []
for user_id in user_ids_to_query:
user = session.execute(user_lookup_stmt, [user_id])
users.append(user)
您也可以找到this blog与蟒蛇司机谈好时的吞吐量有助于
你可能会发现python driver github page是一个有用的资源,尤其是我发现这个例子使用了准备好的语句here,它可能也会帮助你。