2015-01-31 2 views
0

Ищите подходящую технологию баз данных для эффективного поиска 300-миллиметровых таблиц записей. Таблицы могут содержать 5-30 столбцов в основном tinyint + zip, state. Пользователи могут выдавать произвольные запросы, где условия для многих столбцов и группы счисляются либо по состоянию, либо по zip. Наборы данных статичны, в смысле данные регулярно перезагружаются, и нет вставок, просто читается.Ищете решение для базы данных в основном для чтения приложений, запрашивая 300 миллионов записей

Я уже пробовал Mysql (RDS) с InnoDB. Из-за большого количества записей и характера запросов я не мог получить удовлетворительную производительность.

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

Требование - это время отклика, достаточно быстрое для чувствительных веб-интерфейсов для аналитики.

Какие еще технологии я должен исследовать?

+0

вы хотите monetdb –

ответ

3

Я бы посоветовал вам попробовать MonetDB, это зависит от ваших запросов, но в целом - это хранилище столбцов, которое должно получить хорошую производительность (даже более 300 миллионов записей). Кроме того, вам не нужно вручную создавать индексы и т. Д. - это в основном самооптимизация. MonetDB также имеет Node.js driver/connector, который может использоваться для написания быстрых аналитических веб-приложений. Существуют также разъемы для популярных languages/frameworks: Ruby, Python, Perl, PHP, Java (через JDBC).

И не волнуйтесь, MonetDB активно развивается (отказ от ответственности: я на самом деле разработчик), и вы можете получить ответы относительно быстро в списке рассылки пользователей.

+1

Спасибо, я продолжу работу с MonetDB, пока я не могу найти что-то, что лучше для моего использования. –

+2

Димитар, вы забыли разъем R :) –

0

Взгляните на Google App Engine Datastore. Они автоматически оптимизируют ваши запросы с индексами для быстрого ответа, и это Google, поэтому они позволяют легко масштабировать от нулевого трафика до бахиллов хитов.

Приложения могут быть написаны на Java или Python, используя вашу собственную фреймворк или свою.

-1

Попробуйте Кассандра. В настоящее время он используется очень широко (Facebook, Netflix и многие другие).

Если вы хотите, чтобы ваш код относился абстрактно от базовой технологии баз данных, вы можете использовать kundera JPA 2.0.

Кроме того, он очень прост в использовании Cassandra на месте (для отладки и модульного тестирования). Просто возьмите это class.

+0

ссылка класса не работает. Вы знаете активную версию? – pimbrouwers

+0

Да, ссылка не работает, и я бы не рекомендовал это в любом случае. Вместо этого используйте https://mvnrepository.com/artifact/info.archinnov/achilles-embedded для локальной отладки cassandra. Сделайте что-то вроде этого: 'Файл tempDir = Files.createTempDir(); tempDir.deleteOnExit(); CassandraEmbeddedServerBuilder .noEntityPackages() .withClusterName ("Тест кластера") .withDataFolder (tempDir.getAbsolutePath()) .cleanDataFilesAtStartup (истина) .withKeyspaceName ("myKeyspace") .withCQLPort (myPort) .buildNativeSessionOnly(); } ' – yurgis

Смежные вопросы