2015-12-22 2 views
0

Мне нужно заполнить 4 разных стола в кассандре, абсолютно такими же данными.cassandra: отправить onse магазин несколько раз

Я имею в виду, что у меня есть N полей, каждый из которых имеет какое-то значение, но мне нужно хранить их в 4 разных таблицах (с различными определениями PK), чтобы разрешить различные варианты выбора.

Для этого мне нужно трижды ввести 4 вставки.

4 раза больше сетевых накладных расходов и работают как для кассандры, так и для производителя данных.

Есть ли способ в кассандре отправить 1-ce и сохранить в N разных таблицах?

Мне нужна оптимизация, но партии не подходят для этого.

Пожалуйста, помогите !!

+0

выглядит как особенность .... –

ответ

0

Если вы не хотите использовать пакетные вставки, и у вас есть возможность использовать Cassandra 3.x, вы можете использовать новую функцию Materialized Views. С материализованными видами вы можете в основном сделать именно то, что вы просили. Вам нужно будет создать один главный стол, в который будут включены все ваши вставки. Тогда вам нужно будет создать 3 материализованных представления.

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

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

Предоставленная ссылка дает больше информации о том, как эти представления работают, поэтому, пожалуйста, просмотрите дополнительную информацию.

1

Триггеры Cassandra также могут работать на вас. Вы создаете триггерный класс Java и развертываете его в банке для каждого узла. Когда он перехватывает вашу основную таблицу, она также записывает записи другим.