ROLAP столбчатая база данных

У нас очень простой вариант использования, но нам трудно выбрать лучшее решение для БД, соответствующее нашим потребностям.

Требование:

OLAP DB, которая позволяет нам запрашивать миллионы записей по различным свойствам (тысячам) и может содержать один первичный ключ. Также это должно быть частично быстро при загрузке данных.

Вариант использования:

У нас есть база данных пользователей, и каждому пользователю принадлежат разные свойства. Существует до 10 тыс. Свойств, однако большинство пользователей имеют менее 30 свойств.

Пример таблицы:

пользовательские свойства /

user1 / 1,5,10

user2 / 7,5,9,24,42,1090

user3 / 9

user4 / 98,1049,2000

,,

В идеале сценарий должен иметь базу данных с хранилищем столбцов, в которой каждое свойство является столбцом, а база данных допускает более 10 тыс. Свойств.

Monetdb нам подходит, но есть два очень важных недостатка:

  • Массовая загрузка очень низкая, в наших тестах она дала нам 5 мс на каждую загруженную запись. Для загрузки 1М записей потребуется более часа, что очень медленно.
  • Массовая загрузка не выполняется для дублированного первичного ключа (мы хотели бы обновить значения свойств для этого "дублирующего ключа", но это невозможно в этой базе данных).

Мы думали и о друиде, но это скорее "событие". Вам нужна временная метка, когда каждое свойство было добавлено. Это не исключено, однако это не идеально подходит для того, что нам нужно.

Я могу дать больше объяснений, если нужно, любое руководство будет по достоинству оценено!

Спасибо

1 ответ

Неясно, как вы загружаете в базу данных. Простое копирование по таблице из 100 столбцов и 125 миллионов строк занимает не более полчаса на обычном 4-ядерном рабочем столе и 16 ГБ ОЗУ. Смотрите, например, http://homepages.cwi.nl/~mk/ontimeReport

Помните, что введение 10K столбцов означает, что для каждого пользователя установлены все значения. Вы можете пересмотреть свой дизайн базы данных и больше полагаться на настройку таблицы свойств пользователя:

Другие вопросы по тегам