О чём курс
Cassandra – распределенная отказоустойчивая масштабируемая нереляционная система управления базами данных, с равноправными узлами, очень быстрая на запись и просто быстрая на чтение, автоматически восстанавливающая данные при сбоях. Для доступа к данным имеется SQL-подобный язык.
Курс посвящен изучению принципов, на которых она построена, методов создания баз данных для нее, написанию запросов на языке CQL и доступа к данным из прикладных программ посредством API и с использованием высокоуровневых библиотек. Рассматриваются процессы чтения и записи данных, управления кластером, определения потребности в ресурсах, методы настройки производительности, мониторинга.
Цели
Понимать ключевые концепции и архитектуру Cassandra;
Проектировать модели данных для Cassandra;
Разрабатывать запросы на языке CQL;
Работать с данными Cassandra из программ на Java;
Иметь представления о высокоуровневых библиотеках/фреймворках для доступа к данным в Cassandra.
Целевая аудитория
Разработчики, архитекторы, разработчики баз данных, администраторы баз данных.
Предварительная подготовка
Базовые навыки программирования на Java;
Умение работать в командной оболочке Unix/Linux (bash);
Опыт работы с базами данных желателен, но не обязателен.
Для кого
Разработчик
Big Data Analyst
Архитектор ПО
Программа курса
01
Основные концепции Cassandra (теория - 3 ч., практика - 1 ч.)
Области применения, типичные use case и анти-use case;
Архитектура, репликация, управление согласованностью данных;
Процесс записи данных, отложенная запись;
Процесс чтения данных, восстановление данных;
Объединение хранимых данных и очистка удаленных данных;
Практика 1. Установка и развертывание кластера (Docker Compose);
Практика 2. Использование Nodetool для исследования состояния кластера.
02
Язык запросов CQL (теория - 2 ч., практика - 2 ч.)
Модель данных CQL;
Первичные ключи и их структура;
CQL: язык запросов Cassandra;
CQL: Типы данных, коллекции, вложенные данные, устаревание данных;
Запросы на CQL;
Практика 3. Создание таблиц с первичными ключами разной сложности и исследование поведения запросов.
03
Проектирование баз данных для Cassandra (теория - 2 ч., практика - 2 ч.)
Диаграммы Чеботко для логических и физических моделей данных;
Лучшие практики моделирования данных для Cassandra;
Проектирование таблиц и выбор ключей;
Моделирование данных от запросов;
Вторичные индексы;
Материализованные представления;
Практика 4. Проектирование логической и физической модели данных.
04
Доступ из приложений (теория - 1 ч., практика - 1 ч.)
Архитектура Java-драйвера;
Основы Java API;
ORM;
Практика 5. Создание приложения, использующего Java драйвер для доступа к Cassandra.
05
Развертывание и мониторинг кластера (теория - 2 ч., практика - 4 ч.)
Зависимости: версии Java/JDK;
Развертывание кластера on-premise, в облаке, в Kubernetes;
Определение потребности в ресурсах: память, CPU, диск;
Мониторинг: сбор и агрегация метрик;
Принципы настройки производительности;
Практика 6. Сбор метрик с кластера;
Практика 7. Использование Nodetool для наблюдения за процессами в кластере.
06
Администрирование кластера (теория - 2 ч., практика 2 ч.)
Подключение и отключение узлов;
Обновлений версий;
Системное пространство ключей;
Управление хранением данных;
Управление сжатием (compaction) данных;
Резервное копирование и мгновенные снимки;
Исправление поврежденных файлов данных;
Практика 8. Исследование подключения/отключения узлов и других служебных операций.