Типы сжатия файла многомерных данных в EssBase

 

Настройка распределения дискового пристранства и сжатия данных

 

Essbase позволяет выбрать тип того , как будут сжиматься и хранится блоки данных на дисковом хранилище. При включенной опции компрессии, EssBase сжимает данные прежде чем их записать на диск, при чтении , он распаковывает блок данных, в выделенной области памяти (Data Cache), включая пустые ячейки . Обычно, опции компрессии оптимальны для использования, для определения насколько эффективно сжимается блок данных – нужно проверять параметр Compression Ratio.

 

Essbase поддерживает следующие типы сжатия данных:

  • Bitmap compression – по умолчанию. Essbase хранит только значимые ячейки с использованием схемы bitmap.
  • Run-length encoding (RLE) – Essbase сжимает повторяющиеся значения, включая нули и #MISSING.
  • Zlib. Essbase создает словарь данных. Эффективно только при большом коэффициенте плотности блока (более 5%) и для приложений, у которых данные обновляются централизованно.
  • Index Value Pair. Essbase сам выбирает данные тип компрессии ( он не доступен для настройки администратором)
  • No compression. Блоки хранятся как есть.

     

    Так как Essbase сжимает блоки данных перед тем как записать на диск есть несколько правил для bitmap, RLE и uncompressed блоков данных которых нужно знать, что бы эффективно настраивать систему хранения данных.

    • Когда сжатые данные попадают в Data cache, EssBase распаковывает блок до полного размера основываясь на алгоритме выбранной схемы хранения.
    • Когда EssBase сохраняет блок на диск, он Essbase он применяет к нему выбранные алгоритм работы по сжатию данных.
    • Если тип сжатия не был выбран, то блок записывается на диск как есть.
    • Единственным аргументом в пользу отказа от сжатия является очень большая плотность блока данных – более 90%.

     

    Bitmap Data Compression

     

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

    При использовании побитового сжатия в системе хранятся только реальные значения, а повторяющиеся или нулевые значения не сжимаются (в отличие от сжатия типа RLE, описываемого в следующем разделе). Когда система помещает страницу блока в память, она его полностью развертывает, используя битовую матрицу для воссоздания отсутствующих значений.

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

     

    В этом примере системе требовалось бы 64 байта для сохранения этих данных в виде полностью развернутого блока, однако в действительности используется только один байт (восемь бит) для хранения битовой матрицы сжатых данных на диске. (Для каждого блока также используется заголовок из 72 байтов независимо от сжатия.)

     

    RLE Data Compression

    При использовании схемы сжатия на основании кодирования длин серий (RLE) система сжимает все значения, последовательно повторяющиеся три или более раз, в том числе нули. Система отслеживает каждое повторяющееся значение и количество последовательных повторений.

    В примере на рисунке системе требовалось бы 64 байта для хранения данных в полностью развернутом блоке, но в действительности для хранения сжатых данных на диске используется только 56 байт. (Система также использует 72-байтовый заголовок для каждого блока независимо от его сжатия.) Для того что бы эффективно использовать данный тип сжатия в матрице плотных направлений первым дожно идти то направление, которое содержит в себе наименьшее число хранимых элементов – например периоды.

     

    .

     

    zlib Compression

    Index Value Pair Compression

    – не рассматриваются ввиду крайне редкой области применения.