你好卡桑德拉

一位同事最近告诉我有关Cassandra的一些好处,我决定尝试一下。 Apache Cassandra 快速入门中将Apache Cassandra描述为“当今最流行的NoSQL数据库之一”。 Apache Cassandra的 主页指出:“当您需要可扩展性和高可用性而不影响性能时, Apache Cassandra数据库是正确的选择。” Cassandra是正在使用的公司 ,如易趣Netflix的的Adobereddit的Instagram的 ,和Twitter的 。 这篇文章总结了Cassandra入门的步骤。

可以从Apache Cassandra主页上 下载 Apache Cassandra下载页面指出“ Apache Cassandra的最新稳定版本是2.0.7 (于2014-04-18发行)”,这是我将在本文中讨论和使用的版本。

对于这篇文章,我从Planet Cassandra Downloads下载并安装了DataStax Community Edition。 DataStax社区2.0.7版包括“ Apache Cassandra生产中最稳定和推荐的版本(2.0.7)”。 有适用于Mac OS XMicrosoft Windows和几种Linux的 DataStax Community Edition下载。

下一个屏幕快照显示了DataStax Community Edition安装随附的Apache Cassandra的“ bin”目录的目录列表。

cassandaBinDirInDataStaxCommunityEdition安装

从该“ bin”目录,只需运行适当的可执行文件即可启动Cassandra服务器。 对于单台Windows机器,该命令为cassandra.bat ,此步骤在下一个屏幕快照中说明。

开始CassandraWithCanssandraBat

交互式命令行工具cqlsh也位于Apache Cassandra的“ bin”子目录中。 该工具类似于Oracle数据库的 SQL * PlusMySQL数据库的 mysqlPostgreSQL的 psql 。 它允许人们输入各种CQLCassandra查询语言 )语句,例如插入新数据和查询数据。 下一个屏幕快照显示了从Windows计算机上的命令行启动cqshl

cqlshStartingAndHelp

从上一张图像可以得出一些有用的观察结果。 从启动cqlsh的输出显示,此版本的Apache Cassandra为2.0.7,此版本的cqlsh为4.1.1,相关的CQL规范为3.1.1 。 前一个屏幕快照还演示了通过运行“ HELP”命令提供的帮助。 我们可以看到有多个“文档化的Shell命令”以及更多的“ CQL帮助主题”。

上一个屏幕快照展示了cqlsh中的“ help”命令列出了可以在其上专门运行help命令的各个主题。 例如,下一个屏幕快照演示了在cqlsh中运行“帮助类型”的输出。

cqlsh_helpTypes

在此屏幕快照中,我们看到cqlsh支持的CQL数据类型 ,例如asciitext / varchardecimalintdoubletimestamplistsetmap

Cassandra中的键空间

键空间在Cassandra中很重要。 尽管本文涵盖了Cassandra 2.0,但Cassandra 1.0文档很好地解释了Cassandra中的键空间:“在Cassandra中,键空间是应用程序数据的容器,类似于关系数据库中的架构。 键空间用于将列族组合在一起。 通常,一个集群每个应用程序只有一个密钥空间。” 本文档继续说明键空间通常用于按复制策略对列族进行分组。 下一个屏幕截图演示了如何在cqlsh创建键空间并列出可用的键空间。

creationCassandraKeyspace

上一个屏幕快照包括使用命令SELECT * FROM system.schema_keyspaces;的示例 查看可用的键空间。 如果只想列出可用键空间的名称列表,而没有其他所有详细信息,则很容易使用desc键空间 ,如以下屏幕快照所示。

descCassandraKeyspaces

创建列族(“表”)

创建键空间后,可以创建列族(或表)。 下一个屏幕快照演示了如何将新创建的movies_keyspacemovies_keyspace一起use movies_keyspace; 语句,然后显示使用cqlsh命令SOURCE(类似于在SQL * Plus中使用@ )来运行外部文件以创建表(列族)。 屏幕快照演示列出可用表与desc tables命令并列出一个给定表的具体细节与(在这种情况下,电影) desc table movies命令。

creationMovieTableViaSourceInCassandra

上面的屏幕快照展示了如何使用SOURCE命令运行名为createMovie.cql的外部文件。 接下来显示createMovie.cql文件的代码清单。

CREATE TABLE movies
(
   title varchar,
   year int,
   description varchar,
   PRIMARY KEY (title, year)
);

在列族中插入数据和从中查询

下一个屏幕快照演示了如何将数据插入到新创建的列族/表中[ insert into movies_keyspace.movies (title, year, description) values ('Raiders of the Lost Ark', 1981, 'First of Indiana Jones movies.'); ]。 该图像还显示了如何查询列族/表以查看其内容[ select * from movies ]。

insertingAndQueryingDataMoviesCassandra

Cassandra不是关系数据库

查看刚刚显示的Cassandra查询语言(CQL)语句可能会使某人相信Cassandra是关系数据库。 但是,CQL是Cassandra 2.0中添加的类似关系的功能旨在帮助具有SQL专业知识的人更容易地采用Cassandra。 同样, 在2.0 / 2.1中添加了触发器 。 尽管存在这些Cassandra功能的目的是使关系数据库用户更轻松地采用Cassandra,但Cassandra与关系数据库之间还是存在很大差异。

Cassandra数据模型Apache Cassandra 1.0文档中的页面,该页面描述了Cassandra和关系数据库之间的一些关键区别。 这些包括:

  • “ Cassandra不像表之间的关系数据库那样强制列族之间的关系”
    • 卡桑德拉(Cassandra)中没有外键,卡桑德拉(Cassandra)中没有“ joining”。
  • Cassandra“表”(列族)建模应基于要使用的预期查询进行。

结论

我才刚开始接触Cassandra,但也希望了解更多。 这篇文章重点介绍了获取和开始使用Cassandra的一些基础知识。 要真正了解Cassandra,需要了解许多有关Cassandra的知识以及一些“更深层次”的主题,这些知识包括Cassandra体系结构 (以及此处 ), Cassandra Data Modeling (以及此处 )以及Cassandra的优缺点

翻译自: https://www.javacodegeeks.com/2014/05/hello-cassandra.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值