Как мне создать таблицу, которая будет хранить очень большие данные? - PullRequest
2 голосов
/ 23 марта 2011

Мне нужно спроектировать таблицу в Oracle, которая будет хранить 2-5 ТБ данных в день.Он может вырасти до 200 ТБ, и записи будут удалены, когда он пересекает 200 ТБ.

Является ли целесообразным сохранить его в OLTP или мне нужно перенести его в БД хранилища данных?Пожалуйста, примите во внимание рекомендации, которые я должен учитывать при разработке схемы этой таблицы или базы данных.

Также, пожалуйста, сообщите, если это SQL-сервер, так как я могу использовать любую базу данных.

Ответы [ 2 ]

6 голосов
/ 23 марта 2011

Этот размер помещает вас на территорию VLDB (очень большие базы данных).Вещи принципиально отличаются на этой высоте.

На ваш вопрос невозможно ответить без полного требования обязанностей вашего приложения.Вы должны спроектировать для производительности относительно того, что ваше приложение должно DO с данными.

Мой совет - пригласить кого-нибудь на борт, у кого есть предыдущий опыт, или вы почти на 100% гарантированно ошибетесь.

Если вы используете Oracle, он предоставляет несколько типов секционирования, которые вы захотите использовать очень осторожно.Разделы необходимы для административных целей (перемещение данных, построение индексов, восстановление данных), а также для производительности запросов:

  • Разделение по диапазонам, например, по диапазону дат
  • Разделение по спискам,для хранения фрагментов данных скажем по стране («SE», «US», «GB»)
  • Хеш-разделение.Хранит ваши данные в одном из разделов на основе хэш-функции
  • или любой комбинации вышеперечисленных

Также вам нужен кто-то, кто знает, как создать и настроить монстр-машину сдействительно потрясающая пропускная способность ввода / вывода.Вам нужно больше 1 ГБ / с, что не так уж и дешево, если вам необходимо хранить 200 ТБ.На самом деле, если эти 200 ТБ представляют собой только табличные данные, вам потребуется удвоить или утроить их для создания индексов, агрегированных таблиц, резервных копий и т. Д.

Извините, я не смог дать вам готовое к использованию решение, но я хотел убедиться, что вы понимаете, что вы не просто создаете базу данных выше среднего размера.Это массивно!

3 голосов
/ 23 марта 2011

Сначала я посмотрю на вашу дисковую подсистему и убедился, что она может справиться с нагрузкой 2-5 ТБ, которую вы будете выполнять каждый день.Как в Oracle, так и в SQL Server встроены разделы. В SQL Server вы также можете использовать сжатие для минимизации хранилища на диске (не уверен насчет Oracle)

Будет ли это использоваться в основном для OLAP или OLTP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...