【发布时间】:2016-04-19 02:39:01
【问题描述】:
想象一个包含 数千 列的表,其中行记录中的大多数数据为空。其中一列是一个 ID,这个 ID 是预先知道的。
select id,SomeRandomColumn
from LotsOfColumnsTable
where id = 92e72b9e-7507-4c83-9207-c357df57b318;
SomeRandomColumn 是数千列之一,在大多数情况下是唯一包含数据的列。 SomeRandomColumn 不预先知道是包含数据的列。
-
是否有可以执行此类操作的 CQL 查询。
select {Only Columns with data} from LotsOfColumnsTable where id = 92e72b9e-7507-4c83-9207-c357df57b318; -
我正在考虑放入一个“提示”列,该列指向包含数据的列,但除非有一个看起来像这样的 CQL 查询与一个查询,否则这感觉不对;
select ColumnHint.{DataColumnName} from LotsOfColumnsTable where id = 92e72b9e-7507-4c83-9207-c357df57b318;
在 MongoDB 中,我将只有一个集合,而我返回的文档将具有描述数据的“类型”属性。所以也许我真正的问题是如何在 Cassandra 中复制我可以用 MondoDB 做的事情。到目前为止,我的 Cassandra 之旅是为每个唯一文档创建 UDT,然后更改表以将此新 UDT 添加为列。我的起始表看起来像这样,其中 ColumnDataName 是提示;
CREATE TABLE IF NOT EXISTS WideProductInstance (
Id uuid,
ColumnDataName text
PRIMARY KEY (Id)
);
谢谢
【问题讨论】:
-
Cassandra 没有空值的概念。如果一行中有一个空列,则它是空的。您可以执行 SELECT *。 Cassandra 将仅返回现有数据。我不明白你为什么需要更多?
标签: cassandra