比方說,我有卡桑德拉表定義是這樣的:有道插入迭代數據到卡桑德拉使用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,它可能也會幫助你。