Как периодически записывать новые строки в таблице Cassandra в другую таблицу - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь непрерывно копировать строки из таблицы Cassandra в другую таблицу (в Cassandra или, возможно, в Oracle) для выполнения различных запросов панели инструментов. Исходная таблица Cassandra будет иметь вставки в нее объемом около 6 миллионов в день, а строки имеют TTL 30 дней. Я использую Spring-data-Cassandra в своем приложении. Я проверил следующие варианты, но ни один из них не выглядит хорошо для меня. Моя таблица Cassandra определена следующим образом:

CREATE TABLE event_status (
      code text,
      status text,
      app_id text,
      correlation_id uuid,
      db_ts timestamp,
      next_app_id text,
PRIMARY KEY ((code, status),app_id, correlation_id)
) WITH CLUSTERING ORDER by (app_id ASC, correlation_id ASC);
  1. Материализованные представления в Cassandra: Обычно не рекомендуется в соответствии с некоторыми документами, особенно из-за моих томов.
  2. Триггеры Cassandra: снова не рекомендуется из-за проблем с производительностью.
  3. Наличие отдельного столбца, который помечает строку как прочитанную: Это не рекомендуется в Cassandra, поскольку записи выполняются очень быстро, и обновление с каждая запись.
  4. Пометка временной метки как прочитанной в другой таблице, периодическое чтение этой таблицы и последующий запрос исходной таблицы на наличие строк после этой временной метки. Это также проблема, поскольку я думаю о том, чтобы несколько потоков выполняли эту работу для масштабирования.

Есть ли какие-либо рекомендации по этому поводу в целом для любой базы данных и, в частности, в мире Кассандры?

1 Ответ

0 голосов
/ 10 января 2020

Похоже, у вас есть сценарий использования, который хорошо подходит для подключения к Cassandra CD C. Если вы еще этого не сделали, ознакомьтесь с ранней версией доступа разработчика DataStax CD C для Apache Kafka . Он позволяет перемещать данные между кластерами DSE, Apache Cassandra и Kafka.

Соединитель DataStax Apache Kafka теперь также свободно доступен для Apache пользователей Cassandra (см. объявление здесь для деталей). Ура!

...