О чём курс
Cassandra – распределенная отказоустойчивая масштабируемая нереляционная система управления базами данных, с равноправными узлами, очень быстрая на запись и просто быстрая на чтение, автоматически восстанавливающая данные при сбоях. Для доступа к данным имеется SQL-подобный язык.
Курс посвящен изучению принципов, на которых она построена, методов создания баз данных для нее, написанию запросов на языке CQL и доступа к данным из прикладных программ посредством API и с использованием высокоуровневых библиотек. Рассматриваются процессы чтения и записи данных, управления кластером, определения потребности в ресурсах, методы настройки производительности, мониторинга.
Цели
Понимать ключевые концепции и архитектуру Cassandra;
Проектировать модели данных для Cassandra;
Разрабатывать запросы на языке CQL;
Работать с данными Cassandra из программ на Java;
Иметь представления о высокоуровневых библиотеках/фреймворках для доступа к данным в Cassandra.
Целевая аудитория
Разработчики, архитекторы, разработчики баз данных, администраторы баз данных.
Предварительная подготовка
Базовые навыки программирования на Java;
Умение работать в командной оболочке Unix/Linux (bash);
Опыт работы с базами данных желателен, но не обязателен.
Для кого
Разработчик
DevOps-инженер
Архитектор ПО
Data Engineer
Улучшаемые навыки
NoSQL
Apache Cassandra
CQL
Распределенные системы
Распределенные базы данных
Проектирование баз данных
Инструменты
Java
Cassandra
Расписание курсов
Программа курса
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%)
Чему вы научитесь
01
Проектировать эффективные модели данных для Cassandra.
02
Писать запросы на языке CQL и оптимизировать их.
03
Интегрировать Cassandra с Java-приложениями через драйверы и ORM.
04
Развертывать кластеры RT.KeyValue
05
Настраивать мониторинг и администрировать кластеры.
Курс проводят
Брейман Александр
Эксперт в области разработки и архитектуры ПО
Middle
О тренере
Александр занимается разработкой учебных программ, чтением лекций, проведением семинаров, практических и лабораторных работ. Под его руководством уже не один десяток специалистов успешно защитили выпускные квалификационные работы бакалавра и магистерские диссертации.
Среди его кейсов работа в ЗАО «ТИТАН МЕТА», Московском государственном университете приборостроения и информатики, Национальном исследовательском университете «Высшая школа экономики» и Luxoft Training.
Александр – кандидат технических наук, доцент. С 1991 г. занимается разработкой информационных и коммуникационных систем, за это время прошел путь от программиста до начальника отдела информационных систем.
С 1994 г. преподает дисциплины, связанные с управлением данными, проектированием информационных систем и разработкой программного обеспечения.
С 2014 г. Александр являлся штатным экспертом Luxoft Training по направлению «Разработка и архитектура ПО, СУБД Oracle», где занимается проведением тренингов, разработкой тренинговых программ и развитием данного направления.
Курсы, сертификаты, членство в профессиональных организациях:
2009 г. — повышение квалификации в Московском государственном университете приборостроения и информатики по программе «Информационная компетентность в профессиональной деятельности преподавателя вуза».
2011 г. — повышение квалификации в Информационно-Вычислительном Центре Московского энергетического института (технического университета) по программе «Современные технологии построения баз данных на примере Microsoft SQL Server 2008. Web-приложения и современные средства разработки. Современные технологии построения компьютерных сетей с использованием Microsoft Windows Server 2008 R2».
2024 г. — Сертифицированный тренер PostgreSQL по курсу DBA1 «Администрирование PostgreSQL 13. Базовый уровень».
Курсы и сертификаты
Александр является членом организаций:
- IEEE, IEEE Computer Society (Institute of Electrical and Electronics Engineers / Институт инженеров электротехники и электроники).
- ACM, ACM SIGMOD (Association for Computing Machinery / Ассоциация вычислительной техники).