Szukam sposobu, aby usunąć wszystkie wiersze z danej rodziny kolumn w Kasandra.Jak usunąć wszystkie dane z rodziny kolumn Cassandra?
Jest to odpowiednik TRUNCATE TABLE
w języku SQL.
Szukam sposobu, aby usunąć wszystkie wiersze z danej rodziny kolumn w Kasandra.Jak usunąć wszystkie dane z rodziny kolumn Cassandra?
Jest to odpowiednik TRUNCATE TABLE
w języku SQL.
Możesz użyć komendy oszczędzania truncate
lub polecenia TRUNCATE <table>
w CQL.
Jest bardzo proste w Astyanax. Tylko pojedyncze sprawozdanie Linia
/* keyspace variable is Keyspace Type */
keyspace.truncateColumnFamily(ColumnFamilyName);
Jeśli używasz Hectora to jest łatwe, a także:
cluster.truncate("our keyspace name here", "your column family name here");
Można również zrobić to za pośrednictwem Cassandra CQI.
$ cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.6 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh> TRUNCATE my_keyspace.my_column_family;
Jeśli używasz cqlsh, wtedy można albo zrobić na 2 sposoby
use keyspace
; a następnie truncate column_family;
truncate keyspace.column_family;
Jeśli chcesz użyć sterownika DataStax Java, można spojrzeć - http://www.datastax.com/drivers/java/1.0/com/datastax/driver/core/querybuilder/QueryBuilder.html lub http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/querybuilder/Truncate.html
w zależności od wersji.
Jeśli pracujesz nad konfiguracją klastra, obcięcie może być używane tylko wtedy, gdy wszystkie węzły klastra są UP.
Korzystając obciąć, stracimy dane (nie jesteśmy pewni ze znaczeniem danych)
tak więc bardzo bezpieczny sposób, jak dobrze trick do usuwania danych jest użycie polecenia Kopiuj,
1) kopii zapasowych danych przy użyciu kopia Cassandra cmd
copy tablename to 'path'
2) powielić plik, używając linux cmd cp
cp 'ścieżka src' 'ścieżka dst'
3) edytuj zduplikowany plik w ścieżce dst, usuń wszystkie linie oczekujące pierwszego wiersza.
zapisz plik.
4) używać kopii cmd Cassandra importować
copy tablename from 'dst path'
Dzięki za to. Zamiast tego użyłem 'drop column family' i ponownie utworzyłem rodzinę kolumn, ale dobrze jest wiedzieć, jaka składnia istnieje. –
Po prostu, aby dodać do tego, upuszczenie rodziny kolumn nie powoduje usunięcia danych na dysku. Musisz ręcznie ustawić tabele. W związku z tym uważam za użyteczne, aby zawsze tworzyć nowe rodziny kolumn z unikalnymi nazwami, wskazując datę ich utworzenia, tj. Users_2013_09_29, itp. –
Jedyną wadą 'truncate' jest to, że wszystkie węzły klastra muszą być w górze.Jeśli tak nie jest, możesz użyć 'drop columnfamily', a następnie utwórz ją ponownie. – Tom