这个问题适用于Cassandra 2.2
我很尴尬地说,我仍然不明白我什么时候应该运行一个nodetool repair,或者更准确地说哪个节点.
到目前为止,我知道为了确保正确处理删除,我应该以低于的频率运行修复GC_GRACE_SECONDS.所以这很酷.
问:如果我有一个9个节点的集群,复制因子为3,我运行什么类型的修复?更重要的是,我是在每个节点上运行修复,还是只在一个节点上运行?
问:如果我有多个数据中心,这是否会改变我运行维修的方式.我是否必须在每个DC中运行它们,还是可以从一个DC中的一个节点进行协调?
我希望这是一个微不足道的问题,有人可以告诉它是怎么回事.
我正在使用cassandra 2.1.10.所以首先我要清楚我知道二级索引是cassandra中的反模式.但是出于测试目的,我试图遵循:
CREATE TABLE test_topology1.tt (
a text PRIMARY KEY,
b timestamp
) 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'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
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 = '99.0PERCENTILE';
CREATE INDEX idx_tt ON test_topology1.tt (b);
Run Code Online (Sandbox Code Playgroud)
当我运行以下查询时,它给了我错误.
cqlsh:test_topology1> Select * from tt …Run Code Online (Sandbox Code Playgroud) 数据框中有一个列批次。它具有诸如'9%'、'$5'等值。
我需要regex_replace以一种从上面的示例中删除特殊字符并仅保留数字部分的方式使用。
例如,在同一列中,9 和 5 分别替换 9% 和 $5。
CREATE TABLE mykespace.newtable (
name text PRIMARY KEY,
marks int,
score float,
value float,
value2 blob
)
cqlsh:mykespace> alter table newtable alter value type int;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Altering of types is not allowed"
cqlsh:mykespace> alter table newtable alter value2 type varint;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Altering of types is not allowed"
Run Code Online (Sandbox Code Playgroud)
无法更改数据类型,甚至无法将 int 更改为 varint 和 float 更改为 int
在cassandra中,我有一个列表列类型.我是新来的火花和斯卡拉,不知道从哪里开始.在火花中我想要计算每个值,是否可以这样做.以下是数据框
+--------------------+------------+
| id| data|
+--------------------+------------+
|53e5c3b0-8c83-11e...| [b, c]|
|508c1160-8c83-11e...| [a, b]|
|4d16c0c0-8c83-11e...| [a, b, c]|
|5774dde0-8c83-11e...|[a, b, c, d]|
+--------------------+------------+
Run Code Online (Sandbox Code Playgroud)
我希望输出为
+--------------------+------------+
| value | count |
+--------------------+------------+
|a | 3 |
|b | 4 |
|c | 3 |
|d | 1 |
+--------------------+------------+
Run Code Online (Sandbox Code Playgroud)
火花版:1.4
scala datastax-enterprise apache-spark apache-spark-sql cassandra-2.1
对于 cassandra 中的用户,我使用以下命令获得了权限:
PRICINGUSR@cqlsh:system> LIST ALL PERMISSIONS OF PRICINGUSR;
username | resource | permission
------------+--------------------+------------
PRICINGUSR | <keyspace pricing> | CREATE
PRICINGUSR | <keyspace pricing> | ALTER
PRICINGUSR | <keyspace pricing> | DROP
PRICINGUSR | <keyspace pricing> | SELECT
PRICINGUSR | <keyspace pricing> | MODIFY
PRICINGUSR | <keyspace pricing> | AUTHORIZE
Run Code Online (Sandbox Code Playgroud)
注意:系统密钥空间没有权限。
但是,当我查询系统键空间表中的某些表时,我得到了响应,而另一些则没有。
PRICINGUSR@cqlsh:system> Select * from system.schema_keyspaces limit 1;
keyspace_name | durable_writes | strategy_class | strategy_options
---------------+----------------+------------------------------------------------------+------------------
ccw_pd | True | org.apache.cassandra.locator.NetworkTopologyStrategy | {"DC1":"3"}
(1 rows)
PRICINGUSR@cqlsh:system> Select * …Run Code Online (Sandbox Code Playgroud)