Cassandra. Полное руководство
Покупка
Тематика:
Базы и банки данных. СУБД
Издательство:
ДМК Пресс
Перевод:
Слинкин Алексей Александрович
Год издания: 2017
Кол-во страниц: 400
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-453-3
Артикул: 712454.01.99
Из этой книги вы узнаете, как система управления базами данных Cassandra справляется с обработкой сотен терабайтов данных, работая в нескольких ЦОДах и сохраняя высокую доступность. Во втором издании, дополненном и охватывающем версию Cassandra 3.0, вы найдете технические детали и практические примеры, которые помогут запустить эту систему в боевых условиях. Авторы демонстрируют достоинства нереляционного дизайна Cassandra, уделяя особое внимание моделированию данных. Издание предназначено для разработчиков, администраторов баз данных и архитекторов, работающих с «большими данными» и стремящихся решить проблему масштабирования.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.01: Математика и компьютерные науки
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Джефф Карпентер, Эбен Хьюитт 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