cassandra api概覽

Cassandra的thrift api在0.3後發生大幅改變,在往後的小版本,0.4,0.5和0.6的改變都是向後兼容的。這份文檔主要解釋與說明在0.5到0.6版本的變化。
Cassandra的客戶端api都是基於thrift構建的。值得指出的,這些文檔提到的默認值,並是被所有基於thrift api的各種語言所支持的。所有基於thrift的cassandra例子和模板都可以在[url=http://wiki.apache.org/cassandra/ThriftExamples]ThriftExamples[/url]上找到。更多關於cassandra客戶端可以看[url=http://wiki.apache.org/cassandra/ClientOptions]ClientOptions[/url]。
注意:在文檔中會類比SQL/關係型數據庫講解cassandra客戶端api。關係型數據庫和cassandra的數據存儲很少有相似之處。更多信息請看cassandra的[url=http://wiki.apache.org/cassandra/DataModel]數據模型[/url]。
名詞解析
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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章