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