【问题标题】:How to get the raw row content in Cassandra 3.3如何在 Cassandra 3.3 中获取原始行内容
【发布时间】:2016-06-09 22:59:55
【问题描述】:

我正在使用 Cassandra 3.3 和 CQL 创建下表

CREATE TABLE collected_data ( 
    collection_hour int,
    source_id int, 
    entity_id int, 
    measurement text, 
    value text, 
    primary key((collection_hour),source_id,entity_id,measurement)  
);

在这个表中插入了一堆值之后,我想看看 每一行 是如何真正存储在 Cassandra 中的。为此,我看到人们使用 cassandra-cli(列表命令),但在 3.3(3.0 后)中不再可用

有没有一种方法可以用来查询 cassandra 以查看每一行的实际存储方式?我正在从 CQL 中寻找一些工具或任何方法来做到这一点......

谢谢

PS:在 cassandra CLI 中,可以使用“list 命令”并获得类似于以下的输出(当然是不同的表):

RowKey: 1
=> (column=, value=, timestamp=1374546754299000)
=> (column=field2, value=00000002, timestamp=1374546754299000)
=> (column=field3, value=00000003, timestamp=1374546754299000)

RowKey: 4
=> (column=, value=, timestamp=1374546757815000)
=> (column=field2, value=00000005, timestamp=1374546757815000)
=> (column=field3, value=00000006, timestamp=1374546757815000)

【问题讨论】:

  • 您可以为此使用 Datastax DevCenter
  • 我试图用 devcenter 做到这一点,但不幸的是我找不到办法做到这一点。 DevCenter 能够以 .... 好 .. 表格格式打印表格内容 --- X 行 x Y 列,这不是我想要的。我需要存储在 Cassandra 中的原始格式。我需要这个来确保我正确理解了数据的存储方式......谢谢

标签: cassandra cassandra-cli


【解决方案1】:

自 Cassandra 3.0 以来,存储引擎已被重写,因此磁盘布局已完全改变。

没有关于这个主题的官方文档,但您可以查看源代码中的几个地方以大致了解数据在磁盘上的放置方式

UnfilteredSerializer:https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java#L29-L71

Cell存储:https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/rows/Cell.java#L145-L163

ClusteringPrefix:https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ClusteringPrefix.java#L33-L45

【讨论】:

猜你喜欢
  • 2010-12-05
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多