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

Техническое руководство.

Джефф Карпентер, Эбен Хьюитт «Cassandra. Полное руководство» ДМК Пресс, 2017 год, 400 стр., второе издание, O’Reilly, (103 мб pdf)

Из книги вы узнаете как работает бесплатная распределенная система хранения данных с открытым исходным кодом (NoSQL) Cassandra (Apache Cassandra), используемая в высокомасштабируемых WEB-проектах (обрабатывающих терабайты информации, её применяют Facebook, Twitter и Netflix). Это второе издание — дополненное, одно из самых важных его особенностей — раздел о моделировании данных, также новшество — появление языка CQL и отказ от старого Thrift API.

Руководство охватывает версию Cassandra 3.0, объясняются такие понятия, как виртуальные узлы, а также многочисленные средства для обеспечения согласованности данных. Особенности Apache Cassandra — надежность, легкая масштабируемость, возможность настройки уровня согласованности данных и огромная скорость обработки информации. Система сохраняет сотни терабайтов данных, децентрализована и симметрична, ввиду этого отсутствуют точки общего отказа. Эта база данных характеризуется высокой доступностью, используя моделирование данных на основе языка Cassandra Query Language (CQL).

Система написана на Java, но работать с Apache Cassandra могут не только Java-разработчики,существуют также интерфейсы к Cassandra из С#, Python, Node.js, PHP, Ruby и других языков. Почему стоит изучать эту систему хранения данных? Потому, что Apache Cassandra, — одно из самых востребованных и высокооплачиваемых направлений разработки на рынке WEB-приложений и построения инфраструктуры. Книга организована по модульному принципу так, что каждая глава является независимым руководством, но начинающим рекомендуется изучать все по порядку. Примеры кода из книги, можно скачать со страницы https://github.com/jeffreyscarpenter/cassandra-guide. ISBN: 978-5-97060-453-3 (рус.), ISBN: 978-1-491-93366-4 (EN)

Оглавление книги

Содержание

Глава 1. За пределами реляционных баз данных

Что не так с реляционными базами данных?
Краткий обзор реляционных баз данных
РСУБД: великие и не очень
Масштаб веба
Восхождение NoSQL

Глава 2. Введение в Cassandra

Краткая презентация Cassandra
Cassandra в 40 словах
Распределенная и децентрализованная
Эластичная масштабируемость
Высокая доступность и отказоустойчивость
Настраиваемая согласованность
Теорема САР Брюера
Строковая база
Высокая производительность
Как появилась Cassandra?
История версий
Подходит ли Cassandra для моего проекта?
Крупное развертывание
Много операций записи, статистика, анализ.
Территориальная разнесенность
Быстро эволюционирующие приложения
Резюме

Глава 3. Установка Cassandra

Установка из дистрибутива Apache
Распаковка дистрибутива
Что внутри?
Сборка из исходного кода
Дополнительные цели сборки
ОС Windows
ОС Linux
Запуск сервера
Остановка Cassandra
Другие дистрибутивы Cassandra
Запуск оболочки CQL
Простые команды cqlsh
cqlsh Help
Описание окружения в cqlsh
Создание пространства ключей и таблицы в cqlsh
Запись и чтение данных в cqlsh
apache cassandra
Резюме

Глава 4. Язык Cassandra Query Language

Реляционная модель данных
Модель данных Cassandra
Кластер
Пространства ключей
Таблицы
Столбцы
Типы данных в CQL
Числовые типы данных
Текстовые типы данных
Типы времени и идентификации
Прочие простые типы данных
Коллекции
Пользовательские типы
Вторичные индексы
Резюме

Глава 5. Моделирование данных

Построение концептуальной модели данных
Проектирование реляционной базы данных
Различия в проектировании для РСУБД и Cassandra
Определение запросов в приложении
Построение логической модели данных
Логическая модель данных отеля
Логическая модель данных о бронировании
Построение физической модели данных
Физическая модель данных отеля
Физическая модель данных о бронировании
Материализованные представления
Оценка и уточнение
Вычисление размера раздела
Оценка места, занятого на диске
Разбиение больших разделов
Определение схемы базы данных
DataStax DevCenter
Резюме
Кольца и маркеры
Виртуальные узлы
Разделители
Стратегии репликации

Глава 6. Архитектура Cassandra

Центры обработки данных и стойки
Сплетни и обнаружение отказов
Осведомители
Уровни согласованности
Запросы и узлы-координаторы
Таблицы в памяти, файлы SSTable и журналы фиксаций
Кэширование
Вручение напоминаний
Облегченные транзакции и Paxos
Надгробья
Фильтры Блума
Уплотнение
Антиэнтропия, исправление и деревья Меркла
Многоступенчатая событийно-ориентированная архитектура (SEDA)
диспетчеры и службы
Демон Cassandra
Движок хранения
Служба хранения
Прокси хранения
Служба обмена сообщениями
Диспетчер потоков данных
Сервер транспортного протокола CQL
Системные пространства ключей
Резюме

