rharsha123gmail Ответов: 3

Сжатие данных(более 5000 символов tahn) с помощью COBOL перед хранением в базе данных oracle


мы работаем с огромными данными , нужно сжать более 5000 символов данных в 100 байт при хранении в БД и при повторной обработке нужно распаковать то же самое .

Что я уже пробовал:

не в состоянии придумать ни одного возможного решения

3 Ответов

Рейтинг:
2
Рейтинг:
0

Patrice T

Цитата:
нужно сжать более 5000 символов данных в 100 байт

Если ваши 5000 символов не заполнены повторяющимися последовательностями, соотношение 1/50 невозможно достичь.
Вы должны понимать, что сжатие не бесконечно и зависит от данных, которые нужно сжать. В некоторых случаях сжатие данных может оказаться невозможным.
Вам нужно изучить и понять, как работает сжатие.
Сжатие данных - Википедия[^]


Рейтинг:
0

OriginalGriff

Очень маловероятно, что какой-либо общий алгоритм сжатия получит такую степень сжатия: 5000:100 сжимает данные до 1/50-го исходного размера, и если данные не имеют чрезвычайно высокой избыточности для начала, это просто нереалистичная цель.
Если я создам текстовую строку из 5000 символов (а текст-это самая простая вещь для сжатия) и использую WinZip на самом высоком сжатии, чтобы уменьшить ее, я не получу ничего близкого: 1566 байт, что составляет рацион 5000:1566 или около 1/3.

И сжатие не может гарантировать никакого "конечного размера" от "любого входного сигнала 5K" - это не займет много времени, чтобы массово изменить конечный результат сжатия; многие формы данных уже сжаты (.JPG,. MP4,. ZIP и .RAR, например, все сжимаются очень плохо), и дальнейшее сжатие может даже увеличить размер результирующего файла, поскольку оно добавляет "накладную" информацию, которая объясняет, как распаковать его, когда придет время.

Я бы предложил хранить "сырые" данные в виде файла и хранить местоположение файла в пределах ваших 100 символов: поскольку у вас есть контроль над именем файла и путем, вы можете гарантировать, что он всегда будет соответствовать.