Jump to content

Ориентация данных

Ориентация данных относится к тому, как табличные данные представлены в линейной модели памяти , например на диске или в памяти . Двумя наиболее распространенными представлениями являются ориентированные на столбцы (формат столбцов) и ориентированные на строки (формат строк). [1] [2]

Выбор ориентации данных — это компромиссное и архитектурное решение в базах данных , механизмах запросов и численном моделировании. [1] В результате этих компромиссов форматы, ориентированные на строки, чаще используются в онлайн-обработке транзакций (OLTP).форматы, ориентированные на столбцы, чаще используются в онлайн-аналитической обработке (OLAP). [2]

Примеры форматов, ориентированных на столбцы, включают Apache ORC , [3] Паркет Апач , [4] Апачская стрела , [5] форматы, используемые BigQuery , Amazon Redshift и Snowflake .Преобладающие примеры форматов, ориентированных на строки, включают CSV, форматы, используемые в большинстве реляционных баз данных в памяти , формат Apache Spark и Apache Avro . [6]

Описание [ править ]

Табличные данные по своей природе двумерны: данные представлены в строках и столбцах.Однако современные операционные системы логически представляют данные в линейной модели памяти , как на диске, так и в памяти. [7] [8] [9] Следовательно, таблица в модели линейной памяти требует проецирования ее двумерных элементов в одномерное пространство.Ориентация данных относится к решению, принятому в этой проекции.Существует два основных варианта ориентации: ориентированная на строки и ориентированная на столбцы. [1] [2]

Ориентированный на строки [ править ]

В строковой ориентации элементы таблицы

столбец 1 столбец 2 столбец 3
пункт 11 пункт 12 пункт 13
пункт 21 пункт 22 пункт 23

хранятся линейно как

пункт 11 пункт 12 пункт 13 пункт 21 пункт 22 пункт 23

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

Примеры [ править ]

Столбцово-ориентированный [ править ]

В столбцовой ориентации элементы таблицы

столбец 1 столбец 2 столбец 3
пункт 11 пункт 12 пункт 13
пункт 21 пункт 22 пункт 23

хранятся линейно как

пункт 11 пункт 21 пункт 12 пункт 22 пункт 13 пункт 23

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

Примеры [ править ]

см. в списке СУБД, ориентированных на столбцы Дополнительные примеры .

Компромисс [ править ]

Ориентация данных является важным архитектурным решением систем, обрабатывающих данные, поскольку оно приводит к важным компромиссам в производительности и хранении . [8] Ниже приведены избранные аспекты этого компромисса.

Произвольный доступ [ править ]

Преимущества строкового подхода заключаются в быстром произвольном доступе к строкам.Столбцовая ориентация выигрывает от быстрого произвольного доступа к столбцам.В обоих случаях это результат меньшего количества промахов страниц или кэша при доступе к данным. [8]

Вставить [ править ]

Преимущества строковой ориентации заключаются в быстрой вставке новой строки.Преимущества столбцовой ориентации заключаются в быстрой вставке нового столбца.

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

Условный доступ [ править ]

Преимущества строковой ориентации за счет быстрого доступа под фильтром.Столбцовая ориентация обеспечивает быстрый доступ к проекции. [4] [3]

Вычисление производительности [ править ]

Столбцовая ориентация обеспечивает преимущества быстрых аналитических операций.Это результат возможности использования инструкций SIMD . [5]

Несжатый размер [ править ]

Преимущества столбцовой ориентации заключаются в меньшем несжатом размере.Это результат возможности того, что эта ориентация предлагает представлять определенные типы данных с помощью специальных кодировок. [4] [3]

Например, таблица из 128 строк с логическим столбцом требует 128 байтов в формате, ориентированном на строки (один байт на логическое значение).но 128 бит (16 байт) в формате, ориентированном на столбцы (через растровое изображение).Другим примером является использование кодирования по длине серии для кодирования столбца.

Сжатый размер [ править ]

Преимущества столбцовой ориентации за счет меньшего размера в сжатом виде.Это результат более высокой однородности внутри столбца, чем внутри нескольких строк. [4] [3]

Преобразование и обмен [ править ]

Поскольку обе ориентации представляют одни и те же данные, можно преобразовать набор данных, ориентированный на строки, в набор данных, ориентированный на столбцы, и наоборот, за счет вычислений.В частности, расширенные механизмы запросов часто используют преимущества каждой ориентации и преобразуют одну ориентацию в другую в ходе своего выполнения.Например, запрос Apache Spark может

  1. читать данные из Apache Parquet (столбцово-ориентированный)
  2. загрузить его во внутренний формат памяти Spark (ориентированный на строки)
  3. преобразовать его в Apache Arrow для конкретных вычислений (ориентированных по столбцам)
  4. напишите его в Apache Avro для потоковой передачи (ориентировано на строки)

Ссылки [ править ]

  1. ^ Jump up to: а б с «Хранилища столбцов и хранилища строк: насколько они на самом деле отличаются?». SIGMOD '08: Материалы международной конференции ACM SIGMOD 2008 г. по управлению данными . дои : 10.1145/1376616.1376712 .
  2. ^ Jump up to: а б с д «Сжатие транзакционных данных в гибридных базах данных OLTP и OLAP». Труды Фонда VLDB . дои : 10.14778/2350229.2350258 .
  3. ^ Jump up to: а б с д «Апач ORC» . Проверено 21 мая 2024 г.
  4. ^ Jump up to: а б с д «Апач Паркет» . Проверено 21 мая 2024 г.
  5. ^ Jump up to: а б «Стрела Апача» . Проверено 21 мая 2024 г.
  6. ^ «Апач Авро» . Проверено 21 мая 2024 г.
  7. ^ «Вместо свопа: анализ сжатой оперативной памяти в Mac OS X и Linux» . Цифровое расследование . дои : 10.1016/j.diin.2014.05.011 .
  8. ^ Jump up to: а б с М. Франс Каашук, Джером Х. Зальцер. Принципы проектирования компьютерных систем . ISBN  978-0-12-374957-4 .
  9. ^ «Глава 4. Адресное пространство процесса (документация ядра Linux)» . Проверено 21 мая 2024 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 469c82b827f3724a8bed14a70f330e6b__1718913540
URL1:https://arc.ask3.ru/arc/aa/46/6b/469c82b827f3724a8bed14a70f330e6b.html
Заголовок, (Title) документа по адресу, URL1:
Data orientation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)