SlideShare a Scribd company logo
1
Переход на DynamoDB.
Есть ли жизнь после
MongoDB?
Вяль Тимур
Март 29, 2018
2
println(“Hello World!”)
Hello World!
3
Amazon Web Services DynamoDB
4
План
Что такое DynamoDB?1
Различия между DynamoDB и MongoDB2
Ограничения DynamoDB3
Наш опыт перехода с MongoDB на DynamoDB4
Проблемы с которыми мы столкнулись5
5
Dynamo vs Mongo
Key-Value
Document
6
Ценовая политика
Условно
Запись
Пропускная способность
Чтение (по 25 ед.)
+ +
2,5 млн.
запросов
7
Ограничения в DynamoDB
DynamoDB имеет 2 типа индексов (Локальный и Глобальный)1
Количество индексов на таблицу не более 5 каждого типа2
Нету уникальных индексов4
Размер записи в таблице ограничен 400KB5
Ограничения на редактирование таблицы6
Максимальный размер индекса - 2 поля3
8
Нестыковка количества полей в индексах
{
"_id"
"pubId"
"pubDocId"
"key"
"value"
}
Mongo
Compound index
{
"docId"
"publisherMetadata"
"key"
"value"
}
Dynamo
pubId_pubDocId
Domain Class
Getter and Setter Global secondary index
9
Нестыковка количества полей в индексах
{
"_id"
"planId"
"beginDate"
"endDate"
"value"
}
Mongo
Compound index
{
"planId"
"period "
"beginDate"
"endDate"
"value"
}
Dynamo
beginDate_endDate
Domain Class
Annotation @DynamoDBDelimited
Composite PK
10
Сериализация/десериализация через getters/setters
Student
• Getter
• Setter
• …
• First Name
• Last Name
• …
• Other info
{…;}
11
Сериализация/десериализация полей сложных типов
Map<SomeEnum, Map<String, String>>
@DynamoDBConvertedJson@DynamoDBConverted(converter = Converter.class)
Converter
• convert
• unconvert
DynamoDBTypeConverter
12
Инструменты для миграции данных
13
Инструменты для миграции данных
14
DynamoDB + Data Pipeline + S3
Имена таблиц не изменяются!
~35-40 GB = 2-2.5
Шаг 1. Экспорт на S3
Шаг 2. Импорт с S3 в новую таблицу
~1.5 сут.
Dynamo Table S3 Bucket
Dynamo TableS3 Bucket
15
• Хорошая интеграция с AWS сервисами
• Данные хранятся в облаке
• Масштабируемость и быстродействие
• Лёгкий старт
• Имеет локальную бесплатную версию
• Слабый инструмент получения данных
• Ограничения на редактирование таблиц
Выводы
16
Вопросы?
17
Спасибо за внимание!

More Related Content

PPTX
MS Word 2013 - от новичка до профессионала. Занятие 5. Управление потоком текста
PPTX
MS Word 2013 от новичка до профессионала. Занятие 3. Базовые возможности форм...
DOC
Krossvord tp word
PPT
Word 2003 LibreOffice
PDF
Nosql and Mongodb
PPTX
MongoDB первые впечатления
PPTX
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
PPTX
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MS Word 2013 - от новичка до профессионала. Занятие 5. Управление потоком текста
MS Word 2013 от новичка до профессионала. Занятие 3. Базовые возможности форм...
Krossvord tp word
Word 2003 LibreOffice
Nosql and Mongodb
MongoDB первые впечатления
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)

More from Vitebsk Miniq (20)

PDF
Runtime compilation and code execution in groovy
PDF
The 5 Laws of Software Estimates
PDF
Latest & Greatest Observability Release 7.9
PDF
Тестирование Spring-based приложений
PDF
Семантический поиск - что это, как работает и чем отличается от просто поиска
PDF
Локализационное тестирование - это не только перевод
PDF
ISTQB Сертификация тестировщиков: быть или не быть?
PDF
Apollo GraphQL Federation
PDF
Who is a functional tester
PDF
Crawling healthy
PDF
Вперед в прошлое
PDF
CloudFormation experience
PDF
Learning Intelligence: the story of mine
PDF
Как программисты могут спасти мир
PDF
Использование AzureDevOps при разработке микросервисных приложений
PDF
Distributed tracing system in action. Instana Tracing.
PDF
Насорил - убери!
PDF
Styled-components. Что? Когда? И зачем?
PDF
Красные флаги и розовые очки
PDF
CSS. Практика
Runtime compilation and code execution in groovy
The 5 Laws of Software Estimates
Latest & Greatest Observability Release 7.9
Тестирование Spring-based приложений
Семантический поиск - что это, как работает и чем отличается от просто поиска
Локализационное тестирование - это не только перевод
ISTQB Сертификация тестировщиков: быть или не быть?
Apollo GraphQL Federation
Who is a functional tester
Crawling healthy
Вперед в прошлое
CloudFormation experience
Learning Intelligence: the story of mine
Как программисты могут спасти мир
Использование AzureDevOps при разработке микросервисных приложений
Distributed tracing system in action. Instana Tracing.
Насорил - убери!
Styled-components. Что? Когда? И зачем?
Красные флаги и розовые очки
CSS. Практика
Ad

Переход на DynamoDB. Есть ли жизнь после MongoDB?