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