Cassandra简介

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://eric100.blog.51cto.com/2535573/1712550

 Apache Cassandra是一个大规模可伸缩的开源NoSQL数据库。Cassandra完美地支持管理大量的结构化,半结构化和非结构化数据,且能够跨多个数据中心和云。Cassandra提供了持续可用性,线性扩展,操作简单,跨多个服务器而没有单点故障。且提供了一个有力的动态数据模型,支持最大的灵活性和快速响应。

  1. Cassandra工作原理

    Cassandra的build-for-scale架构,能够处理PB级的数据信息和每秒处理成千上万的并发用户操作。

    Cassandra是一个分区行存储数据库Cassandra的架构允许任何授权用户连接到任意数据中心的任意节点,使用CQL语言访问数据。为了使用简单,CQL使用类SQL语法。最基本的方式与Cassandra交互是使用CQL shell(cqlsh)。使用cqlsh,你能够创建keyspaces和tables,插入和查询tables等等。如果你倾向于图形化工具,你可以使用DataStax DevCenter。DataStax提供了一系列drivers,使得CQL语句可以从客户端发送给cluster和返回。其他的管理任务可以使用OpsCenter来完成。
    自动的数据分发Cassandra提供了自动的分发数据到集群中的所有节点。无需编写代码,数据透明分区到所有节点。
    内置的自定义复制Cassandra提供了内置和自定义复制,存储冗余备份到多个节点上。意味着如果集群中任意节点挂掉,可以使用一个或多个备份数据。复制策略为每个数据中心配置生效
    线性扩展Cassandra提供了线性扩展,意味着可以很容易的在线上添加一个新的节点。比如,2个节点可以每秒可以处理100000 transactions,那么4个节点每秒可以处理200000 transactions,8个节点可以每秒处理400000 transactions.
     intro_cassandra.png
  2. Cassandra与关系型数据的不同

     

            Cassandra设计成为使用peer-to-peer交互的分布式数据库。作为最佳实践,查询应该在每张表中。数据是非规范化的。因为这个原因,表之间的join操作不存在,但是可以在client-side 实现joins。

  3. 什么是CQL

              CassandraQuery Language(CQL)是最主要的接口对于Cassandra DBMS。使用CQL类似于使用SQL。CQL和SQL都使用表结构中的columns和rows。与SQL主要不同点是Cassandra不支持joins和subqueries(子查询)。

  4. 如何与Cassandra交互

            最基本的方式与Cassandra交互是使用CQL shell(cqlsh)。使用cqlsh,你能够创建keyspaces和tables,插入和查询tables等等。如果你倾向于图形化工具,你可以使用DataStax DevCenter。DataStax提供了一系列drivers,使得CQL语句可以从客户端发送给cluster和返回。其他的管理任务可以使用OpsCenter来完成

  5. 如何插入数据

            数据的插入可以使用CQL INSERT命令,CQL COPY命令,CSV文件或sstableloader。但在实际中,你需要考虑客户端应用程序如何去查询,所以首先需要数据建模。在关系型数据库和NoSql的范式变化意味着,从RDBMS中直接迁移到Cassandra注定是失败的

  6. Cassandra其他工具

            Cassandra自动安装了nodetool,一个有用的命令行管理工具。cassandra-stress一个压测工具,默认已安装。

转载于:https://my.oschina.net/GreenHill/blog/787330

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值