【问题标题】:Auto increment primary key when using saveToCassandra()使用 saveToCassandra() 时自动增加主键
【发布时间】:2017-12-30 16:06:37
【问题描述】:

是否可以在表 Cassandra 中创建自增主键?

【问题讨论】:

    标签: apache-spark cassandra spark-cassandra-connector


    【解决方案1】:

    基本上,您无法在 Cassandra 中生成自动增量密钥。这在分布式数据库中没有任何意义,因为需要某个中心点负责保持序列。

    生成密钥的常用方法是生成 UUID,它是随机的,但几乎不可能产生冲突。

    来自维基百科:

    为了有十亿分之一的重复机会,必须生成 103 万亿个版本 4 UUID。

    如果您真的非常担心冲突,那么您可以使用“IF NOT EXISTS”lightweight transaction 插入新的 UUID

    例如

    INSERT INTO mytable (uuid, text) VALUES (123e4567-e89b-12d3-a456-426655440000, "hello") IF NOT EXISTS 
    

    【讨论】:

    • 可以不用主键创建表cassandra,谢谢你的回答
    • 不可能。 Cassandra 需要一个主键来创建分区。如果您没有主键,则只需使用随机 UUID
    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 2011-04-26
    • 2010-12-09
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多