我是Cassandra的新手,并尝试使用Cassandra实现一个玩具应用程序.我在Cassandra DB中创建了一个键空间和几个列族,但我忘记了我的簇的名称.
我试图找到是否有任何查询可以列出所有可用的键空间.
有谁知道这样的查询或命令?
我需要从性能和查询方面的细节,我从一些网站上了解到,在使用columnfamily时只能给出一个密钥,如果是这样你会给我的密钥空间建议什么,我需要使用group by,order by,count,sum ,ifnull,concat,join,有时是嵌套查询.
我想在cassandra中选择表的特定字段并将它们插入另一个表中.我在sql server中这样做:
INSERT INTO Users(name,family)
SELECT name,family FROM Users
Run Code Online (Sandbox Code Playgroud)
如何在cassandra-cli或cqlsh中进行此操作?
我正在使用Cassandra 1.2.5.在使用cassandra-cli在Cassandra中创建列族之后,是否可以使用cassandra-cli或CQL修改列族的主键?
具体来说,我目前有下表(来自CQL):
CREATE TABLE "table1" (
key blob,
column1 blob,
value blob,
PRIMARY KEY (key, column1)
);
Run Code Online (Sandbox Code Playgroud)
我希望该表如下,而不必删除并重新创建表:
CREATE TABLE "table1" (
key blob,
column1 blob,
value blob,
PRIMARY KEY (key)
);
Run Code Online (Sandbox Code Playgroud)
这可能通过cassandra-cli或CQL实现吗?
我正在尝试配置Cassandra Datastax Community Edition在Windows上进行远程连接,
Cassandra Server安装在Windows 7 PC上,通过本地CQLSH,它可以完美地连接到本地服务器.
但是当我尝试从同一网络中的另一台PC连接CQLSH时,我收到以下错误消息:
连接错误:('无法连接到任何服务器',{'MYHOST':错误(10061,"尝试连接到[('HOST_IP',9042)].最后一个错误:由于目标计算机主动拒绝,因此无法建立连接它")})
所以我想知道如何正确配置(我应该在cassandra.yaml配置文件上做什么更改)Cassandra服务器允许远程连接.
先感谢您!
我从cassandra开始,当我在cassandra-cli中运行list或get命令时,我得到这样的结果:
[default@usersdatabase] list users;
Using default limit of 100
-------------------
RowKey: boby
=> (column=6e616d65, value=426f62, timestamp=1294780856414000)
-------------------
RowKey: edzuksm
=> (column=656d61696c, value=6d617268656c697340696e626f782e6c76, timestamp=1294780533705000)
=> (column=6e616d65, value=45647561726473, timestamp=1294780488155000)
=> (column=7375726e616d65, value=4d617268656c6973, timestamp=1294780515429000)
2 Rows Returned.
Run Code Online (Sandbox Code Playgroud)
我看不懂它,我只看到像'6e616d65'这样的值.
如何以人类可读的格式显示值?
我是cassandra的新手.我需要在cassandra中的相同键空间中将数据从一个columnFamily复制到另一个columnFamily.因为我们在键空间K1中有一个A1 columnFamily,所以现在我需要在相同的键空间K1中创建columnFamily A2.我需要从中复制数据columnFamily A1到A2 .A1和A2具有相同的模式.我读了在线文档,我们可以使用sstable loader将数据从一个cassandra集群复制到另一个cassandra集群.但是在这里我需要将数据从一个columnFamily复制到同一个键空间内的另一个columnFamily.
上面的任何想法.或者它是否可以实现我不确定.
我正在尝试获取列名但无法获得仅列名称.
在cli中我执行了命令describe table nodes,它返回了结果:
CREATE TABLE nodes (
key text PRIMARY KEY,
id text,
scores text,
topic1 text,
topic2 text,
topic3 text,
topic4 text,
topics text
) WITH COMPACT STORAGE AND
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.000000 AND
gc_grace_seconds=864000 AND
read_repair_chance=0.100000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'SnappyCompressor'};
CREATE INDEX idx_nodes_id ON nodes (id);
Run Code Online (Sandbox Code Playgroud)
正如在这个问题中给出的,我尝试在cli中使用以下命令:
SELECT column_name FROM system.schema_columnfamilies WHERE keyspace_name = 'ianew' AND columnfamily_name = 'nodes';
Run Code Online (Sandbox Code Playgroud)
但它给出了错误:
Bad Request: Undefined name …Run Code Online (Sandbox Code Playgroud) 我有一个具有多个计数器列的列族.现在我想要代表不同的行键获取它们的值,像RangeSlicesQuery或MultigetSliceQuery这样的手段,我想在计数器列上应用请在计数器列中给我一些方法.
根据这个问题,Cassandra的存储格式在3.0中更新.
如果之前我可以使用cassandra-cli来查看SSTable是如何构建的,那就得到这样的结果:
[default@test] list phonelists;
-------------------
RowKey: scott
=> (column=, value=, timestamp=1374684062860000)
=> (column=phonenumbers:bill, value='555-7382', timestamp=1374684062860000)
=> (column=phonenumbers:jane, value='555-8743', timestamp=1374684062860000)
=> (column=phonenumbers:patricia, value='555-4326', timestamp=1374684062860000)
-------------------
RowKey: john
=> (column=, value=, timestamp=1374683971220000)
=> (column=phonenumbers:doug, value='555-1579', timestamp=1374683971220000)
=> (column=phonenumbers:patricia, value='555-4326', timestamp=137468397122
Run Code Online (Sandbox Code Playgroud)
在最新版本的Cassandra中,内部正式会是什么样子?你能提供一个例子吗?
我可以使用什么实用程序以上面列出的方式查看Cassandra中表的内部表示,但是使用新的SSTable格式?
我在互联网上找到的所有内容都是分区标题如何存储列名,行存储聚类值以及没有重复值.
我该怎么看?