AWS DynamoDB VS HBase

Я использую HBase в течение последних шести месяцев, и я узнал о DynamoDB от Amazon. Техническое обслуживание динамо-db выглядит более удобным с момента его ухода Amazon. Но стоит ли мне переключиться на db dynamo из hbase, это вопрос.

Я не смог найти подходящую причину для перехода от hbase к dynamo db, за исключением поддержки кластера.

Может кто-нибудь поделиться мыслями об этом.

Ответ 1

Вы должны существенно искать свои требования, DynamoDB обеспечивает отличную масштабируемость и производительность при минимальных затратах на обслуживание и привлекательных финансовых затратах. Однако Apache HBase гораздо более гибкий с точки зрения того, что вы можете хранить (размер и тип данных мудрый).

Еще один очень важный момент для оценки - какая модель данных, Column Wide или Key-Value, лучше подходит для ваших случаев использования.

Apache HBase дает вам возможность иметь очень гибкие типы данных строк строк, тогда как DynamoDB разрешает только скалярные типы для атрибутов первичного ключа. С другой стороны, DynamoDB обеспечивает очень легкое создание и обслуживание вторичных индексов, что вам нужно сделать вручную в Apache HBase.

Дополнительная информация в приведенной ниже ссылке: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf

Вот краткое изложение ключевых моментов:

Таким образом, как Amazon DynamoDB, так и Apache HBase определяют модели данных которые позволяют эффективно хранить данные для оптимизации производительности запросов. Amazon DynamoDB накладывает ограничение на размер своего элемента, чтобы разрешить эффективной обработки и сокращения затрат.

Apache HBase использует концепцию семейств столбцов для предоставления данных локальность для более эффективных операций чтения.

Amazon DynamoDB поддерживает как скалярные, так и многозначные множества для охватывают широкий спектр неструктурированных наборов данных. Аналогично, Apache HBase сохраняет свои пары ключ/значение как произвольные массивы байтов, давая это гибкость для хранения любых типов данных.

Amazon DynamoDB поддерживает встроенные вторичные индексы и автоматически обновляет и синхронизирует все индексы с родительскими таблицами. С Apache HBase, вы можете внедрять и управлять специальными вторичными индексами сами.

С точки зрения модели данных вы можете выбрать Amazon DynamoDB, если размер элемента относительно невелик. Хотя Amazon DynamoDB обеспечивает количество вариантов для ограничения ограничений по размеру строк, Apache HBase лучше оснащены для обработки больших комплексных нагрузок с минимальными ограничения.

Модель пропускной способности

Хотя требования чтения и записи указываются при создании таблицы время, Amazon DynamoDB позволяет вам увеличивать или уменьшать выделенные пропускная способность для размещения нагрузки без простоя.

В Apache HBase количество узлов в кластере может управляться требуется пропускная способность для чтения и/или записи.

Модель согласованности

Amazon DynamoDB позволяет указать желаемую консистенцию характеристики для каждого запроса на чтение в приложении. Ты можешь указать, будет ли чтение в конечном итоге согласованным или сильно последовательно.

Параметр возможной согласованности является значением по умолчанию в Amazon DynamoDB и максимизирует пропускную способность чтения. Однако, в конечном итоге последовательное чтение может не всегда отражать результаты недавно завершенной записи. Согласованность во всех копиях данных обычно проходит через секунду.

Чтение и запись Apache HBase сильно согласованы. Это значит, что все чтения и записи в одну строку в Apache HBase являются атомарными. каждый одновременный читатель и писатель могут делать безопасные предположения о состоянии строки. Многопоточность и тиснение времени в Apache HBase способствуют его сильно согласованной модели.

Модель транзакций

Ни один Amazon DynamoDB, ни Apache HBase не поддерживают многопозиционный/перекрестный ряд или кросс-стабильные транзакции из-за соображений производительности. Однако, обе базы данных обеспечивают пакетные операции для чтения и записи несколько элементов/строк в нескольких таблицах без транзакции гарантии.

Операции с таблицами

Одним из ключевых различий между двумя базами данных является гибкий подготовленной модели пропускной способности Amazon DynamoDB. Возможность набора номера когда вам это нужно, и наберите его, когда вы закончите полезен для обработки переменных рабочих нагрузок с непредсказуемыми пиками.

Для рабочих нагрузок, требующих высокой скорости обновления для выполнения агрегации данных или поддерживать счетчики, Apache HBase - хороший выбор. Это потому что Apache HBase поддерживает механизм управления несколькими версиями concurrency, что способствует его строгому согласованию с чтением и записью. Амазонка DynamoDB дает вам возможность указать, хотите ли вы запрос на чтение будет в конечном итоге последовательным или сильно согласованным в зависимости от вашей конкретной рабочей нагрузки. достигнутый в течение секунды.

Источник: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf