只要输入该标题,我就会想知道我是否在某个维度中,我所知道的数据库都是错误的。
我有[几个表,但这是一个例子]:
CREATE TABLE stream (
source_id uuid,
yyyymmdd int,
event_type text,
time timestamp,
data text,
PRIMARY KEY ((source_id, yyyymmdd, event_type), time)
)
我知道yyyymmdd
中可能包含的内容,但对于其他分区键,我没有。在不知道source_id和event_type的可能值是什么的情况下,我无法查询它。我最终想知道的是:
db中最早的yyyymmdd
和最新的yyyymmdd
是什么?
这几乎就像我需要一个数据库中的数据库。
答案 0 :(得分:1)
在cqlsh中,转到您的密钥空间(use <keyspace_name>
)并运行
copy stream(yyyymmdd) to 'stream-yyyymmdd.csv' with NUMPROCESSES = 1 and MAXREQUESTS = 1;
如果您不想运行use <keyspace_name>
,或者使用keyspace_name(&lt; keyspace_name&gt; .stream)在复制命令中为表名添加前缀。
对于NUMPROCESSES和MAXREQUESTS,您可以使用适合您的值。请参阅COPY documentatation here。 NUMPROCESSES是工作进程的数量。最大值为16.默认值:-1。 MAXREQUESTS是每个工作者可以并行处理的最大请求数。默认值:6。
然后进行排序并提取第一行和最后一行
sort -n -o stream-yyyymmdd-sorted.csv stream-yyyymmdd.csv
head -1 stream-yyyymmdd-sorted.csv
tail -1 stream-yyyymmdd-sorted.csv
HTH