2017-01-27 3 views
0

У меня есть таблица, которая содержит информацию о рынке в текущем экземпляре. Строки в этой таблице не превышают 700. Имеет ли смысл создавать первичные ключи в этом случае?Определение основной/разделительной таблицы для таблицы с небольшими записями

Я буду запрашивать эту таблицу, чтобы получить все данные или искать «символ» или «сектор».

CREATE TABLE current(
    symbol text, 
    sector text, 
    open double, 
    high double, 
    low double, 
    close double, 
    volume bigint, 
    market_cap double, 
    shares double, 
    last_update timestamp, 
    PRIMARY KEY (symbol, sector) 
) 

Что было бы лучшим подходом для обеспечения быстрого поиска?

ответ

0

Да, имеет смысл создать первичный ключ на этой таблице, поскольку cassandra не разрешает таблицы без первичного ключа. Если у вас всего около 700 записей, я бы поставил под сомнение мудрость использования Кассандры для этого. Cassandra предназначена для эффективной обработки миллиардов записей, петабайт данных.

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

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

+0

Благодарим за отзыв. Я использую cassandra в первую очередь для данных таймсерии, которые мы собираем с фондового рынка. У нас есть отдельная таблица, которая собирает до 300 МБ данных ежедневно. Эта таблица обновляется на основе последних данных, добавленных в определенный момент времени. Мне любопытно, может ли небольшой стол быть мудрым, чтобы положить туда или, может быть, поставить его в отдельный механизм кеширования. – Daniyal