从 CLI 使用 Cassandra 创建 Columnfamily 问题
Create Columnfamily problem with Cassandra from CLI
我是 Cassandra 和 noSQL 数据库的初学者。为了我的考试,我必须纠正教授给我的一些指导。我已经纠正了其中的一些,但现在我无法解决这个问题:
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...)
如果有人能帮助我,我将不胜感激。
我希望它能被理解,因为我的英语不是很好
您的 columnfamily 定义或 table 定义(这是 Cassandra tables 的最新术语)缺少实际的列和主键,而且您似乎混淆了您的列使用 table 选项定义(比较器 = UTF8Type),例如 read_repair_chance 和 gc_grace_period.
所有 Cassandra table 必须至少有一个主键列。
要使用默认 table 选项在键空间 ks
中创建最小 table post
,您可以这样做:
CREATE TABLE ks.post (comparator text PRIMARY KEY);
检查 table 定义和设置 table 选项的完整语法:
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';
注意:如果您使用默认 table 选项,则不必在 table 创建命令中指定它们。
有关 table 创建的文档,请查看此处,例如:
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-table
我是 Cassandra 和 noSQL 数据库的初学者。为了我的考试,我必须纠正教授给我的一些指导。我已经纠正了其中的一些,但现在我无法解决这个问题:
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...)
如果有人能帮助我,我将不胜感激。
我希望它能被理解,因为我的英语不是很好
您的 columnfamily 定义或 table 定义(这是 Cassandra tables 的最新术语)缺少实际的列和主键,而且您似乎混淆了您的列使用 table 选项定义(比较器 = UTF8Type),例如 read_repair_chance 和 gc_grace_period.
所有 Cassandra table 必须至少有一个主键列。
要使用默认 table 选项在键空间 ks
中创建最小 table post
,您可以这样做:
CREATE TABLE ks.post (comparator text PRIMARY KEY);
检查 table 定义和设置 table 选项的完整语法:
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';
注意:如果您使用默认 table 选项,则不必在 table 创建命令中指定它们。
有关 table 创建的文档,请查看此处,例如: 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-table