我正在尝试拥有一个列族,我可以拥有一个 CQL 的键,以基于一个键和另一个 CQL 获得一行,其中我有一个使用“IN”关键字的键列表并有一个 ORDER BY 子句。我得到的数据来自列值而不是列名。我遇到的问题是尝试设置列族来实现这一点。我有这个 cli 命令来创建列族,但是当我进行插入时,我得到一个关于主键的奇怪异常。下面是创建列族后插入列值时的 cli 和错误。
用于创建列族的 cli 命令:
create column family video_item_details
with key_validation_class = 'CompositeType(IntegerType,UTF8Type)'
and comparator = 'UTF8Type'
and column_metadata = [
{column_name : key, validation_class: IntegerType, index_type: KEYS}
{column_name : name, validation_class : 'UTF8Type', index_type: KEYS}
{column_name : description, validation_class :'UTF8Type'}
{column_name : url, validation_class : 'UTF8Type'}
{column_name : play_time, validation_class : 'UTF8Type'}
{column_name : type, validation_class : 'UTF8Type'}
]
with caching='ALL';
插入期间的错误是:
插入 com.datastax.driver.core.exceptions.InvalidQueryException 时出错:缺少必需的主键部分 key2
正在尝试执行的插入语句是:
INSERT INTO video.video_item_details(key, name, description, url, play_time, type) values
(1,'Gettysburg','Gettysburg Movie Trailer','test','2:53','Streaming')
感谢您提供有关如何让 Cassandra 执行此类查询的任何建议。
最好的问候,-托尼