【问题标题】:Cassandra column family displays differently through CLI and DataStaxCassandra 列族通过 CLI 和 DataStax 以不同方式显示
【发布时间】:2014-07-05 12:02:34
【问题描述】:

我试图理解为什么我会以两种方式看到不同的数据来显示 Cassandra (1.2.x) 列族列。

首先,我使用cassandra-clilist 列族中的行。

[cassandra-cli]> list Users columns 1;
Using default limit of 100
-------------------
RowKey: [rowkey1]
=> (name=[name1], value=[value1], timestamp=[timestamp1])

[] 之间的数据是值的占位符。实际上,它们显示为byte[] 的十六进制表示。以上似乎表明有一行只有一列(具有名称、值和时间戳)。

我正在做我认为与 DataStax v1 API 等效的事情

var cluster = Cluster.Builder ()
    .AddContactPoint ("127.0.0.1")
    .Build ();

var metadata = cluster.Metadata;
var keyspace = "keyspaceName";
var tableMetadatas = metadata.GetTables(keyspace);

foreach (var tableMetadata in tableMetadatas) {
    var session = cluster.Connect(keyspace);    

    var rowSet = session.Execute("SELECT * FROM \""+ tableMetadata + "\" ", ConsistencyLevel.One);
    CqlColumn[] columns = rowSet.Columns;
                
    foreach(var column in columns) {
        Console.WriteLine("Column name: " + column.Name + ", type: " + column.Type + ", keyspace: " + column.Keyspace);
    }

    foreach (var row in rowSet.GetRows()) {
        for (int i = 0; i < row.Length; i++) {
            String value = Encoding.UTF8.GetString(row.GetValue<byte[]>(i));
                        Console.WriteLine(value);
        }
    }
}

这显示

Column name: key, type: System.Byte[], keyspace: keyspaceName
Column name: column1, type: System.Byte[], keyspace: keyspaceName
Column name: value, type: System.Byte[], keyspace: keyspaceName
[The string value of rowkey1]
[The string value of name1]
[The string value of value1]

这似乎表明有 3 列:一列名称为 key,其中值为 rowkey;一个名称为column1,其中值是name1 的值;一个名称为value,其中值是value1 的值。

我应该如何解释这些差异?

【问题讨论】:

    标签: c# cassandra datastax cassandra-cli


    【解决方案1】:

    使用cassandra-cli 时,您会看到存储的“Thrift-perspective”,而使用 DataStax 驱动程序和cqlsh 时,您会看到“CQL-perspective”。

    有一系列帖子描述了这两者之间的关系。我已经在我对 SO 上的Different between Thrift and CQL3 columns 问题的回答中链接到这些。

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2018-12-20
      • 2017-05-20
      • 2013-12-06
      • 1970-01-01
      • 2013-08-27
      • 2014-04-08
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多