Предусмотренная емкость записи в Кассандре - PullRequest
0 голосов
/ 29 октября 2018

Мне нужно захватить данные датчика временных рядов в Кассандре.Рекомендации по обработке данных временных рядов в DynamoDB следующие:

  1. Создание одной таблицы за период времени с емкостью записи менее 1000 единиц емкости записи (WCU).
  2. Перед окончанием каждого периода времени предварительно создайте таблицу для следующего периода.
  3. Как только таблица больше не будет записываться, уменьшите ее подготовленную емкость записи.Также уменьшите предоставленную емкость чтения более ранних таблиц, поскольку они стареют, и заархивируйте или удалите те, содержимое которых будет редко или никогда не понадобиться.

Теперь мне интересно, как я могу реализовать ту же концепцию в Кассандре!Есть ли способ вручную настроить емкость записи / чтения в Cassandra?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Это действительно зависит от ваших собственных требований, которые вам нужно обсудить с разработчиками и т. Д.

Существует несколько способов обработки данных временных рядов в Cassandra:

  1. Есть одинстол для всего.Как упоминал Крис, просто включите компонент времени в ключ разделения, например, день, и сохраняйте данные на датчик / день.Если данные не будут обновлены, и вы заранее знаете, как долго они будут храниться, поэтому вы можете установить TTL для данных, тогда вы можете использовать TimeWindowCompactionStrategy .Преимущество этого подхода заключается в том, что у вас есть только одна таблица, и вам не нужно обслуживать несколько таблиц - это упрощает разработку и обслуживание.
  2. Тот же подход, который вы описали - создать отдельную таблицу на период времени, как месяц, и записать данные в них.В этом случае вы можете эффективно отбросить всю таблицу, когда данные «истекают».Используя этот подход, вы можете обновить данные, если это необходимо, и вам не нужно устанавливать TTL для данных.Но это требует больше работы для команд разработчиков и разработчиков, поскольку вам нужно охватить несколько таблиц.Кроме того, примите во внимание, что существуют некоторые ограничения на количество таблиц в кластере - рекомендуется не иметь более 200 таблиц, поскольку каждая таблица требует памяти для хранения метаданных и т. Д. Хотя, некоторые вещи, например, фильтр Блума, может быть настроен так, чтобы занимать меньше памяти для таблиц, которые редко читаются.
0 голосов
/ 29 октября 2018

Для cassandra просто создайте одну таблицу, но включите некоторый период времени в ключ раздела (чтобы разделы не увеличивались бесконечно и становились слишком большими).Никакое обслуживание таблиц и возможности чтения / записи действительно больше зависят от рабочей нагрузки и схемы, размера кластера и т. Д., Но не нужно беспокоиться об этом, за исключением размера кластера.

...