Не пора ли отказаться от реляционных баз данных и перейти на NoSQL через Amazon DynamoDB?

231
33

спросил(а) 2020-02-27T16:57:40+03:00 1 год, 8 месяцев назад
1
Лучший ответ
252

Не пора ли отказаться от реляционных баз данных и перейти на NoSql через Amazon DynamoDB?

Этот вопрос настолько нелеп, что его мог задать только «Ведущий специалист по данным @ Amazon Web Services».

xkcd: Duty Calls

Однако, поскольку вы уже нанесли сопутствующий ущерб интеллекту интернет-пользователей, задав такой смешной вопрос, я предложу один из способов найти логичный ответ:

Под «реляционными базами данных» я подразумеваю, что вы имеете в виду любую СУБД, поддерживающую стандарт SQL, включая бесплатные, открытые и коммерческие продукты.
По Amazon DynamoDB очевидно, что вы имеете в виду конкретное проприетарное предложение с его собственным проприетарным API, размещенным в конкретном и единственном проприетарном облаке.
Я полагаю, что если кто-то доволен этими компромиссами и не заинтересован в строго ограниченных функциональных возможностях в сочетании с пугающе слабой транзакционной моделью DynamoDB, то ему следует «прыгнуть» в нее.

Возможно, более разумно сформулированный вопрос мог бы быть:

«Предполагая, что я хочу создать приложение, которое ограничено работой только в EC2, а моему приложению нужно только выполнять простые GET и PUT, я должен рассмотреть возможность использования сервиса Amazon DynamoDB? Почему или почему нет?»

Конечно, поскольку вы работаете в Amazon, в AWS, это немного неискренне, о чем вы вообще просите. Это подкрепляет следствие Коры закону Годвина:

«Поскольку веб-сайт добавляет социальные функции, вероятность превращения веб-сайта в рекламу приближается к 1».

Мнения и взгляды, выраженные в этом посте, являются моими собственными и не обязательно отражают мнения или взгляды моего работодателя.

ответил(а) 2020-02-27T16:57:40+03:00 1 год, 8 месяцев назад
72

Зависит от приложения. Мы используем динамо для приложения, которое должно поддерживать множество вставок, и мы знаем, что типичная реляционная база данных не масштабируется для ее поддержки. (Обратите внимание на Oracle Guys - я уверен, что мы могли бы инвестировать в какой-то сложный кластер, чтобы сделать это - но в этом случае - динамо-машина просто делает это, не требуя персонала кластера и базы данных, что для нас важнее.)

Наше приложение очень хорошо понимает шаблоны запросов, которые, как мы знаем, не изменятся, поэтому мы можем разработать нашу модель данных на основе этого.

Где боль в некоторых основных задачах обслуживания, которые вы принимаете как должное в реляционной базе данных. Когда вам нужно найти какие-то конкретные данные за один раз - то, для чего вы бы написали какой-нибудь быстрый SQL-запрос, - вам приходится писать собственную программу, которая выполняет сканирование таблиц. Таким образом, вы определенно платите за преимущества базы данных NoSQL, когда дело доходит до базового обслуживания и инструментов.

ответил(а) 2020-02-27T16:57:40+03:00 1 год, 8 месяцев назад
59

Как уже упоминали другие, это зависит от типа данных, с которыми вы имеете дело. DynamoDB является быстрым и масштабируемым, но имеет ограничение 64 КБ на элемент / запись. Это большое ограничение для многих случаев использования. Хотя есть обходные пути для разделения данных на несколько записей и поддержки указателей, это может стать уродливым.

ответил(а) 2020-02-27T16:57:40+03:00 1 год, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема