如何使用java从cassandra读取所有具有数据类型的行?
我想读取Cassandra中给定键空间和列族的所有数据类型行。 为了读取数据,我尝试使用CQL,如下所示如何使用java从cassandra读取所有具有数据类型的行?,cassandra,hector,cql,Cassandra,Hector,Cql,我想读取Cassandra中给定键空间和列族的所有数据类型行。 为了读取数据,我尝试使用CQL,如下所示 CqlQuery<String, String, ByteBuffer> cqlQuery = new CqlQuery<String, String, ByteBuffer>(keyspaceOperator, se, se, be); cqlQuery.setQuery("select * from colfam1"); QueryResult<CqlR
CqlQuery<String, String, ByteBuffer> cqlQuery = new CqlQuery<String, String, ByteBuffer>(keyspaceOperator, se, se, be);
cqlQuery.setQuery("select * from colfam1");
QueryResult<CqlRows<String, String, ByteBuffer>> result = cqlQuery.execute();
CqlQuery CqlQuery=新的CqlQuery(keyspaceOperator,se,se,be);
setQuery(“从colfam1中选择*);
QueryResult result=cqlQuery.execute();
甚至我也尝试过使用Hector slice查询API
Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "localhost:9160");
Keyspace keyspace = HFactory.createKeyspace("rajesh", cluster);
SliceQuery<String, String, String> sliceQuery = HFactory.createSliceQuery(keyspace, stringSerializer, stringSerializer, stringSerializer);
sliceQuery.setColumnFamily("colfam1").setKey("key123");
sliceQuery.setRange("", "", false, 4);
QueryResult<ColumnSlice<String, String>> result = sliceQuery.execute();
Cluster Cluster=HFactory.getOrCreateCluster(“测试集群”,“本地主机:9160”);
Keyspace Keyspace=HFactory.createKeyspace(“rajesh”,集群);
SliceQuery SliceQuery=HFactory.createSliceQuery(键空间、stringSerializer、stringSerializer、stringSerializer);
sliceQuery.setColumnFamily(“colfam1”).setKey(“key123”);
sliceQuery.setRange(“,”,false,4);
QueryResult result=sliceQuery.execute();
但在这两种方式中,我都能够读取所有行,但无法读取数据类型
有人能帮我用java从cassandra读取数据类型的行值吗?读取带值的行非常简单。但我也想阅读元数据。这是解决这个问题的办法
public Map<String, ArrayList<String>> getMetaData(Client _client, String _keyspace) throws SQLException, NotFoundException, InvalidRequestException, TException{
ArrayList<String> columnfamilyNames = new ArrayList<String>();
ArrayList<String> columnNames = new ArrayList<String>();
ArrayList<String> validationClasses = new ArrayList<String>();
Map<String, ArrayList<String>> metadataMapList =new HashMap<String,ArrayList<String>>();
KsDef keyspaceDefinition = _client.describe_keyspace(_keyspace);
List<CfDef> columnDefinition = keyspaceDefinition.getCf_defs();
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());
}
}
metadataMapList.put("columnfamilyName", columnfamilyNames);
metadataMapList.put("ColumnName", columnNames);
metadataMapList.put("validationClass", validationClasses);
return metadataMapList;
}
publicmap getMetaData(Client _Client,String _keyspace)抛出SQLException、NotFoundException、InvalidRequestException、TexException{
ArrayList columnfamilyNames=新的ArrayList();
ArrayList columnNames=新的ArrayList();
ArrayList validationClasses=新的ArrayList();
Map metadataMapList=新HashMap();
KsDef keyspaceDefinition=\u client.description\u keyspace(\u keyspace);
List columnDefinition=keyspaceDefinition.getCf_defs();
对于(int i=0;i