如何使用CQL在Cassandra中插入数百万个随机行?

时间:2016-10-30 15:36:21

标签: cassandra nosql

在PostgreSQL中,我使用下面的查询。我怎么能在卡桑德拉做到这一点?

INSERT INTO public.core_post(id, created, title, message, latitude, longitude, owner_id)
SELECT uuid_generate_v4(), now(), 'Hello!', 'What?', null, null, 1 FROM generate_series(1,1000000);

2 个答案:

答案 0 :(得分:0)

不,你不能使用纯CQL。

但您可以使用presto DB apache drill或手工制作的软件等外部工具。

答案 1 :(得分:0)

这是一个连接到您的集群的python脚本,然后创建一个循环,您可以在其中创建包含列中随机数据的批处理语句,然后执行摄取。

from cassandra.query import BatchStatement, SimpleStatement
from cassandra.cluster import Cluster
import random

# Connect to the cluster
cluster = Cluster(['ip', 'ip'])
session = cluster.connect()


for i in range(10)
    # Create your random data
    my_first_data = random.choice(range(15))
    my_second_data = random.choice(range(50))

    # instanciate a batch statement
    batch = BatchStatement()

    # create a new query with your random data
    batch.add(SimpleStatement("INSERT INTO my_table (data1, data2) VALUES (%s, %s)"), (my_first_data, my_second_data))

# Execute all the queries 
session.execute(batch)