Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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.com/catalog/product/1027861 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джефф Карпентер, Эбен Хьюитт

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

 Содержание

Кластеры и точки контакта ............................................................................195
Сеансы и пулы соединений ............................................................................197
Объекты Statement ............................................................................................199
Политики ..............................................................................................................207
Метаданные .........................................................................................................211
Отладка и мониторинг .....................................................................................215

Драйвер DataStax для Python .............................................................................217
Драйвер DataStax для Node.js .............................................................................218
Драйвер DataStax для Ruby ................................................................................219
Драйвер DataStax для C# .....................................................................................219
Драйвер DataStax для C/C++ ............................................................................220
Драйвер DataStax для PHP .................................................................................222
Резюме ........................................................................................................................222

Глава.9..Чтение.и.запись.данных..........................223
Запись .........................................................................................................................223

Уровни согласованности при записи ..........................................................224
Путь записи в Cassandra ..................................................................................226
Запись файлов на диск .....................................................................................228
Облегченные транзакции ................................................................................230
Пакеты ...................................................................................................................233

Чтение .........................................................................................................................235

Уровни согласованности при чтении ..........................................................236
Путь чтения в Cassandra ..................................................................................238
Исправление на этапе чтения ........................................................................241
Запросы по диапазону, упорядочение и фильтрация ............................241
Функции и агрегаты .........................................................................................244
Разбиение на страницы ....................................................................................249
Упреждающее выполнение .............................................................................252

Удаление .....................................................................................................................252
Резюме ........................................................................................................................254

Глава.10..Мониторинг.........................................255
Протоколирование .................................................................................................255

Динамическое наблюдение за журналом ..................................................257
Изучение журналов...........................................................................................258

Мониторинг Cassandra средствами JMX ........................................................259

Подключение к Cassandra через JConsole .................................................261
Краткий обзор MBean-объектов ...................................................................264

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