как использовать cassandra cdc (изменить сбор данных)

Я хотел бы знать, как я могу использовать CDC в cassandra. Я обнаружил, что это уже реализовано, начиная с версии 3.8 (https://issues.apache.org/jira/browse/CASSANDRA-8844). Есть примеры использования?


person Arshak Galstyan    schedule 27.04.2017    source источник


Ответы (3)


<сильный>1. Включить CDC на cassandra.yaml

cdc_enabled (default: false)
Enable or disable CDC operations node-wide.

<сильный>2. Включение CDC на столе

CREATE TABLE foo (a int, b text, PRIMARY KEY(a)) WITH cdc=true;
// or
ALTER TABLE foo WITH cdc=true;

<сильный>3. После сброса memtable на диск вы можете получить доступ к данным строки CDC в $CASSANDRA_HOME/data/cdc_raw

В этой папке хранится хранилище cassandra CommitLogSegments. Вы можете проверить эту ссылку Чтение сегментов CommitLog

Подробнее: https://github.com/apache/cassandra/blob/8b3a60b9a7dbefeecc06bace617279612ec7092d/doc/source/operating/cdc.rst

person Ashraful Islam    schedule 29.04.2017

Вы можете написать собственную реализацию CommitLogReader. , или используйте этот пример реализации.

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

person Arry    schedule 29.07.2018

Я работаю в ScyllaDB, которая совместима с Cassandra и также имеет поддержку CDC — ее проще использовать.

Вы можете указать, хотите ли вы получить только дельту, пре=изображение, пост-изображение. Данные хранятся в таблице, созданной системой, и к ним можно получить доступ и прочитать их через CQL.

Как таковой:

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

вы можете прочитать больше в https://docs.scylladb.com/using-scylla/cdc/

person Shlomi Livne    schedule 19.01.2021