Почему OpenTSDB выбрал HBase для хранения данных Time Series? - программирование

Почему OpenTSDB выбрал HBase для хранения данных Time Series?

Я был бы очень признателен, если бы кто-нибудь осветил выбор HBase как механизма хранения данных для OpenTSDB?

Какие другие варианты, такие как Whisper (графический интерфейс + устойчивость к углероду), были рассмотрены?

Как лучше ориентироваться на столбцах db, например HBase, для выбора временных рядов?

4b9b3361

Ответ 1

Я выбрал HBase, потому что он масштабируется. Шепот очень похож на RRD, он представляет собой базу данных фиксированного размера, он должен уничтожать данные, чтобы работать в пределах своих пространственных ограничений. HBase предлагает следующие свойства, которые очень хорошо подходят для крупномасштабных баз данных временных рядов:

  • Линейное масштабирование. Хотите сохранить данные? Добавьте несколько узлов. В StumbleUpon, где я писал OpenTSDB, наши данные временных рядов были размещены в кластере 20- node, который в основном использовался для аналитики и пакетной обработки. Кластер быстро вырос до 120 узлов, а OpenTSDB, составляющий лишь небольшую часть рабочей нагрузки кластера, вырос до полутора триллионов точек данных.
  • Автоматическая репликация. Ваши данные хранятся в HDFS, что по умолчанию означает 3 реплики на трех разных машинах. Если машина или диски погибают, нечего делать. Приводы и машины умирают все время, когда вы строите товарные серверы. Но дело в том, что вам все равно.
  • Эффективное сканирование. Большинство временных рядов данных используются для ответа на вопросы, которые похожи на "то, что представляют собой точки данных между временем X и Y". Если вы правильно структурируете свои ключи, вы можете реализовать это очень эффективно с помощью HBase с простой операцией сканирования.
  • Высокая пропускная способность записи. Bigtable design, который следует HBase, использует деревья LSM вместо, скажем, B-деревьев, чтобы сделать записи дешевле (за счет потенциально более дорогих чтений).

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

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