Какая база данных наиболее экономична - PullRequest
4 голосов
/ 02 ноября 2011

В настоящее время мы используем Oracle для хранения информации журнала.Один из столбцов - это большой двоичный объект, в котором хранится полезная нагрузка XML.Мы архивируем схему журналирования каждую неделю, но мы все еще достигаем> 1 ТБ в неделю.

Цель: уменьшить объем занимаемой базы данных

Решение 1. Сжать полезную нагрузку XML перед ее помещением в BLOB,

Решение 2. Найдите базу данных (noSQL или другую реляционную БД), которая уже сжимает данные по умолчанию.Драйвер JDBC должен быть доступен.

Кто-нибудь знает базу данных, которая подходит для решения 2?Чтобы нам не нужно было модифицировать приложение, нам просто нужно изменить БД и обновить драйверы JDBC.

Ответы [ 3 ]

6 голосов
/ 02 ноября 2011

Oracle поддерживает несколько различных уровней сжатия - это соответствует решению 2 с минимальными усилиями.(Сжатие таблицы / строки / лепестка)

0 голосов
/ 02 ноября 2011

Во-первых, я бы сказал, что если у вас есть предприятие, затем разбейте эту XML-таблицу, периодически создавайте резервные копии и сокращайте ее (если разбито по диапазону дат, то удаляйте разделы старше x). Если это не вариант, вы можете попробовать хранилище данных noSQL.

Существует множество опций noSQL. Тот, с кем я играл (пока не в производстве) - mongoDB . Он хранит данные в двоичном формате JSON (BSON) и может быть сжат. Похоже, что он продвигается вперед с более крупными компаниями . Когда-то я работал над аналогичной плоской файловой системой b-tree, очень быстро. Вы не будете иметь те же функции, что и СУБД. Хорошая вещь о mongoDB в том, что он коммерчески поддерживается 10gen (опять же, не могу сказать, насколько хороша эта поддержка, но это важно для некоторых магазинов).

Вот хорошая статья , в которой обсуждаются плюсы и минусы более широких вариантов noSQL.

И нет, я не работаю на 10gen;) Конечно, проведите больше исследований и определите, что лучше для ваших нужд

0 голосов
/ 02 ноября 2011

Все известные мне dbms поддерживают сжатие и JDBC.

  • Oracle
  • SQL Server
  • DB2
  • Teradata

PostgreSQL использует базовую операционную систему для хранения. Возможно, вы могли бы построить табличные пространства PostgreSQL в сжатой файловой системе.

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