📜  Cassandra教程(1)

📅  最后修改于: 2023-12-03 14:59:53.723000             🧑  作者: Mango

Cassandra 教程

Cassandra 是一个开源分布式 NoSQL 数据库,用于处理大规模数据的分布式存储。Cassandra 可用于处理结构化、半结构化和非结构化数据。

以下是本教程的主要内容:

  1. 安装 Cassandra
  2. CQL 基础
  3. Cassandra 数据类型
  4. Cassandra 数据建模
  5. Cassandra 查询
  6. Cassandra 客户端应用
安装 Cassandra
Ubuntu 安装 Cassandra

要在 Ubuntu 上安装 Cassandra,请执行以下步骤:

  1. 添加 Apache Cassandra 存储库。

    echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
    
  2. 添加 Apache Cassandra 的签名密钥。

    curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
    
  3. 更新存储库并安装 Cassandra。

    sudo apt-get update
    sudo apt-get install cassandra
    
macOS 安装 Cassandra

要在 macOS 上安装 Cassandra,请执行以下步骤:

  1. 安装 Homebrew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. 使用 Homebrew 安装 Cassandra

    brew install cassandra
    
Windows 安装 Cassandra

要在 Windows 上安装 Cassandra,请执行以下步骤:

  1. 下载 Cassandra

    https://cassandra.apache.org/download/
    
  2. 解压文件并启动 Cassandra

    cd C:\cassandra\bin
    cassandra.bat
    
CQL 基础

CQL 是 Cassandra Query Language 的缩写,是使用 Cassandra 进行数据查询和操作的语言。以下是 CQL 的一些基本概念。

创建 Keyspace
CREATE KEYSPACE mykeyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;
使用 Keyspace
USE mykeyspace;
创建表
CREATE TABLE users (id UUID PRIMARY KEY, name text, email text);
插入数据
INSERT INTO users (id, name, email) VALUES (uuid(), 'John Doe', 'john.doe@example.com');
查询数据
SELECT * FROM users;
Cassandra 数据类型

Cassandra 支持以下数据类型。

  • Text
  • Int
  • BigInt
  • Float
  • Double
  • Boolean
  • UUID
  • TimeUUID
  • Inet
  • Collection types (List, Set, Map)
Cassandra 数据建模

Cassandra 的数据建模是不同于传统关系型数据库的概念。在 Cassandra 中,数据建模需要考虑数据的访问方式和现实意义。以下是一些 Cassandra 的数据建模技巧。

  • 冗余存储:Cassandra 要求为每一个查询提供单独的表。
  • 避免使用关系:Cassandra 不适合使用外键和多个表关系。
  • 合适的数据存储:Cassandra 是为长期和低延迟存储而设计的,适合存储数据量大而且稳定的数据。
  • 数据的平衡:Cassandra 可以具有多副本,数据应该尽可能地分散在集群的不同节点上。
Cassandra 查询
数据批量更新
BEGIN BATCH 
   INSERT INTO users (id, name, email) VALUES (uuid(), 'John Doe', 'john.doe@example.com');
   INSERT INTO users (id, name, email) VALUES (uuid(), 'Jane Doe', 'jane.doe@example.com');
   APPLY BATCH;
数据聚合
SELECT COUNT(*) FROM users;
数据分页
SELECT * FROM users LIMIT 10;
Cassandra 客户端应用

Cassandra 支持多种客户端应用,包括 Python、Java 和 Node.js。

Python 客户端
pip install cassandra-driver
Java 客户端
<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>3.0.0</version>
</dependency>
Node.js 客户端
npm install cassandra-driver

以上是 Cassandra 的介绍和基础知识。Cassandra 的分布式架构和卓越的扩展性使其成为处理大量数据的理想选择。