2015-08-04 2 views
0

J'utilise hector pour manipuler cassandra de la version 2.1.8 et je veux récupérer toutes les tables de certains keyspace dans une application. J'utilise "KeyspaceDefinition.getCfDefs()" pour récupérer la liste columnfamily dans un espace de clé.Récupérer tous les columnfamily/tables de thrift et CQL de l'espace-clé dans cassandra

Cependant, j'ai trouvé que la fonction getCfDefs() peut simplement récupérer la famille de colonnes créée par l'api thrift comme "me.prettyprint.hector.api.Cluster.updateColumnFamily" mais pas la table créée par CQL comme le client cqlsh.

Ensuite, comment récupérer toutes les tables de certains espaces de clés en utilisant hector?

+0

duplication possible de [Comment faire la liste des familles de colonnes dans l'espace de clé?] (Http://stackoverflow.com/questions/22734191/how-to-list-column-families-in-keyspace) – Aaron

+0

@ BryceAtNetwork23 J'essaie de faites-le en utilisant Hector. Cependant, je peux utiliser CQL plutôt qu'hector à l'avenir. – chenatu

Répondre

2

Vous pouvez consulter toutes les métadonnées de table pour un keyspace en utilisant les tables de programmation métadonnées du système:

select * from system.schema_columnfamilies where keyspace_name='ks'; 
select * from system.schema_columns where keyspace_name='ks'; 

Vous devrez regrouper ces colonnes et tables vous-même. Sinon, si vous n'êtes pas lié à ce client, vous pouvez utiliser cqlsh pour "décrire" l'espace de clé en question ou utiliser l'un des pilotes DataStax avec une API de métadonnées (java, python).

+0

Merci Adam. J'ai discuté avec d'autres et trouvé qu'un client d'épargne ne peut pas voir les tables créées par l'intermédiaire de CQL. J'envisage d'utiliser CQL plutôt qu'hector. – chenatu

+0

Certainement un bon choix si vous n'êtes pas lié à ce client. –