Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Cassandra. Полное руководство

Покупка
Артикул: 712454.01.99
Доступ онлайн
749 ₽
В корзину
Из этой книги вы узнаете, как система управления базами данных Cassandra справляется с обработкой сотен терабайтов данных, работая в нескольких ЦОДах и сохраняя высокую доступность. Во втором издании, дополненном и охватывающем версию Cassandra 3.0, вы найдете технические детали и практические примеры, которые помогут запустить эту систему в боевых условиях. Авторы демонстрируют достоинства нереляционного дизайна Cassandra, уделяя особое внимание моделированию данных. Издание предназначено для разработчиков, администраторов баз данных и архитекторов, работающих с «большими данными» и стремящихся решить проблему масштабирования.
Карпентер, Д. Cassandra. Полное руководство / Д. Карпентер, Э. Хьюитт ; пер. с англ. А,А. Слинкина. - 2-е изд. - Москва : ДМК Пресс, 2017. - 400 с. - ISBN 978-5-97060-453-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1027861 (дата обращения: 09.09.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
2nd Edition

Интернет-магазин:
www.dmkpress.com
Книга – почтой: 
orders@alians-kniga.ru
Оптовая продажа:
“Альянс-книга”
тел.(499)782-38-89 
books@alians-kniga.ru
www.дмк.рф
9 785970 604533

ISBN 978-5-97060-453-3

Cassandra. Полное руководство

Cassandra

Полное руководство

В книге рассматриваются следующие темы:
•   описание распределенной и децентрализованной структуры Cassandra;
•   использование языка запросов Cassandra CQL и его оболочки cqlsh;
•   создание модели данных и ее сравнение с эквивалентной реляционной моделью;
•   разработка приложений с применением клиентских драйверов для различ      ных языков, включая Java, Python и Node.js;
•   изучение топологии кластера и способов передачи данных между узлами;
•   поддержание высокой производительности кластера;
•   развертывание Cassandra в локальном ЦОДе, в облаке и с помощью Docker;
•   интеграция Cassandra с Spark, Hadoop, Elasticsearch, Solr и Lucene.
Джефф Карпентер — системный архитектор в компании Choice Hotels International 
с 20-летним опытом работы в гостиничной и оборонной отрасли. В сферу интересов 
Джеффа входит архитектура SOA и микросервисов, а также крупномасштабных 
систем и данных.
Эбен Хьюитт — технический директор компании Choice Hotels International, одной 
из самых крупных гостиничных сетей в мире. Автор нескольких книг по архитектуре, 
распределенным системам и программированию.

«Эта книга научит вас применять Cassandra в собственных 

приложениях. Сделайте что-нибудь удивительное 

и предъявите свою историю успеха.»

— Патрик Макфейдин,

главный пропагандист Apache Cassandra, компания DataStax

Только вообразите, что бы вы могли сделать, если бы не проблема масштабируемости! Благодаря этому практическому руководству вы узнаете, как 
система управления базами данных Cassandra справляется с обработкой 
сотен терабайтов данных, работая в нескольких ЦОДах и сохраняя высокую 
доступность. Во втором издании, дополненном и охватывающем версию 
Cassandra 3.0, вы найдете технические детали и практические примеры, 
которые помогут запустить эту систему в боевых условиях.
Авторы, Джефф Карпентер и Эбен Хьюитт, демонстрируют достоинства 
нереляционного дизайна Cassandra, уделяя особое внимание моделированию данных. Если вы — разработчик, администратор баз данных 
или архитектор, стремящийся решить проблему масштабирования или 
обеспечить будущее развития приложения, то эта книга поможет воспользоваться всеми преимуществами в быстродействии и гибкости, которые 
дает Cassandra.

Джефф Карпентер, Эбен Хьюитт

Джефф Карпентер, Эбен Хьюитт

Cassandra.  

Полное руководство

Jeff Carpenter and Eben Hewitt

Cassandra:  
The Definitive Guide

Distributed data at web scale 

Second edition

Beijing • Boston • Farnham • Sebastopol • Tokyo 

Джефф Карпентер, Эбен Хьюитт

Cassandra.  
Полное руководство

Распределенные данные  
в масштабе веба

Второе издание

Москва, 2017

УДК 004.73:004.65Apache Cassandra
ББК 32.972.134

К26

Карпентер Д., Хьюитт Э.

К26
Cassandra. Полное руководство. 2-е изд. / пер. с англ. А. А. Слинкина. – М.: ДМК Пресс, 2017. – 400 с.: ил.

ISBN 978-5-97060-453-3

Из этой книги вы узнаете, как система управления базами данных Cassandra 

справляется с обработкой сотен терабайтов данных, работая в нескольких ЦОДах 
и сохраняя высокую доступность. Во втором издании, дополненном и охватывающем версию Cassandra 3.0, вы найдете технические детали и практические 
примеры, которые помогут запустить эту систему в боевых условиях. Авторы 
демонстрируют достоинства нереляционного дизайна Cassandra, уделяя особое 
внимание моделированию данных.

Издание предназначено для разработчиков, администраторов баз данных 

и архитекторов, работающих с «большими данными» и стремящихся решить 
проблему масштабирования.

УДК 004.73:004.65Apache Cassandra
ББК 32.972.134

Authorized Russian translation of the English edition of Cassandra: The 

Definitive Guide, 2nd Edition.

This translation is published and sold by permission of O’Reilly Media, Inc., 

which owns or controls all rights to publish and sell the same.’

Все права защищены. Любая часть этой книги не может быть воспроиз
ведена в какой бы то ни было форме и какими бы то ни было средствами без 
письменного разрешения владельцев авторских прав.

Материал, изложенный в данной книге, многократно проверен. Но по
скольку вероятность технических ошибок все равно существует, издательство 
не может гарантировать абсолютную точность и правильность приводимых 
сведений. В связи с этим издательство не несет ответственности за возможные 
ошибки, связанные с использованием книги.

ISBN 978-1-491-93366-4 (анг.)
© 2016 Jeff Carpenter, Eben Hewitt

ISBN 978-5-97060-453-3 (рус.)
© Оформление, издание, перевод, 

ДМК Пресс, 2017

Посвящаю своей возлюбленной, Элисон Браун.
Я слышу звуки скрипок задолго до того, как 
они начинают играть1.
– Эбен Хьюитт

Посвящаю Стефани.
Ты для меня источник вдохновения, неизменная опора, любовь всей моей жизни.
— Джефф Карпентер

1 Цитата из песни Sway (M. D. House). – Прим. перев.

Содержание

Предисловие..................................................... 14

Предисловие..................................................... 16

Вступление....................................................... 18

Глава.1..За.пределами.реляционных.баз.данных...... 25
Что не так с реляционными базами данных? .................................................. 25
Краткий обзор реляционных баз данных ......................................................... 30

РСУБД: великие и не очень ............................................................................. 31

Масштаб веба .............................................................................................................. 39
Восхождение NoSQL ............................................................................................... 40
Резюме .......................................................................................................................... 42

Глава.2..Введение.в.Cassandra.............................. 44
Краткая презентация Cassandra ........................................................................... 44

Cassandra в 40 словах .......................................................................................... 44
Распределенная и децентрализованная ....................................................... 45
Эластичная масштабируемость ...................................................................... 46
Высокая доступность и отказоустойчивость ............................................. 47
Настраиваемая согласованность .................................................................... 48
Теорема CAP Брюера .......................................................................................... 51
Строковая база ...................................................................................................... 56
Высокая производительность ......................................................................... 58

Как появилась Cassandra? ...................................................................................... 58

История версий .................................................................................................... 60

Подходит ли Cassandra для моего проекта? .................................................... 67

Крупное развертывание ..................................................................................... 67
Много операций записи, статистика, анализ ............................................. 67
Территориальная разнесенность .................................................................... 68
Быстро эволюционирующие приложения .................................................. 68

Резюме .......................................................................................................................... 70

Глава.3..Установка.Cassandra................................ 71
Установка из дистрибутива Apache .................................................................... 71

Содержание  7

Распаковка дистрибутива ................................................................................. 71
Что внутри? ........................................................................................................... 72

Сборка из исходного кода ...................................................................................... 73

Дополнительные цели сборки ......................................................................... 75
ОС Windows ........................................................................................................... 76
ОС Linux ................................................................................................................. 77
Запуск сервера ...................................................................................................... 77
Остановка Cassandra ........................................................................................... 79

Другие дистрибутивы Cassandra ......................................................................... 80
Запуск оболочки CQL ............................................................................................. 81
Простые команды cqlsh ........................................................................................... 82

cqlsh Help ................................................................................................................ 82
Описание окружения в cqlsh ........................................................................... 84
Создание пространства ключей и таблицы в cqlsh .................................. 84
Запись и чтение данных в cqlsh ...................................................................... 88

Резюме .......................................................................................................................... 89

Глава.4..Язык.Cassandra.Query.Language................. 90
Реляционная модель данных ................................................................................ 90
Модель данных Cassandra ...................................................................................... 91

Кластер .................................................................................................................... 95
Пространства ключей ......................................................................................... 95
Таблицы ................................................................................................................... 95
Столбцы .................................................................................................................. 97

Типы данных в CQL ................................................................................................. 99

Числовые типы данных ..................................................................................... 99
Текстовые типы данных ...................................................................................100
Типы времени и идентификации .................................................................101
Прочие простые типы данных .......................................................................103

Коллекции .................................................................................................................104
Пользовательские типы ........................................................................................107
Вторичные индексы ...............................................................................................110
Резюме ........................................................................................................................112

Глава.5..Моделирование.данных..........................113
Построение концептуальной модели данных ...............................................113
Проектирование реляционной базы данных .................................................115

Различия в проектировании для РСУБД и Cassandra .........................115

Определение запросов в приложении .............................................................119

 Содержание

Построение логической модели данных .........................................................120

Логическая модель данных отеля ................................................................122
Логическая модель данных о бронировании ...........................................124

Построение физической модели данных ........................................................126

Физическая модель данных отеля ...............................................................127
Физическая модель данных о бронировании ..........................................128
Материализованные представления ...........................................................129

Оценка и уточнение ...............................................................................................131

Вычисление размера раздела .........................................................................132
Оценка места, занятого на диске ..................................................................133
Разбиение больших разделов ........................................................................134

Определение схемы базы данных ......................................................................135

DataStax DevCenter ..........................................................................................138

Резюме ........................................................................................................................139

Глава.6..Архитектура.Cassandra...........................140
Центры обработки данных и стойки ................................................................140
Сплетни и обнаружение отказов .......................................................................142
Осведомители ...........................................................................................................144
Кольца и маркеры ...................................................................................................145
Виртуальные узлы ..................................................................................................147
Разделители ..............................................................................................................147
Стратегии репликации ..........................................................................................148
Уровни согласованности ......................................................................................149
Запросы и узлы-координаторы ..........................................................................150
Таблицы в памяти, файлы SSTable и журналы фиксаций ........................151
Кэширование ............................................................................................................154
Вручение напоминаний ........................................................................................154
Облегченные транзакции и Paxos .....................................................................156
Надгробья ..................................................................................................................157
Фильтры Блума .......................................................................................................158
Уплотнение ................................................................................................................159
Антиэнтропия, исправление и деревья Меркла ...........................................160
Многоступенчатая событийно-ориентированная архитектура (SEDA) .....
162
Диспетчеры и службы ...........................................................................................164

Демон Cassandra .................................................................................................164
Движок хранения ...............................................................................................164
Служба хранения ...............................................................................................165
Прокси хранения ................................................................................................165

Содержание  9

Служба обмена сообщениями .......................................................................166
Диспетчер потоков данных ............................................................................166
Сервер транспортного протокола CQL ......................................................166

Системные пространства ключей ......................................................................167
Резюме ........................................................................................................................169

Глава.7..Настройка.Cassandra..............................170
Диспетчер кластера Cassandra ............................................................................170
Создание кластера ..................................................................................................171
Узлы-распространители .......................................................................................175
Разделители ..............................................................................................................176

Разделитель Murmur3Partitioner .................................................................176
Разделитель RandomPartitioner ....................................................................176
Разделитель OrderPreservingPartitioner ....................................................176
Разделитель ByteOrderedPartitioner ...........................................................177

Осведомители ...........................................................................................................178

Простой осведомитель .....................................................................................178
Осведомитель на основе файла свойств ....................................................178
Сплетничающий осведомитель с файлом свойств .................................179
Осведомитель, догадывающийся о стойках .............................................179
Облачные осведомители .................................................................................180
Динамический осведомитель ........................................................................180

Конфигурация узлов ..............................................................................................181
Маркеры и виртуальные узлы ............................................................................181

Сетевые интерфейсы ........................................................................................182
Хранение данных ...............................................................................................183
Параметры JVM и протоколирования .......................................................185

Добавление узлов в кластер ................................................................................185
Динамическое присоединение к кольцу .........................................................187
Стратегии репликации ..........................................................................................188

Стратегия SimpleStrategy ................................................................................189
Стратегия NetworkTopologyStrategy...........................................................190

Изменение коэффициента репликации ..........................................................191
Резюме ........................................................................................................................192

Глава.8..Клиенты...............................................193
Hector, Astyanax и другие устаревшие клиенты ...........................................193
Драйвер DataStax для Java ..................................................................................194

Настройка среды разработки .........................................................................195

Доступ онлайн
749 ₽
В корзину