Frage

Ich bin neu bei Cassandra und verwende derzeit CassandraCSharpDriver in einer Dummy-Anwendung.Ich möchte die Liste aller Tabellen erhalten, die ein Benutzer in einem bestimmten Schlüsselbereich beschrieben hat.

        Cluster cluster = Cluster.Builder().AddContactPoints("IPAddress").Build();
        Session session = cluster.Connect("MyKeySpace");

In diesem Code möchte ich die Liste aller Tabellen von MyKeySpace abrufen

War es hilfreich?

Lösung

Ich werde durchgehen, wie ich diese Tabellenliste mit dem DataStax Cassandra C#-Treiber vorbereiten würde:

Stellen Sie eine Verbindung zu Ihrem Cluster her:

Cluster cluster = Cluster.Builder().AddContactPoints("IPAddress").Build();
Session session = cluster.Connect();

Ich werde eine erstellen List<String> und verwenden Sie eine vorbereitete Anweisung (denn das ist einfach eine gute Idee), um den Namen Ihres Schlüsselraums zu binden.Meine CQL-Anweisung wählt nur aus columnfamily_name, das sollte das sein, was Sie brauchen.

List<String> tableList = new List<String>();

String strCQL = "SELECT columnfamily_name "
    + "FROM system.schema_columnfamilies WHERE keyspace_name=? ";
PreparedStatement pStatement = _session.Prepare(strCQL);
BoundStatement boundStatement = new BoundStatement(pStatement);
boundStatement.Bind("MyKeySpace");

Jetzt führe ich die Anweisung aus, iteriere die Ergebnisse und füge jeden Tabellennamen der Liste hinzu, die ich oben erstellt habe.

RowSet results = session.Execute(boundStatement);

foreach (Row result in results.GetRows())
{
    tableName = result.GetValue<String>("columnfamily_name");
    tableList.Add(tableName);
}

Jetzt sollten Sie über eine Liste von Tabellen verfügen, die Sie Ihrer Benutzeroberfläche hinzufügen können.

Andere Tipps

Sie können ausführen:

generasacodicetagpre.

es läuft gegen das "System"-Keyspace.

    .
  1. Holen Sie sich Spaltennamen :

    SELECT column_name FROM system.schema_columns WHERE keyspace_name = 'KeySpaceName' AND columnfamily_name = 'TableName';
    
  2. Holen Sie sich Spalten-Familiennamen , d. H. Tabellennamen:

    select columnfamily_name from system.schema_columnfamilies where keyspace_name='KeySpaceName';
    

Es gibt die Möglichkeit, Cluster-Metadaten zu verwenden, um eine Zeichenfolgenliste von KeySpaces wie so

zu erhalten generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top