我获取csv文件,读取这些文件并将其写入Cassandra。我为大量数据(大约每天1000万行)做了这个。文件本身相当小(从100行到1000行)
我想要做的是在将它们写入数据库之前进行检查,如果我要插入的主键已经存在。
我知道我可以使用Select count(*) from table where primary key1 = something and key2 is something else
。
但是这很慢,我想在1 go中检查整个文件,如果它将影响已经在Cassandra中的数据,并且我希望(需要)它快速。 有没有办法实现我想要的? (或者类似的东西,比如检查每批它是否会影响行)
答案 0 :(得分:1)
您可以在INSERT语句中使用IF NOT EXIST,在UPDATE语句中使用IF EXIST。性能优于计算所有行,但与插入相比,没有检查,慢。 Cassandra必须检查所有节点是否存在现有主键。
INSERT的文档:https://docs.datastax.com/en/cql/3.1/cql/cql_reference/insert_r.html
和UPDATE: https://docs.datastax.com/en/cql/3.1/cql/cql_reference/update_r.html