Я разрабатываю хранилище Hbase для данных, сгенерированных из разных источников. Обычно столбцы из одного и того же источника чаще всего извлекаются одновременно. Ожидаемое соотношение записи/чтения примерно колеблется от 1/10 до 1/100 (зависит от разных источников).
Так что у меня есть два варианта:
- Несколько семейств столбцов: просто создайте одну таблицу и несколько семейств столбцов, каждый тип данных из одного и того же источника будет формировать семейство столбцов.
- Несколько таблиц: создайте одну таблицу (с одним семейством столбцов) для каждого источника.
Вот некоторые из моего понимания, пожалуйста, поправьте меня, если что-то не так.
- Решение с несколькими таблицами отлично подходит для динамического добавления новых источников. В то время как решение с несколькими семействами столбцов может иметь время простоя.
- Если ключ строки из разных источников имеет разное распределение (например, int user_id и GUID изображения) или количество элементов, может быть, лучше разбить на разные таблицы?
- У нас могут быть некоторые требования для получения столбцов из разных источников для одного и того же ключа строки в одно и то же время. Таким образом, несколько семейств столбцов могут быть быстрее (не уверен)?
Любые предложения или мне нужно рассмотреть какие-либо другие факторы, прежде чем принять решение? Есть ли типичные случаи, когда несколько таблиц/семейств с несколькими столбцами превосходят другие?
Спасибо