Разделите таблицу на несколько физических узлов - PullRequest
0 голосов
/ 01 марта 2010

Так что в настоящее время я работаю над проектом, который включает сбор и хранение некоторых огромных наборов данных (насколько я привык к работе). Данные в основном состоят из метаинформации, а затем и фактических значений (где значения изменяются с течением времени).

Сама мета информация относительно велика, но ничего особенного, я бы сказал, что в ближайшие пару лет она вырастет до 10-50 миллионов строк. Мне это кажется управляемым, и одного мощного SQL Server должно быть достаточно, чтобы обеспечить быстрый доступ к этим данным, если они хорошо проиндексированы (и данные очень легко индексируются с четко определенными границами) ...

Однако данные трендов - это совсем другая история. В течение года мы ОЧЕНЬ легко собираем 40-50 миллионов строк каждый день, и это может реально удваиваться ежегодно в течение следующих 3-4 лет.

Эти трендовые данные также имеют четко определенные границы, которые разбили бы их на НАМНОГО более управляемых по размеру кусков. Я надеюсь, что смогу установить какой-то механизм разделения, который распространял бы эти данные по нескольким физическим узлам базы данных. Все данные в основном содержатся в одной таблице. Я изучил разбиение таблиц в SQL Server, но не смог найти способ распределить данные по нескольким серверам.

Мой вопрос заключается в том, существует ли какой-либо "относительно простой" способ реализации разбиения таблиц на несколько физических узлов. Я также потратил некоторое время на просмотр Sql Server PDW, но его трудно найти в Интернете, и я не хочу заниматься этим до тех пор, пока не выясню, что не существует простого способа реализации такого рода решения с использованием встроенных функций. в SQL Server.

Любой совет будет принята с благодарностью ...

1 Ответ

1 голос
/ 01 марта 2010

Я не специалист по этому вопросу, но я верю, что вы можете искать это «разбиение» базы данных. Здесь есть интересный анализ проблем и преимуществ шардинга здесь .

В конечном счете, реализация «осколочного» дизайна, вероятно, будет очень дорогостоящей, но если ваши данные будут неуправляемыми в одной базе данных, тогда это может быть хорошим решением.

Существует также небольшое количество информации на странице Wikipedia , которая включает в себя список программного обеспечения, поддерживающего шарды (например, Hibernate ORM)

...