Cassandra的thrift api在0.3后发生大幅改变,在往后的小版本,0.4,0.5和0.6的改变都是向后兼容的。这份文档主要解释与说明在0.5到0.6版本的变化。
Cassandra的客户端api都是基于thrift构建的。值得指出的,这些文档提到的默认值,并是被所有基于thrift api的各种语言所支持的。所有基于thrift的cassandra例子和模板都可以在
ThriftExamples上找到。更多关于cassandra客户端可以看
ClientOptions。
注意:在文档中会类比SQL/关系型数据库讲解cassandra客户端api。关系型数据库和cassandra的数据存储很少有相似之处。更多信息请看cassandra的
数据模型。
名词解析
Keyspace:包含多重列集合,相当于关系型数据库中的database。
CF:CF是某个特定Key的数据集合,相当于关系数据库中的table,在storage-conf.xml中定义(需要重启服务器才生效),每个CF存放一个单独的文件。
SCF:一种特殊的column的数据集合。
Key:一个唯一的字符串,标识一行CF。行需要一个唯一的字符串来标识,列是通过名称来标识的。thrift的java客户端总是使用utf-8编码的,但是如果你使用的是非java的客户端,那么你可能需要首先手动转码成utf-8。(这主要说明了thrift不支持不同平台间的互操作性)。
Column:一个元组,它包含一个名称,值及时间戳,名字在行中是唯一的。
异常信息
NotFoundException:被请求的特定列不存在。
InvalidRequestExeption:无效的请求可能意味着Keyspace或CF不存在,导致无效请求的原因可能是必要参数丢失或者参数格式不对。
UnavailableException:不是所有的备份都需要被创建和读取的。
TimeOutException:数据节点的读取或者写入过程中没有在配置文件中规定的时间间隔内响应请求(默认是10s)。当节点的请求过大时,导致负载过高或者系统当机时但是失败检测器无法检测到(一般是时间超过30s)。
TApplicationException:内部服务器有错或者无效的thrift方法(可能是因为使用旧版本thrift客户端去访问新版本的cassandra服务器)。
AuthenticationException:无效的身份验证的请求(用户不存在或者凭据无效)
AuthorizationException:无效授权请求(用户没有权限访问keyspace)
分享到:
相关推荐
C/C++ Driver 2.1的文档提供了对如何开始使用这个库的全面指导,从架构概览到编写第一个客户端程序、连接到Cassandra集群,再到执行CQL语句。文档中的参考资料部分详细介绍了各种高级功能和API,使开发者能够充分...
#### 五、API 概览 Hector 提供了丰富的 API,涵盖了 Cassandra 常见操作的所有方面: - **插入单行单列**:`Mutator` 类可用于插入单个列值。 - **获取单列**:通过 `ColumnFamilyHandler` 获取特定列的信息。 - *...
5. **数据存储**:API通常需要与数据库进行交互,可能涉及到SQL(如MySQL、PostgreSQL)或NoSQL(如MongoDB、Cassandra)数据库,以及ORM(对象关系映射)工具如 SQLAlchemy(Python)、Hibernate(Java)等。...
Flink 1.14.2版本包含了丰富的数据源和数据接收器连接器,如Kafka、HDFS、Cassandra等,同时支持多种数据格式,如JSON、Avro、Parquet等,使得数据的输入输出变得非常方便。 8. **SQL支持** Flink SQL接口提供了...
- **Apache Cassandra连接器**:连接Cassandra数据库。 - **亚马逊AWS Kinesis Streams连接器**:接入AWS Kinesis服务。 - **Elasticsearch连接器**:向Elasticsearch写入数据。 - **HDFS连接器**:读写HDFS文件...
Spark SQL能够在大规模数据集上执行高效的SQL查询,支持各种数据源,如HDFS、HBase、Cassandra等。此外,Spark SQL还支持JDBC/ODBC连接,使得传统的BI工具可以直接访问Spark中的数据。 ##### 3.3 SparkSession - ...
《大数据技术概览》 大数据,这一概念在近年来信息技术领域中扮演着日益重要的角色,它不仅改变了我们处理和理解信息的方式,还引领了新的商业模式和决策制定策略。本系列PPT将带你深入探索大数据的世界,从基础...
【Java大数据开发工程师面试知识点概览】 在Java大数据开发工程师的面试中,考察的知识点广泛且深入,涵盖Java编程基础、大数据处理框架、分布式系统、数据库管理、算法与数据结构等多个方面。以下是对这些关键领域...
- **其他NoSQL解决方案**:还包括Cassandra(适用于大规模分布式环境)、HBase(基于Hadoop的列族数据库)等。 #### 缓存层 - **Redis**:作为一种高性能的键值存储系统,Redis在新浪微博的架构中扮演了重要角色。...
- **外部数据集**:讲解如何读取和写入各种外部数据源,如 HDFS、HBase 和 Cassandra。 - **RDD 持久化**:探讨如何将 RDD 存储在内存中或磁盘上,以提高重复使用的效率。 - **共享变量**: - **Broadcast ...
它能够运行在Hadoop、Apache Mesos、Kubernetes或者EC2上,并能访问HDFS、HBase、Cassandra、Amazon S3等不同存储源中的数据。 Spark的关键概念包括SparkSession、DataFrames、Transformations和Actions。...
大数据技术如Hadoop、Spark或Flink可以用于处理海量数据,而NoSQL数据库如MongoDB或Cassandra则可以用于存储这些数据。此外,模板可能还包括数据分析和可视化组件,如Tableau或Power BI,以帮助用户理解并解读环境...
#### 一、书籍概览 《开源工具手册》由Sandeep Koranne撰写,Springer出版社出版。本书系统地介绍了大量先进的开源工具,旨在为软件开发人员提供实用且深入的技术资源。书中涵盖的工具超过200种,涉及软件构建工具...
#### Key-Value存储系统概览 《Redis实战》一书由红丸出品,深入探讨了Redis这一高效、灵活的Key-Value存储系统的特性和应用。书中首先对多种Key-Value存储系统进行了比较,包括Voldemort、Dynamo、memcachedb、...
### 知识点一:后端技术概览 在探讨“程序马的后端之路”时,我们首先需要了解什么是后端技术。后端技术主要指的是服务器端的技术,包括但不限于服务器管理、数据库管理、API设计与实现等。这部分技术是网站或应用...