Как я могу обработать свою полезную нагрузку, чтобы вставить объемные данные в несколько таблиц с атомарностью / согласованностью в Кассандре? - PullRequest
0 голосов
/ 18 февраля 2020

Мне нужно спроектировать базу данных для клиентов, имеющих цены на миллионы материалов, которые они приобретают у нескольких поставщиков в течение следующих 24 месяцев. Таким образом, база данных будет ежедневно хранить цены для каждого материала, поставляемого указанным c поставщиком в течение следующих 24 месяцев. Теперь у меня есть несколько вариантов использования, поэтому я создал несколько таблиц, чтобы наилучшим образом решить каждый вариант использования. Теперь вставка данных в эти таблицы будет происходить регулярно большими порциями (скажем, для 1k элементов), что также должно обеспечивать согласованность данных, т.е. данные должны быть вставлены во все таблицы или ни в одну из них. Ошибка при этом должна быть помечена как «ошибка» без вставок для дальнейших действий. Как я могу решить эту проблему в Cassandra эффективно?

При выборе, который я могу придумать, нужно использовать небольшие процессы BATCH (например, 1K для 1k элементов). Я мог бы столкнуться с несколькими разделами во время вставки в разные таблицы, имеющие разный набор первичных ключей;

Есть мысли? Спасибо

1 Ответ

0 голосов
/ 18 февраля 2020

Если вы говорите в отношении базы данных (Cassandra), то вам следует рассмотреть много вещей для точки моделирования данных. Вам нужно go через подробности моделирования данных по ссылке ниже с пакетом. https://docs.datastax.com/en/dse/6.0/cql/cql/ddl/dataModelingCQLTOC.html https://docs.datastax.com/en/dse/6.0/cql/cql/cql_reference/cql_commands/cqlBatch.html

Кроме того, исходя из характера приложения, вы должны подумать о стратегии сжатия для обработки высоких записей или чтений.

...