想像如果擴展性不是問題,您可以做什麼?透過這本實踐指南,您將了解如何應用Cassandra資料庫管理系統處理數百兆位元組的資料,在跨資料中心的同時還保有高可用性,以及許多您在實務運作時必須了解的技術細節與實作範例。
本書將告訴您Cassandra非關聯式資料庫設計的優點,並且特別著重於資料模型的建立。如果您是正在尋求具有擴展性或是前瞻架構解決方案的開發者、資料庫管理人員或架構師,這本指南可以協助您駕馭Cassandra的速度與彈性。
.了解Cassandra的分散式與去中心化概念
.使用Cassandra查詢語言(CQL)與cqlsh(CQL shell)
.建立有效的資料模型並與關聯式模型比較
.使用各種不同語言的客戶端驅動開發範例應用程式,包含Java、Python與Node.js
.探索叢集拓譜與學習節點間的互動機制
.維護高效能的叢集
.在機房、雲端或Docker容器佈署Cassandra
.整合Cassandra與Spark、Hadoop、ElasticSearch、Solr與Lucene
作者簡介:
Eben Hewitt是全球知名飯店品牌美國精品國際酒店集團(Choice Hotels International)的技術長。著有多本關於架構、分散式系統以及程式設計的書籍。他也擔任許多創投公司的顧問,並且經常受邀發表關於技術與策略的相關演講。
Jeff Carpenter是國精品國際酒店集團的系統架構師,用有超過20年的餐旅業與國防工業相關經驗。Jeff的興趣包含SOA/微架構、大型系統與資料架構設計。他參與過各式各樣的專案,包括複雜的戰爭規劃系統到雲端旅館訂房系統。Jeff對改變業界的革命性專案、指導後進架構師與開發人員、以及迎接下一個挑戰充滿熱情。
各界推薦
名人推薦:
“本書將會告訴你為何與如何在應用程式中使用Cassandra建立令人驚嘆的成功案例” — Patrick McFadin, Apache Cassandra首席佈道師
名人推薦:“本書將會告訴你為何與如何在應用程式中使用Cassandra建立令人驚嘆的成功案例” — Patrick McFadin, Apache Cassandra首席佈道師
作者序
本書是一本技術指南。Cassandra在許多方面都展現了關於資料的新思維。近15~20年的多數開發人員熟悉以關聯式或是物件的方式看待資料,並以此獲得成功。Cassandra的資料模型設計理念非常不同,剛接觸時可能會很不習慣,特別對那些對於關聯式資料庫系統已經根深蒂固(而且必須如此)的使用者而言。
使用Cassandra不代表你必須是Java開發者。然而Cassandra是由Java撰寫的,若你開始深入探討原始碼,具備Java的背景知識,可以讓你更加了解例外處理、如何建立原始碼以及如何使用一些常見的客戶端。本書許多範例是由Java撰寫。因為可以透過介面存取Cassandra,你可以在許多不同語言中找到Cassandra的客戶端,例如C#、Python、node.js、PHP與Ruby。
最後,我們假設你對於網頁的運作方式有良好的認識、可以使用至少一種整合開發環境(IDE),並且對傳統資料驅動應用程式有一定程度的認知。你可能是經驗豐富的開發者或是維運人員,但對Cassandra提供的工具沒那麼熟悉。舉例來說,使用Apache Ant建立Cassandra,或是透過Git取得Cassandra原始碼。我們也認為你需要實際進行一些配置以建立個人小型的Cassandra分散式料庫,這樣會對範例有更佳的體悟。本書中會提供相關協助。
本書是一本技術指南。Cassandra在許多方面都展現了關於資料的新思維。近15~20年的多數開發人員熟悉以關聯式或是物件的方式看待資料,並以此獲得成功。Cassandra的資料模型設計理念非常不同,剛接觸時可能會很不習慣,特別對那些對於關聯式資料庫系統已經根深蒂固(而且必須如此)的使用者而言。
使用Cassandra不代表你必須是Java開發者。然而Cassandra是由Java撰寫的,若你開始深入探討原始碼,具備Java的背景知識,可以讓你更加了解例外處理、如何建立原始碼以及如何使用一些常見的客戶端。本書許多範例是由Java撰寫。因為可以透過介面...
目錄
第1章 關聯式資料庫之外
介紹關聯式資料庫的歷史以及最近崛起的非關聯式資料庫技術。
第2章 Cassandra簡介
介紹Cassandra及其令人注目與不同之處,包含它的由來與優點。
第3章 安裝Cassandra
告訴你如何安裝 啟動以及使用一些Cassandra的基礎功能。
第4章 Cassandra查詢語言(Cassandra Query Language)
檢視Cassandra的資料模型。說明它與傳統關聯式資料庫模型的差別。探討如何在Cassandra查詢語言(CQL)中表示這種資料模型。
第5章 資料建模(Data Modeling)
介紹Cassandra資料建模的原則與流程。分析一個眾所周知的領域並產生對應的模型。
第6章 Cassandra架構
幫助你理解Cassandra實際進行讀寫操作時底層運作的流程,以及如何透過讀寫操作的控制實現一些它受矚目的特色,如持久性與高可用性。進一步研究較為複雜的節點內部交流機制,例如:gossip協定 提示移交(Hinted Handoff) 讀取修復與Merkle樹等。
第7章 Cassandra配置
說明如何選擇分區器 備份放置策略以及告密(snitch)機制。我們將模擬一個叢集並觀察不同配置所帶來的影響。
第8章 客戶端
Cassandra支援多種不同語言的客戶端,其中包含Java Python node.js Ruby C#與PHP。為了抽象化Cassandra底層API,我們將說明通用的客戶端驅動程式執行流程。
第9章 讀取與寫入資料
說明Cassandra底層如何實際的存取資料。我們會討論一些例如批次 輕量化交易與分頁等概念。
第10章 監控
一旦叢集建立並啟動後,你可能會希望監控它的一些使用情況,例如記憶體使用情況與執行序使用情況等,並嘗試理解它實際的行為。Cassandra有豐富的Java管理延伸(JMX)介面,可以滿足這些需求以及監控更多的細節。
第11章 維運
使用一些Cassandra自身提供的工具,可以讓不中斷叢集維護的任務更為輕鬆,我們會知道如何除役一個節點 進行負載平衡 取得狀況統計值與執行其他的日常維運任務。
第12章 效能調校
Cassandra一項受矚目的特色就是它的速度,它非常的快。但其中包含許多設定項目,例如記憶體設定 資料儲存 硬體選擇 快取 以及快取大小等。調校這些選項可以產生出更多的效能。
第13章 安全
NoSQL通常被視為系統安全弱點的一環。幸運的是Cassandra擁有認證 授權與加密功能。本章將介紹相關配置。
第14章 佈署規劃與服務整合303
討論規劃叢集佈署時的一些考量重點,其中包含大型雲端服務商的解決方案,如Amazon Microsoft與Google,並介紹幾種常與Cassandra搭配的相關技術。
第1章 關聯式資料庫之外
介紹關聯式資料庫的歷史以及最近崛起的非關聯式資料庫技術。
第2章 Cassandra簡介
介紹Cassandra及其令人注目與不同之處,包含它的由來與優點。
第3章 安裝Cassandra
告訴你如何安裝 啟動以及使用一些Cassandra的基礎功能。
第4章 Cassandra查詢語言(Cassandra Query Language)
檢視Cassandra的資料模型。說明它與傳統關聯式資料庫模型的差別。探討如何在Cassandra查詢語言(CQL)中表示這種資料模型。
第5章 資料建模(Data Modeling)
介紹Cassandra資料建模的原則與流程。分析一個...