我在做一个分布式数据库。我试图生成一个唯一的ID,它将作为Cassandra中的列族主键。
我想知道是否有一种方法可以根据时间生成一个唯一的ID?
您可以在Cassandra中使用timeuuid
类型,它支持类型1的UUID。这使用当前时间、创建者的MAC地址和序列号。如果正确生成了TimeUUID号,则可以实现零冲突(您可以使用CQLnow()
方法或插入自己的方法,java SDK提供了一些线程安全的实现)。timeuuids
的主要优点是IDs可以按时间排序。有关更多信息,请参见http://wiki.apache.org/cassandra/timebaseuuidnotes。
但是,时间排序对行主键不太可能有用,因为在使用哈希分区器时,排序是无用的,尽管使用集群键是可能的。而且,如果您使用自己的ID,生成唯一ID的复杂性可能是bug的来源。Cassandra还通过使用uuid
类型支持类型4 UUID。这些只是随机比特。碰撞概率是存在的,但是碰撞概率(假设不相关的随机数源,如果在Java中生成就会是这样)非常低--如果您在100年内每秒创建10亿个,那么一次碰撞的概率大约是50%。(有关详细信息,请参阅http://en.wikipedia.org/wiki/universaly_unique_identifier#random_uuid_probability_of_duplicates。)
我们运行的cassandra集群有3个节点,复制因子为2。 我们的nodejs服务器是查询这个集群的唯一地方。 是否有其他任何地方的参数设置可能导致不一致的查询? cassandra v2.2.4 nodejs驱动程序v3.0.0 编辑-添加我正在做的事情的示例: 1)检查用户名是否被占用 2)创建用户
首先,我对Cassandra很陌生,我来自关系数据库。我使用了Hibernate API,这使得与数据库相关的任务非常简单。我正在使用datastax中基于java的驱动程序来连接和执行查询。他们提供了实现JPA的映射库。到现在为止,一直都还不错。我创建了一个模型类,如下所示: 现在我想创建一个新的ChartData对象并将其保存到数据库中。为此,我想实现Mapper。 我配置了所有内容,仍然无法
我使用的是spring数据cassandra,需要使用jpa映射一个字段,在cassandra中,该字段的类型为
我们一直在使用Spark RDD API(Spark 2.0)来处理在Cassandra.Note中建模的数据,这些数据在Cassandra中建模以实现高效的读写。 然而,现在还有SparkSQLAPI,Spark DataFrame API,它也是一种替代的数据访问方法-http://spark.apache.org/docs/latest/sql-programming-guide.html
我用Spring Data Cassandra 2.2.1开发了一个新的应用程序,想在Cassandra 2.1.9服务器上运行它(旧的,我知道)。但是我们得到了错误 Spring数据卡桑德拉手册声称Spring数据2.2.1至少需要卡桑德拉2.1,所以这应该有效,但它没有。我们包含的唯一特定于卡桑德拉的依赖项是 我怎样才能让这个工作?
我是卡桑德拉的新手,我正在尝试使用此CQL查询更新表: 我使用DataTax PHP驱动程序在PHP中工作,此语句的代码如下: 表格: 当我执行语句时,我得到错误“缺少强制的PRIMARY KEY部分域”,因此我添加了子句ALLOW FILTERING: 但是我得到另一个错误,“第1:48行在'允许'处缺少EOF”。这些查询出了什么问题?