Глава 7. Настройка Cassandra

Диспетчер кластера Cassandra
Создание кластера
Узлы-распространители
Разделители
Разделитель Murmur3Partitioner
Разделитель RandomPartitioner
Разделитель OrderPreservingPartitioner
Разделитель ByteOrderedPartitioner
Осведомители
Простой осведомитель
Осведомитель на основе файла свойств
Сплетничающий осведомитель с файлом свойств
Осведомитель, догадывающийся о стойках
Облачные осведомители
Динамический осведомитель
Конфигурация узлов
Маркеры и виртуальные узлы
Сетевые интерфейсы
Хранение данных
Параметры JVM и протоколирования
Добавление узлов в кластер
Динамическое присоединение к кольцу
Стратегии репликации
Стратегия SimpleStrategy
Стратегия NetworkTopologyStrategy
apache cassandra
Изменение коэффициента репликации
Резюме

Глава 8. Клиенты

Hector, Astyanax и другие устаревшие клиенты
Драйвер DataStax для Java
Настройка среды разработки
Кластеры и точки контакта
Сеансы и пулы соединений
Объекты Statement
Политики
Метаданные
Отладка и мониторинг
Драйвер DataStax для Python
Драйвер DataStax для Node.js
Драйвер DataStax для Ruby
Драйвер DataStax для C#
Драйвер DataStax для C/C++
Драйвер DataStax для PH Р
Резюме

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

Запись
Уровни согласованности при записи
Путь записи в Cassandra
Запись файлов на диск
Облегченные транзакции
Чтение
Уровни согласованности при чтении
Путь чтения в Cassandra
Исправление на этапе чтения
Запросы по диапазону, упорядочение и фильтрация
Функции и агрегаты
Разбиение на страницы
Упреждающее выполнение
Удаление
Резюме

Глава 10. Мониторинг

Протоколирование
Динамическое наблюдение за журналом
Изучение журналов htbook.ru
Мониторинг Cassandra средствами JMX
Подключение к Cassandra через JConsole
Краткий обзор MBean-объектов
MBean-объекты Cassandra
MBean-объекты, относящиеся к базе данных
MBean-объекты, относящиеся к сети
MBean-объекты, относящиеся к метриках
MBean-объекты, относящиеся к потокам
MBean-объекты, относящиеся к службам
MBean-объекты, относящиеся к безопасности
Мониторинг с помощью nodetool
Получение информации о кластере
Получение статистики
Резюме

Глава 11. Обслуживание

Проверка исправности
Базовое обслуживание
Сброс на диск
Очистка
Исправление
Переиндексирование
Перемещение маркеров
Добавление узлов
Добавление узлов в существующий центр обработки данных
Добавление центра обработки данных в кластер
Обработка отказа узла
Ремонт узлов
Замена узлов
Исключение узлов
Переход на новую версию Cassandra
Резервное копирование и восстановление
Создание снимка
Удаление снимка
Включение инкрементного резервного копирования
Восстановление из снимка
Утилиты для работы с файлами SSTable
Средства обслуживания
DataStax OpsCenter
Netflix Priam
Резюме

Глава 12. Настройка производительности

Управление производительностью
Постановка целей
Мониторинг производительности
Анализ проблем с производительностью
Трассировка
Методика настройки
Кэширование
Кэш ключей
Кэш строк
Кэш счетчиков
Параметры, управляющие сохранением кэшей
Таблицы в памяти
Журналы фиксаций
Файлы SSTable
Вручение напоминаний
Уплотнение
Параллелизм и многопоточность
Сеть и тайм-ауты
Параметры JVM
Память
Сборка мусора
Утилита cassandra-stress
Резюме

Глава 13. Безопасность

Аутентификация и авторизация
Аутентификация по паролю
Использование класса CassandraAuthorizer
Ролевое управление доступом
Шифрование
SSL, TLS и сертификаты
Шифрование трафика между узлами
Шифрование трафика между клиентами и узлами
Безопасность на уровне JMX
Обеспечение безопасности доступа через JMX
MBean-объекты, относящиеся к безопасности
Резюме

Глава 14. Развертывание и интеграция

Планирование развертывания кластера
Оценка размера кластера
Выбор экземпляров
Хранилище
Сеть
Развертывание в облаке
Amazon Web Services
Microsoft Azure
apache cassandra
Google Cloud Platform
Интеграция
Apache Lucene, SOLR и Elasticsearch
Apache Hadoop
Apache Spark
Резюме
Предметный указатель

Скачать техническую литературу бесплатно103 мб pdf

Похожая литература