2015-09-14 3 views
0

У меня есть 4 узла Cassandra с 1 семенем в одном центре обработки данных. У меня около 5 миллионов записей, в которых Cassandra занимает около 4 минут, чтобы читать, где с MySQL, это занимает всего 17 секунд. Поэтому я предполагаю, что в моей конфигурации что-то не так. Так любезно, кто-нибудь дайте мне знать, какие атрибуты конфигурации, поэтому я должен проверить Cassandra.yaml.Cassandra Fast Read Configuration

+0

Как записываются записи по узлам? Вы запрашиваете все записи 5M в одном запросе? –

+0

Спасибо Мэтью, что касается разделов, я использую «Murmur3Partitioner» со значениями по умолчанию. Что я делаю, так это то, что я загружаю все данные в инструмент BI, а именно Qlik. Поэтому, чтобы ответить на ваш вопрос, да. – user2597012

ответ

1

Возможно, вы проводите сравнение яблок с апельсинами, если вы читаете все записи 5M от одного клиента.

С MySQL все данные локальны и оптимизированы для чтения, поскольку данные обновляются на месте.

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

Поскольку данные распределены между несколькими узлами, существует множество накладных расходов на доступ и получение данных по сети.

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

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