Инверсия и хранение столбцов

задняя часть MySQL HBase поисковый движок
  • Я всегда был тупым и не мог отличить инвертированное хранилище от столбчатого, сегодня у меня есть время разобраться, есть четыре основных понятия, которые нужно прояснить:
    1. Метод индексации: прямой индекс, обратный индекс (инвертированный)
    2. Метод хранения: хранение строк, хранение столбцов
    3. Структура данных: HashMap, B-Tree, BitMap...
    4. Структура хранения:
      • Последовательная организация (последовательные файлы)
      • Организация индекса (индексный файл)
      • хэш-организация (хэш-файл)
      • Организация сети (файл с несколькими ключевыми словами)

индексный метод

  • Метод индексации является направляющей идеей, которая не связана напрямую с конкретной структурой данных и структурой хранения.
  • Прямой индекс: DocId->Value
  • Обратный индекс: значение-> docid

Перевернутый индекс

倒排索引
Перевернутый индекс

  • Инвертированный индекс — это обратный индекс, который является самым основным методом индексирования при поиске информации. В частности, индекс хранится в виде инвертированной таблицы и инвертированной цепочки. В инвертированной таблице хранятся все значения, а в инвертированной цепочке хранится список DocId. . . .

способ хранения

  • Метод хранения — это метод хранения значения в положительной строке, а также руководящая идеология, которая не имеет ничего общего с конкретной структурой данных и структурой хранения.
    行列比较
    сравнение строк и столбцов
  • Основная память хранения разделена на строки и (ориентированные на столбцы) хранение двух типов столбцов.

Хранить по строкам

  • В качестве минимальной единицы хранения используется одна строка, а каждый столбец представлен смещением.
  • Запросы без индексов используют много операций ввода-вывода.
  • Mysql — это метод хранения на основе строк.Для безусловного поиска по одному столбцу необходимо пройти всю таблицу.

хранить по столбцу

  • Используйте один столбец в качестве записи, записывайте информацию о строке в выравнивании или метаданных
  • Данные — это индекс, и системный ввод-вывод можно значительно сократить, если проверять только один столбец.
  • Однотипные данные вместе, легко сжимаемые
  • HBase хранится в столбцах, используя метаданные для записи информации о строках.

структура данных

  • Структура данных является реальной организацией данных, которая является реальной структурой логического уровня.
  • Одна и та же структура данных может реализовать разные идеи.Ниже приведен пример B-Tree.

B-Tree

перевернутый

  • Если каждый внутренний узел дерева B хранит определенное значение, а листовой узел хранит идентификатор, то это инверсия.
  • На самом деле существует множество поисковых систем, которые ранжируются таким образом.

положительный ряд

  • Если внутренний узел хранит идентификатор, и узел листьев хранит содержимое, это положительный ряд
  • Реальная сцена, индекс pk mysql хранится так
  • хранилище строк
    • Если листовой узел B-дерева в положительной строке хранит значение строки, то это хранилище строки, в противном случае, если это значение столбца, это хранилище столбца.

структура хранения

  • Структура хранения — это то, как данные фактически размещаются на диске, и это реальная структура на физическом уровне.
  • Существуют разные структуры хранения в соответствии с различными структурами данных.
  • Как правило, B-Tree — это место, где размещается индексный файл, а HashTable может храниться в хэше.
  • В настоящее время в основном структура индекса размещения заказов, конкретная реализация различных продуктов не то же самое.
  • Например, VSAM от IBM — это формат файла для хранения B-деревьев, который состоит из трех частей: набора индексов, набора последовательностей и набора данных.

Хранение и инверсия столбцов

  • Вернемся к вопросу в начале: какова связь между хранением в столбцах и инверсией?
  • Хранилище столбцов — это идея хранения прямой строки, и она не имеет ничего общего с инвертированными строками.
  • Как правило, поскольку сортировка поисковых систем основана на нескольких столбцах, общие поисковые системы используют инвертированные строки для точных запросов и хранилище столбцов для сравнительных вычислений.

использованная литература

  1. Несколько картинок для понимания столбчатого хранилища
  2. Структура данных — файл
  3. Разница между традиционным хранилищем строк (Oracle) и хранилищем столбцов (HBase)
  4. Разница между вторичным индексом и инвертированным
  5. Изучение архитектуры системы Columnar Storage HBase