Zhmotněné zobrazení - Materialized view - Wikipedia
v výpočetní, a zhmotnil pohled je databáze objekt, který obsahuje výsledky a dotaz. Může to být například místní kopie dat umístěných na dálku nebo to může být podmnožina řádků a / nebo sloupců tabulky nebo připojit se výsledek, nebo může být souhrn pomocí agregační funkce.
Proces nastavení materializovaného pohledu se někdy nazývá materializace.[1] Toto je forma ukládání do mezipaměti výsledky dotazu, podobné memorování hodnoty funkce ve funkčních jazycích a někdy je popisována jako forma předpočítání.[2][3] Stejně jako u jiných forem předpočítání uživatelé databáze obvykle používají materializovaná zobrazení z důvodů výkonu, tj. Jako forma optimalizace.[4]
Zhmotněné pohledy, které ukládají data na základě vzdálených tabulek, byly také známé jako snímky,[5] (zastaralá terminologie Oracle).
V každém Systém pro správu databází v návaznosti na relační model, a Pohled je virtuální stůl představující výsledek a databáze dotaz. Kdykoli dotaz nebo aktualizace adresuje virtuální tabulku běžného zobrazení, DBMS je převede na dotazy nebo aktualizace oproti základním základním tabulkám. Zhmotněné zobrazení má jiný přístup: výsledek dotazu je uloženo do mezipaměti jako konkrétní („materializovaná“) tabulka (spíše než pohled jako takový), který lze čas od času aktualizovat z původních základních tabulek. To umožňuje mnohem efektivnější přístup za cenu dodatečného úložiště a některých dat, která jsou potenciálně zastaralá. Zhmotněné pohledy nacházejí uplatnění zejména v skladování dat scénáře, kde časté dotazy na skutečné základní tabulky mohou být drahé.
V materializovaném pohledu indexy lze postavit na libovolném sloupci. Naproti tomu v normálním zobrazení je obvykle možné využívat indexy pouze pro sloupce, které pocházejí přímo z indexovaných sloupců (nebo mají k nim mapování) v základních tabulkách; tato funkce často není vůbec nabízena.
Implementace
Věštec
Zhmotněné pohledy byly nejprve implementovány Oracle Database: funkce přepisování dotazů byla přidána z verze 8i.[6]
Příklad syntaxe pro vytvoření materializovaného pohledu v Oracle:
VYTVOŘIT MATERIALIZOVÁNO POHLED MV_MY_VIEWOBNOVIT RYCHLE START S SYSDATE DALŠÍ SYSDATE + 1 TAK JAKO VYBRAT * Z <název_tabulky>;
PostgreSQL
v PostgreSQL, verze 9.3 a novější nativně podporují zhmotněná zobrazení.[7] Ve verzi 9.3 se materializované zobrazení neaktualizuje automaticky a je vyplněno pouze v době vytvoření (pokud BEZ ÚDAJŮ
se používá). Může být obnoveno později ručně pomocí OSVĚŽČENÝ MATERIALIZOVANÝ VÝHLED
.[8] Ve verzi 9.4 může být aktualizace souběžná s výběrem v materializovaném zobrazení, pokud SOUČASNĚ
se používá.[9]
Příklad syntaxe pro vytvoření materializovaného pohledu v PostgreSQL:
VYTVOŘIT MATERIALIZOVÁNO POHLED MV_MY_VIEW [ S (storage_parameter [= hodnota] [, ... ]) ] [ TABLESPACE název_tabulkového prostoru ] TAK JAKO VYBRAT * Z <název_tabulky>;
SQL Server
Microsoft SQL Server se liší od ostatních RDBMS způsobem implementace materializovaného zobrazení prostřednictvím konceptu známého jako „indexovaná zobrazení“. Hlavní rozdíl spočívá v tom, že takové pohledy nevyžadují aktualizaci, protože jsou ve skutečnosti vždy synchronizovány s původními daty tabulek, které pohled skládají. K dosažení tohoto cíle je nutné, aby linie původu a destinace byly ve svém mapování „deterministické“, což omezuje typy možných dotazů. Tento mechanismus byl realizován od verze SQL Serveru 2000.
Příklad syntaxe pro vytvoření materializovaného pohledu na serveru SQL Server:
VYTVOŘITPOHLEDMV_MY_VIEWSPLÁNOVÁNÍTAK JAKOVYBRATCOL1,SOUČET(COL2)TAK JAKOCELKOVÝZ<název_tabulky>SKUPINAPODLECOL1;JÍTVYTVOŘITUNIKÁTNÍCLUSTEREDINDEXXVNAMV_MY_VIEW(COL1);
Streamovací rámce zpracování
Apache Kafka (od v0.10.2), Apache Spark (od verze 2.0) a Materialize.io[10] všechny podporují zhmotněné pohledy na streamy dat.
Ostatní
Zhmotněné pohledy jsou také podporovány v Sybase SQL kdekoli.[11] v IBM DB2, nazývají se „tabulky materializovaného dotazu“.[12] ClickHouse podporuje materializovaná zobrazení, která se při sloučení automaticky obnoví. [13] MySQL nepodporuje nativně materializovaná zobrazení, ale řešení lze implementovat pomocí spouštěčů nebo uložených procedur [14] nebo pomocí aplikace s otevřeným zdrojovým kódem Flexviews.[15] Zhmotněné pohledy lze implementovat v Amazon DynamoDB pomocí událostí modifikace dat zachycených streamy DynamoDB. Google oznámil 8. dubna 2020[16] dostupnost zhmotněných pohledů pro BigQuery[17] jako beta verze.
Reference
- ^ Porovnat: Datum C.J. (28. srpna 2006). Relační databázový slovník: Komplexní glosář relačních pojmů a konceptů s ilustrativními příklady. „O'Reilly Media, Inc.“. str. 59. ISBN 978-1-4493-9115-7. Citováno 2016-10-26.
materializace [:] Trochu nekomplikovaná technika pro provádění operací na pohledech, podle nichž (a) je relační výraz, který definuje pohled, vyhodnocen v okamžiku vyvolání operace, (b) pohled je tím zhmotněn a (c) příslušná operace se poté provede proti takto zhmotněnému vztahu.
- ^ Karen Morton; Kerry Osborne; Robyn Sands; Riyaj Shamsudeen; Jared Still (28. října 2013). Pro Oracle SQL. Apress. str. 48. ISBN 978-1-4302-6220-6.
- ^ Marie-Aude Aufaure; Esteban Zimányi (16. ledna 2012). Business Intelligence: První evropská letní škola, EBISS 2011, Paříž, Francie, 3. – 8. Července 2011, výukové lekce. Springer Science & Business Media. str. 43. ISBN 978-3-642-27357-5.
- ^ Michael L. Gonzales (25. února 2003). IBM Data Warehousing: s IBM Business Intelligence Tools. John Wiley & Sons. str. 214. ISBN 978-0-471-45736-7.
- ^ Datum C.J. (28. srpna 2006). Relační databázový slovník: Komplexní glosář relačních pojmů a konceptů s ilustrativními příklady. „O'Reilly Media, Inc.“. str. 59. ISBN 978-1-4493-9115-7. Citováno 2016-10-26.
materializované zobrazení [:] Zastaralý termín pro snímek. [...] Problém je v [...], že (jak naznačuje definice) snímky byly známy, alespoň v některých kruzích, vůbec ne jako snímky, ale jako zhmotněné pohledy. Ale snímky nejsou pohledy; pohledy jsou virtuální a snímky nejsou, a „materializovaný pohled“ je rozporem, co se týče (alespoň pokud jde o model). Ještě horší je, že nekvalifikovaný termín Pohled se často rozumí konkrétně zhmotněný pohled, a proto nám hrozí, že již nebudeme mít dobrý výraz pro pohled v původním smyslu.
- ^ Oracle8i Tuning Release 8.1.5. Ecst.csuchico.edu. Citováno 2012-02-09.
- ^ PostgreSQL: zhmotněné pohledy. Wiki.postgresql.org (07.05.2010). Citováno 2013-09-25.
- ^ PostgreSQL: Dokumentace: 9.3: VYTVOŘIT MATERIALIZOVANÝ POHLED. PostgreSQL.com. Citováno 2014-01-25.
- ^ PostgreSQL: Dokumentace: 9.4: OSVĚTLENÝ MATERIÁLIZOVANÝ POHLED. PostgreSQL.com. Citováno 2015-01-23.
- ^ „CMU DB Talk: Building Materialise“. Citováno 26. června 2020.
- ^ Zhmotněné pohledy - Sybase SQL Anywhere Archivováno 2009-12-14 na Wayback Machine. Ianywhere.com. Citováno 2012-02-09.
- ^ Zlepšení výkonu pomocí indexovaných zobrazení serveru SQL Server 2005. Microsoft.com. Citováno 2012-02-09.
- ^ ClickHouse Documentation MaterializedView. Clickhouse.yandex. Citováno 2019-09-05.
- ^ Implementace zhmotněných pohledů v MySQL. Shinguz.ch (06.11.2006). Citováno 2012-02-09.
- ^ Flexviews pro MySQL - přírůstkově obnovitelné zhmotněné pohledy s MySQL. Flexviews.sourceforge.net. Citováno 2012-02-09.
- ^ 8. dubna 2020 Tisková zpráva Google.com Citováno 2020-05-20.
- ^ Dokumentace materializovaného zobrazení Google BigQuery Google.com Citováno 2020-05-20.
externí odkazy
- Koncepty a architektura materializovaného pohledu - Oracle
- Fragmenty SQL: Návody k funkcím SQL - zhmotněná zobrazení - Oracle
- Oracle9i Replication Management API Reference Release 2 (9.2)
- Zhmotněné pohledy v Oracle 11.2
- Tabulky materializovaného dotazu v produktu DB2
- Vytváření materializovaných pohledů v MySQL