Tan*_*nvi 5 cassandra cassandra-2.0 cassandra-3.0
根据 Datastax 文档,在 Cassandra 中先读后写是一种反模式。
每当我们在 CQLSH 中使用 UPDATE 或使用 Datastax 驱动程序设置几列(带有 IF 和集合更新)时,它是否先在写入前进行读取?这不是反模式吗?我错过了什么吗?
PS 我不是在谈论纯粹的 UPSERTS,而是在特定列上的更新。
蒂亚!
不,更新不是反模式。
在 Cassandra 中,更新是一种类似于插入的 upsert 操作。
UPDATE 将一个或多个列值写入 Cassandra 表中的一行。与 INSERT 一样,UPDATE 是一个 upsert 操作:如果指定的行不存在,则该命令创建它。同一分区键内的所有 UPDATE 都以原子方式独立应用。
但是轻量级事务在写操作之前被读取。实际上以四次往返为代价。
轻量级交易示例:
#Lightweight transaction Insert
INSERT INTO customer_account (customerID, customer_email)
VALUES (‘LauraS’, ‘lauras@gmail.com’)
IF NOT EXISTS;
#Lightweight transaction Update
UPDATE customer_account
SET customer_email=’laurass@gmail.com’
IF customerID=’LauraS’;
Run Code Online (Sandbox Code Playgroud)
以上两种说法都是轻量级交易
来源:http : //docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlUpdate.html#cqlUpdate__description
| 归档时间: |
|
| 查看次数: |
924 次 |
| 最近记录: |