0

我想在 cassandra 中读取键空间的模式。我知道,在 Cassandra-cli 中,我们可以执行以下命令来获取 Schema

show schema keyspace1;

但我想使用 java 从远程机器读取模式。

我怎么能解决这个问题?Lzzz 帮帮我....

4

1 回答 1

0

我通过使用节俭客户端解决了这个问题

 KsDef keyspaceDefinition = _client.describe_keyspace(_keyspace);
 List<CfDef> columnDefinition = keyspaceDefinition.getCf_defs();

这里的键空间定义包含整个架构细节,因此我们可以从 KsDef 中读取任何我们想要的内容。在我的情况下,我想读取元数据,所以我从上面的列定义中读取列元数据,如下所示。

 for(int i=0;i<columnDefinition.size();i++){
         List<ColumnDef> columnMetadata = columnDefinition.get(i).getColumn_metadata();
        for(int j=0;j<columnMetadata.size();j++){
            columnfamilyNames.add(columnDefinition.get(i).getName());
            columnNames.add(new String((columnMetadata.get(j).getName())));
            validationClasses.add(columnMetadata.get(j).getValidation_class());
            //ar.add(coldef.get(i).getName()+"\t"+bb_to_str(colmeta.get(j).getName())+"\t"+colmeta.get(j).getValidationClass());
        }
    }

这里的 columnfamilyNames、columnNames 和 validationClasses 是数组列表。

于 2013-03-07T11:26:23.733 回答