Создать проблему Columnfamily с Cassandra из CLI - PullRequest
0 голосов
/ 11 апреля 2020

Я новичок в Кассандре и не SQL база данных. Для моего экзамена я должен исправить некоторые инструкции, которые дал мне профессор. Я исправил некоторые из них, но теперь я не могу это исправить:

cqlsh> create COLUMNFAMILY post
   ... with comparator = UTF8Type
   ... and read_repair_chance = 0.1
   ... and keys_cached = 100
   ... and gc_grace = 0
   ... and min_compaction_threshold = 5
   ... and max_compaction_threshold = 31

Я получаю эту ошибку от CLI:

SyntaxException: line 2:0 mismatched input 'with' expecting '(' (create COLUMNFAMILY post[with] comparator...)

Я был бы очень признателен, если кто-то может помочь мне.

Надеюсь, это понятно, потому что мой Engli sh не очень хорош

1 Ответ

0 голосов
/ 12 апреля 2020

В определении семейства столбцов или в определении таблицы (что является более поздним термином для таблиц Cassandra) отсутствуют фактические столбцы и первичный ключ, и, похоже, вы смешали определение столбца (comptor = UTF8Type) с параметрами таблицы, например read_repair_chance и gc_grace_period.

У всех таблиц Cassandra должен быть хотя бы один столбец первичного ключа.

Чтобы создать минимальную таблицу post в пространстве ключей ks с параметрами таблицы по умолчанию, вы может сделать это:

CREATE TABLE ks.post (comparator text PRIMARY KEY);

Чтобы проверить определение таблицы и полный синтаксис для установки параметров таблицы:

describe table ks.post;

CREATE TABLE ks.post (
    comparator text PRIMARY KEY
) 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 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 speculative_retry = '99PERCENTILE';

Примечание: если вы используете параметры таблицы по умолчанию, вы не необходимо указать их в вашей команде создания таблицы.

Для документации по созданию таблицы, проверьте здесь, например: https://docs.datastax.com/en/dse/5.1/cql/cql/cql_reference/cql_commands/cqlCreateTable.html

или здесь: http://cassandra.apache.org/doc/latest/cql/ddl.html#create -стол

...