Jump to content

Материализованный вид

В вычислительной технике материализованное представление — это объект базы данных , содержащий результаты запроса . Например, это может быть локальная копия данных, расположенная удаленно, или это может быть подмножество строк и/или столбцов таблицы или результата соединения , или это может быть сводка с использованием агрегатной функции .

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

Материализованные представления, в которых хранятся данные на основе удаленных таблиц, также известны как снимки. [5] (устаревшая терминология Oracle ).

В любой системе управления базами данных , использующей реляционную модель , представление представляет собой виртуальную таблицу , представляющую результат к базе данных запроса . Всякий раз, когда запрос или обновление обращается к виртуальной таблице обычного представления, СУБД преобразует их в запросы или обновления к базовым таблицам. Материализованное представление использует другой подход: результат запроса кэшируется как конкретная («материализованная») таблица (а не представление как таковое), которое может время от времени обновляться из исходных базовых таблиц. Это обеспечивает гораздо более эффективный доступ за счет дополнительного хранилища и потенциально устаревших данных. Материализованные представления находят применение особенно в сценариях хранения данных , где частые запросы к реальным базовым таблицам могут быть дорогостоящими. [ нужна ссылка ]

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

Реализации [ править ]

Оракул [ править ]

Материализованные представления были впервые реализованы в базе данных Oracle : функция перезаписи запросов была добавлена ​​с версии 8i. [6]

Пример синтаксиса для создания материализованного представления в Oracle:

 СОЗДАТЬ   МАТЕРИАЛИЗОВАННОЕ   ПРЕДСТАВЛЕНИЕ   MV_MY_VIEW  ОБНОВИТЬ   БЫСТРЫЙ   ЗАПУСК   С   SYSDATE     СЛЕДУЮЩИЙ   SYSDATE   +   1       AS   SELECT   *   FROM   <  table_name  >  ; 

PostgreSQL [ править ]

В PostgreSQL версии 9.3 и новее изначально поддерживаются материализованные представления. [7] В версии 9.3 материализованное представление не обновляется автоматически и заполняется только во время создания (если только WITH NO DATA используется). Позже его можно обновить вручную, используя REFRESH MATERIALIZED VIEW. [8] В версии 9.4 обновление может выполняться одновременно с выбором в материализованном представлении, если CONCURRENTLY используется. [9]

Пример синтаксиса для создания материализованного представления в PostgreSQL:

 СОЗДАТЬ   МАТЕРИАЛИЗИРОВАННОЕ   ПРЕДСТАВЛЕНИЕ   MV_MY_VIEW   [   With   (  параметр_хранилища   [  =   значение  ]   [,   ...   ])   ]      [   TABLESPACE   имя_табличного_пространства   ]       AS   SELECT   *   FROM   <  имя_таблицы  >  ; 

SQL-сервер [ править ]

Microsoft SQL Server отличается от других СУБД способом реализации материализованного представления с помощью концепции, известной как «Индексированные представления». Основное отличие состоит в том, что такие представления не требуют обновления, поскольку фактически они всегда синхронизируются с исходными данными таблиц, составляющих представление. Для этого необходимо, чтобы линии происхождения и назначения были «детерминированными» в своем сопоставлении, что ограничивает типы возможных запросов для этого. Этот механизм реализован начиная с версии SQL Server 2000 года.

Пример синтаксиса для создания материализованного представления в SQL Server:

СОЗДАТЬ   ПРЕДСТАВЛЕНИЕ   MV_MY_VIEW  СО   СХЕМОЙ ПРИВЯЗКИ  КАК   ВЫБРАТЬ   COL1  ,   СУММУ  (  COL2  )   КАК   ВСЕГО  ИЗ   <  имя_таблицы  >  GROUP   BY   COL1  ;  СОЗДАЙТЕ  XV   УНИКАЛЬНЫЙ   КЛАСТЕРНЫЙ   ИНДЕКС   (      НА   MV_MY_VIEW   )  COL1  ; 

Фреймворки потоковой обработки [ править ]

Apache Kafka (начиная с версии 0.10.2), Apache Spark (начиная с версии 2.0), Apache Flink, Kinetica DB , [10] Материализоваться, [11] и RisingWave [12] все поддерживают материализованные представления потоков данных.

Другие [ править ]

