Восстановление Cassandra из таблицы «У таблицы не было столбцов ключей секционирования в таблицах схемы» - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть таблица, созданная с помощью коннектора Spark Cassandra, создается впечатление, что созданная таблица находится в плохом состоянии, так как ее нельзя запросить или удалить, но я могу запустить desc на ней, и она отображается для desc tables.Однако его столбцы не отображаются в system_schema.columns.Вызывает следующую ошибку:

cqlsh:ams_staging> desc bcookie_sad_1540577971;

CREATE TABLE ams_staging.bcookie_sad_1540577971 (
    bcookie text PRIMARY KEY,
    sadinfo text
) WITH bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

cqlsh:ams_staging> drop table ams_staging.bcookie_sad_1540577971;
ServerError: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: Table ams_staging.bcookie_sad_1545270474 did not have any partition key columns in the schema tables

Полная трассировка стека

ERROR [MigrationStage:1] 2018-12-21 01:58:59,386 CassandraDaemon.java:226 - Exception in thread Thread[MigrationStage:1,5,main]
java.lang.AssertionError: Table ams_staging.bcookie_sad_1545270474 did not have any partition key columns in the schema tables
    at org.apache.cassandra.schema.SchemaKeyspace.fetchTable(SchemaKeyspace.java:950) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.schema.SchemaKeyspace.fetchTables(SchemaKeyspace.java:925) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:888) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesOnly(SchemaKeyspace.java:880) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1277) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.schema.SchemaKeyspace.mergeSchemaAndAnnounceVersion(SchemaKeyspace.java:1256) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.service.MigrationManager$1.runMayThrow(MigrationManager.java:534) ~[apache-cassandra-3.9.jar:3.9]
    at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[apache-cassandra-3.9.jar:3.9]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_72]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_72]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_72]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_72]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]

Та же ошибка приводит к невозможности запуска некоторых узлов.Также любая другая попытка записи в это пространство ключей через соединитель Spark Cassandra не будет выполнена с той же ошибкой.Попытка усечь таблицу также не работает.Я также попытался добавить столбец partition_key в system_schema.columns, который также не работал.

Я нашел https://jira.apache.org/jira/browse/CASSANDRA-13180, который, похоже, предлагает единственный способ восстановления - это «восстановление из резервной копии».Есть ли способ просто отбросить эти таблицы или заставить Кассандру забыть об этих таблицах?

Кассандра Версия 3.9

1 Ответ

0 голосов
/ 25 января 2019

К сожалению, не было способа восстановиться.Отбросить пространство клавиш - единственный путь.

...