利用docker安装Cassandra并进行实例操作

本文详细介绍了如何在Docker中安装Cassandra,创建网络,启动实例,并深入讲解了CQL语言的基础,包括keyspace、column family/table和Primary Key的概念,以及CQL实例操作。通过实例展示了Cassandra数据模型的理解和查询操作。
摘要由CSDN通过智能技术生成

在docker中拉取Cassandra镜像

在终端中输入如下命令:(前提是已经安装好docker)

docker pull cassandra

创建docker network

Docker有以下网络类型:

bridge:多由于独立container之间的通信
host: 直接使用宿主机的网络,端口也使用宿主机的
overlay:当有多个docker主机时,跨主机的container通信
macvlan:每个container都有一个虚拟的MAC地址
none: 禁用网络

默认网络:Docker在默认情况下,分别会建立一个bridge、一个host和一个none的网络:

docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
cdc35147c3ae        bridge              bridge              local
0418807a829c        host                host                local
a4b53107ae28        none                null                local

创建命令

docker network create [OPTIONS] NETWORK

注意:docker client和daemon API都必须至少为1.21才能使用此命令。使用docker version命令检查client和daemon API版本。

options参数

Name, shorthand Description
--attachable Enable manual container attachment
--aux-address Auxiliary IPv4 or IPv6 addresses used by Network driver
--config-from The network from which copying the configuration
--config-only Create a configuration only network
--driver , -d Driver to manage the Network
--gateway IPv4 or IPv6 Gateway for the master subnet

不加options参数时网络默认采用桥接网络

创建一个Cassandra实例

docker run --name some-cassandra --network some-network -d cassandra:tag

some-cassandra换成你想命名的容器名,some-network换成刚才创建的network,tag注明Cassandra的版本号,默认安装换成latest即可

比如:

docker run --name ctest --network test -d cassandra:latest

连接cqlsh

docker run -it --network some-network --rm cassandra cqlsh some-cassandra
docker run -it --network test --rm cassandra cqlsh ctest
Connected to Test Cluster at ctest:9042.
[cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.

CQL语言

Cassandra查询语言(cql)是一种声明性语言,允许用户使用类似于SQL的语言查询Cassandra。cql是在Cassandra 0.8版中引入的,现在是从Cassandra中检索数据的首选方法。在引入CQL之前,节省一个基于RPC的API是从Cassandra检索数据的首选方法。cql的一个主要好处是它与SQL的相似性,从而有助于降低Cassandra的学习难度。我们可以把CQL看作是一个简单的API,而不是cassandra的内部存储结构。

CQL基础

让我们先了解一些基本的cql构造,然后再进入一个实践示例。

keyspace

keyspace类似于RDBMS数据库。它是应用程序数据的容器。与数据库一样,keyspace必须具有名称和一组关联的属性。定义键空间时必须设置的两个重要属性是复制因子和复制策略。

column family/table

列族/表类似于RDBMS表。keyspace由许多列族/表组成。

Primary Key / Tables

主键使用户能够唯一标识数据的“内部行”。主键由两部分组成。行/分区键和群集键。行/分区键确定存储数据的节点,而群集键确定特定行中数据的排序顺序。

首先要注意的是,cql严重限制了可应用于查询的谓词。这本质上是为了防止错误的查询,并迫使用户仔细考虑他们的数据模型。以下是SQL中经常使用但在cql中不可用的内容列表:

  • 没有任意的where子句
    –在cql中,谓词只能包含主键中指定的列。
  • 无连接构造
    –无法跨列族连接数据。不鼓励在两个列族之间连接数据,因此在cql中没有连接构造。
  • 无分组依据
    –不能对相同的数据分组。
  • 没有任意的ORDER BY子句
    –ORDER BY只能应用于集群列。

学习cql的最佳方法是编写cql查询。cql是与Cassandra交互的一种非常简单的方法,但是如果不理解底层的内部工作,很容易被误用。了解底层结构是掌握CQL的关键。<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值