Материализованные представления также поддерживаются в Sybase SQL Anywhere . [13] В IBM Db2 они называются «материализованными таблицами запросов». [14] ClickHouse поддерживает материализованные представления, которые автоматически обновляются при слиянии. [15] MySQL изначально не поддерживает материализованные представления, но можно реализовать обходные пути с помощью триггеров или хранимых процедур. [16] или с помощью приложения Flexviews с открытым исходным кодом . [17] Материализованные представления можно реализовать в Amazon DynamoDB с использованием событий изменения данных, фиксируемых DynamoDB Streams.Google объявил 8 апреля 2020 г. [18] наличие материализованных представлений для BigQuery [19] как бета-версия.

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

  1. ^ Сравните: CJ Date (28 августа 2006 г.). Словарь реляционных баз данных: подробный глоссарий реляционных терминов и понятий с наглядными примерами . «О'Рейли Медиа, Инк.». п. 59. ИСБН  978-1-4493-9115-7 . Проверено 26 октября 2016 г. материализация[:] Несколько простой метод реализации операций над представлениями, согласно которому (а) реляционное выражение, определяющее представление, оценивается в момент вызова операции, (б) тем самым представление материализуется и (в) рассматриваемая операция затем выполняется в отношении материализованного таким образом отношения.
  2. ^ Карен Мортон; Керри Осборн; Робин Сэндс; Риядж Шамсудин; Джаред Стилл (28 октября 2013 г.). Про Oracle SQL . Апресс. п. 48. ИСБН  978-1-4302-6220-6 .
  3. ^ Мари-Од Офор; Эстебан Зиманьи (16 января 2012 г.). Бизнес-аналитика: Первая европейская летняя школа, EBISS 2011, Париж, Франция, 3-8 июля 2011 г., Учебные лекции . Springer Science & Business Media. п. 43. ИСБН  978-3-642-27357-5 .
  4. ^ Майкл Л. Гонсалес (25 февраля 2003 г.). Хранилище данных IBM: с инструментами IBM Business Intelligence . Джон Уайли и сыновья. п. 214. ИСБН  978-0-471-45736-7 .
  5. ^ CJ Date (28 августа 2006 г.). Словарь реляционных баз данных: подробный глоссарий реляционных терминов и понятий с наглядными примерами . «О'Рейли Медиа, Инк.». п. 59. ИСБН  978-1-4493-9115-7 . Проверено 26 октября 2016 г. материализованное представление[:] Устаревший термин для обозначения моментального снимка. [...] Проблема в том, [...] что (как указывает определение) снимки стали известны, по крайней мере, в некоторых кругах, вообще не как снимки, а как материализованные представления. Но снимки — это не представления; представления являются виртуальными, а снимки — нет, а «материализованное представление» является противоречием в терминах (по крайней мере, в том, что касается модели). Хуже того, неквалифицированный термин «представление» часто воспринимается как конкретно означающий материализованное представление, и, таким образом, мы рискуем потерять хороший термин для представления в первоначальном смысле.
  6. ^ Настройка Oracle8i, выпуск 8.1.5 . Ecst.csuchico.edu. Проверено 9 февраля 2012 г.
  7. ^ «Материализованные представления — PostgreSQL wiki» . wiki.postgresql.org . Проверено 29 ноября 2022 г.
  8. ^ «СОЗДАТЬ МАТЕРИАЛИЗОВАННОЕ ВИДЕНИЕ» . Документация PostgreSQL . 10 ноября 2022 г. Проверено 29 ноября 2022 г.
  9. ^ «ОБНОВИТЬ МАТЕРИАЛИЗОВАННОЕ ПРОСМОТР» . Документация PostgreSQL . 13 февраля 2020 г. Проверено 29 ноября 2022 г.
  10. ^ «Материализованные представления» . Проверено 28 декабря 2022 г.
  11. ^ «Разговор CMU DB: Материализация строительства» . Проверено 30 марта 2022 г.
  12. ^ «Является ли RisingWave следующим Apache Flink?» . www.singularity-data.com . 28 апреля 2022 г. Проверено 30 июня 2022 г.
  13. ^ Материализованные представления — Sybase SQL Anywhere. Архивировано 14 декабря 2009 г. на Wayback Machine . Ianywhere.com. Проверено 9 февраля 2012 г.
  14. ^ Повышение производительности с помощью индексированных представлений SQL Server 2005 . Microsoft.com. Проверено 9 февраля 2012 г.
  15. ^ Документация ClickHouse MaterializedView . Clickhouse.yandex. Проверено 05 сентября 2019 г.
  16. ^ Реализация материализованных представлений в MySQL . Шингуз.ч (06.11.2006). Проверено 9 февраля 2012 г.
  17. ^ Flexviews для MySQL — материализованные представления с возможностью постепенного обновления с помощью MySQL . Flexviews.sourceforge.net. Проверено 9 февраля 2012 г.
  18. ^ «Примечания к выпуску» . Google.com. 8 апреля 2020 г. Проверено 21 июля 2021 г.
  19. ^ Документация по материализованным представлениям Google BigQuery Google.com Проверено 20 мая 2020 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ef45046e29f370357c81fa2679e828ab__1696976340
URL1:https://arc.ask3.ru/arc/aa/ef/ab/ef45046e29f370357c81fa2679e828ab.html
Заголовок, (Title) документа по адресу, URL1:
Materialized view - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)