在我的用例中,我必须将静态列(CQL3 CF)转换为动态列(这样我可以在运行时增加或减少列)。我,我在DSE 4.5工作。
在该列系列中,我必须编写提要(数据插入将是实时的)。例如:CF将基于用户ID和&amp ;;存储用户的提要。时间戳和user1可以有10列,user2可以有20列,(每个用户列可以有所不同)。
目前在CQL3 CF中,
CREATE TABLE USER_FEED (
userid int,
timestamp int,
col1 string,
col2 int,
col3 string,
....
PRIMARY KEY (userid,timestamp)
我必须设计数据模型。我想我必须创建动态CF.但我的问题是我可以组合行来制作行键吗?如果是,那么如何使用组合rowkey读取数据?我可以将动态CF中的数据存储起来吗?有没有可用的例子或用例?
答案 0 :(得分:1)
您当然可以选择不填充给定行的特定列或删除现有行的一列或多列,但是在创建表时需要声明所有行的所有列。
在频谱的另一端,您可以将所有用户变量数据声明为blob,但是您无法在查询中引用特定列。
或者......您可以定义一个“user_data”列,这是一个地图,然后您可以填充或删除该地图列的元素。但是后来查询更加繁琐,所有用户数据都必须具有相同的类型,如字符串。
或者......你可以使用blob路由并使用带有字段输入变换器的DSE / Solr来提取blob字段并填充Solr动态列,然后可以轻松查询。
实际上,地图列方法导致DSE / Solr隐式地为每个地图元素创建Solr动态字段,因此使用地图或blob与字段输入变换器之间的差异可能更多地取决于偏好,风格和便利性。 / p>
您希望如何查询数据?