Columnstore indexy - lék pro datové sklady Miloslav Peterka MCSE: Data Platform & Business Intelligence | MCT

Slides:



Advertisements
Podobné prezentace
OZD: Hašování RNDr. Michal Žemlička.
Advertisements

Senior IT operations manager
Informační systém Patricie specializované řešení pro Advokátní kanceláře.
Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
Ing. Jan Mittner Profiling aplikací 2. Zend_Cache 3. Optimalizace výkonu databáze 4. Optimalizace rychlosti načítání webu 5. Další tipy.
Zpracování SQL Lubomír Andrle 5. přednáška
Základy databázových systémů
Aplikační a programové vybavení
Business intelligence
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Fakulta elektrotechniky a informatiky
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Temporální databáze a TSQL
Radek Špinka Přepínače MSSQL výběr.
Financování stavební zakázky
Martin Kirschbaum 4.A,  určitá uspořádaná množina informací (dat) uložená na paměťovém médiu  Databázový program - umožňuje tvořit, editovat,
1IT Relační datový model
Databáze Jiří Kalousek.
Transakční systémy Transakční systémy
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Uložení a analýza bodového mračna bodů v Oracle Spatial Fakulta aplikovaných věd / Katedra matematiky Západočeská univerzita v Plzni Bc. Michal.
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Informační systémy TPS,MIS, SIS.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové modelování
Access Vysvětlení pojmu databáze - 01
Databáze Lokální systémy a SQL servery VY_32_INOVACE_7B10.
Databázové systémy Informatika pro ekonomy, př. 18.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Architektura počítače
Na cestě k ASP Jiří Voříšek VŠE - KIT publikováno: červen 2002.
Administrace Oracle Paralelní zpracování.
Perzistence XML dat Kamil Toman
DATABÁZE.
24 Používání relačních databází (základní pojmy a principy z oblasti relačních databází, struktura databáze,oblasti použití relačních databází, vkládání.
Kalkulace - učitel.
Diskový oddíl. Diskové oddíly (partition) slouží k rozdělení fyzického disku na logické oddíly, se kterými je možné nezávisle manipulovat jeden disk se.
Úvod do databází zkrácená verze.
Miloslav Peterka, BI Experts, s.r.o.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 7. ročník III
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Software,hardware,data,biti a bajty.  Software je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost.
Kapitola 5: Úvod do analytických technologií Webu Vítězslav Šimon (SIM0047) Adaptivní webové systémy (AWS)
Vnitropodnikové účetnictví. Finanční účetnictví Normativně upraveno Sleduje aktiva, pasiva, náklady a výnosy účetní jednotky za celek Poskytuje souhrnné.
Datové typy MS Access (3). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně.
Databáze MS ACCESS 2010.
Ukládání dat biodiverzity a jejich vizualizace
Unix a Internet 9. SQL server
Architektury a technika databázových systémů
Procesor Procesor (CPU – Central Processing Unit) je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program.
Ing. Athanasios Podaras, Ph.D 2016
Databázové systémy přednáška 13 – Analýza a reporting
Využití v praxi operační paměti RAM
Optimalizace SQL dotazů
Jak načítat externí data na SQL Server
SQL Server Query Store Miloslav Peterka
Roman Péchal, Jan Čongva, Martin Durák
Základy business intelligence Jaroslav Šmarda
Analýza velkých dat strukturovaně či nestrukturovaně?
SQL Server 2017: Automatic tuning
Transkript prezentace:

Columnstore indexy - lék pro datové sklady Miloslav Peterka MCSE: Data Platform & Business Intelligence | MCT

Agenda  Rowstore a columnstore  Columnstore v SQL Serveru  Projekt Pilana a rozpočtování  Testování  Výsledky  Závěr

Rowstore  Tradiční uložení dat po řádcích V tabulce jsou hodnoty jednotlivých sloupců pro jeden záznam uloženy vedle sebe (společně) Datová stránka č.2 FirstNameLastNameHireDateGender ………… ………… ………… ………… MichaelaRudá F RomanTurek M Datová stránka č.1 FirstNameLastNameHireDateGender JosefNovák M TerezaTonová F KubrtPodivný M ………… ViolaTichá F …………

Columnstore  Columnstore ukládá logickou tabulku fyzicky po sloupcích (hodnoty z jednoho sloupce společně pro všechny záznamy) Datová stránka FirstName Josef Tereza Kubrt Viola Michaela Roman Datová stránka LastName Novák Tonová Podivný Tichá Rudá Turek Datová stránka HireDate Datová stránka Gender M F M F F M

Columnstore  Velice efektivní způsob ukládání rozsáhlých analytických dat ▪ Efektivní komprese díky podobným hodnotám ve sloupci ▪ Méně IO operací, menší nároky na paměť ▪ Zvýšená zátěž CPU ▪ Řádové zrychlení dotazů ▪ Řádové snížení nároků na úložný prostor  Výhodný zejména v DW aplikacích ▪ Skenování rozsáhlých tabulek faktů ▪ Typické dotazy na omezený počet sloupců ▪ Ve sloupcích řada duplicitní hodnot (ID dimenzionálních memberů)  Rychlé získání dat z omezeného počtu sloupců ▪ Stačí načíst potřebné sloupce

Columnstore v SQL Serveru  Dostupné pouze v Enterprise edici  Využívá technologii VertiPaq In-memory komprese  Rowgroup, column segment  Novinka ve verzi 2012 Pouze jeden nonclustered CI na tabulku Read only  Nelze měnit data v tabulce (partition switching) Batch mode processing  Velice omezené použití

Columnstore v SQL Serveru  Ve verzi 2014 značné vylepšení Klastrovaný index podporující i zápis  Nelze kombinovat s jinými indexy Neklastrovaný columnstore index stále read-only Archival compression option  Maximalizuje kompresi Batch processing podporován pro více operací

Columnstore v SQL Serveru ▪Ve verzi 2016 další vylepšení ▪ Neklastrovaný index read-write ▪ Podpora pro primární a cizí klíče ▪ Pomocí B-tree indexu ▪ Lze kombinovat s běžnými neklastrovanými indexy ▪ Podpora přechodu mezi heap, CI a CCI ▪ Možné filtrované neklastrované columnstore indexy ▪ Real-time analýzy pro OLTP zátěž ▪ Využívá neklastrovaný columnstore index nad rowstore tabulkou ▪ Možnost odložené komprese ▪ Zpoždění komprese uzavřené delta rowgroup v minutách ▪ Snapshot isolation a read-committed snapshot isolation

Deltastore  Dočasné úložiště využívané columnstore indexy Klastrovaný index s kompresí ukládající data do naplnění prahu 102,400 až 1, záznamů Využívaný pro DML operace Zlepšuje kompresi a performance  Proces označovaný Tuple-mover komprimuje uzavřené rowgroups a ukládá je do columnstore

Columnstore v SQL Serveru CREATE CLUSTERED COLUMNSTORE INDEX IndexName ON Schema.Table  K dispozici řada katalogových pohledů ▪ sys.column_store_row_groups ▪ sys.column_store_segments ▪ sys.column_store_dictionaries ▪ sys. dm_db_column_store_row_group_operational_stats ▪ sys.dm_db_column_store_row_group_physical_stats

Výstup katalogových pohledů  sys.dm_db_column_store_row_group_ physical_stats  sys.column_store_segments

Výkonová optimalizace columnstore  Datová komprese Pro hodnoty z jednoho sloupce výrazně efektivnější než pro řádek  Omezení sloupců Načítány pouze ty odkazované dotazem  Omezení rowgroup Načteny pouze ty, které vyhovují podmínce (dle min a max_data_id)  Batch mode execution Zpracování řádků v dávkách, jedna metadata pro celou dávku  Aggregate a String Predicate Pushdown Operace prováděna v rámci scan operátoru

Projekt Pilana ▪ Enterprise DW/BI projekt na MS platformě pro výrobní společnost ▪ Integruje více datových zdrojů ▪ Obsahuje datový sklad, OLAP databázi a prezentační vrstvu  Součástí nástroje pro pokročilý controlling s odchylkovou analýzou napříč celou organizací ▪ Vyžaduje detailní rozpočtování ▪ Generuje velké množství dat  Původně na SQL Serveru 2012 Standard ▪ Omezené možnosti škálování

Rozpočtování  Rozkládá nákladové přímo nepřiřazené účetní transakce z původního nákladového střediska na množinu cílových nákladových středisek Probíhá ve více vrstvách (nadstřediska – podstřediska, výrobní - režijní)  Rozklad probíhá podle rozpočtové matice dle hodnot vztažných veličin Měřitelné charakteristiky cílových středisek  Náklady rozpočtené na výrobní střediska určují minutové tarify cena za jednu minutu běhu stroje  Náklady se rozkládají až na úroveň výrobních příkazů a položek faktur vydaných

Princip rozpočtování (za předpokladu stejného příkonu strojů)

Výstup  Cílem je vyčíslení položek kalkulačního vzorce Výrobní náklady ▪ Materiál ▪ Mzdy ▪ Zpracovací náklady Celkové náklady = výrobní náklady + režie Cena = celkové náklady + zisk ▪Existující náklady rozkládáme až do výrobků ▪ Umožňuje odchylkovou analýzu ▪Slouží k vyhodnocení profitability ▪ Zákazníka ▪ Výrobků, …

Problém k řešení ▪ Během rozpočtování vznikne z jednoho účetního záznamu velké množství nových záznamů ▪ nákladových transakcí (jedna firma za jeden rok) se rozpadá na: ▪ výrobních příkazů ▪ fakturačních položek ▪Klade extrémní nároky na ▪úložný prostor ▪další zpracování dat

Datová struktura

Problematické místo  Tabulka FactControllingCostProductionOrder ▪ Obsahuje náklady rozpočtené na jednotlivé výrobní příkazy  Velký počet záznamů, velký objem dat ▪ Pro jednu společnost, jednu kontrolingovou periodu (rok 2015) a jednu rozpočtovou matici ▪ 434 milionů záznamů ▪ 95 GB dat ▪ V produkčním nasazení miliardy záznamů, TB dat

Řešení použité ve Standard edici  Std edice neobsahuje nástroje pro škálování takového řešení  Emulace partitioningu Umožňuje problém dočasně řešit  Plnění dat po částech Zůstává problém s velikostí dat Neřeší zpracování dat přes více period  Např. vyhodnocení zákazníka

Jak jsme testovali  Server 8 core, 32 GB RAM  Data pro jedno kontrolingové období (rok 2015), jednu společnost a jednu rozpočtovou matici  Měřeno: ▪ Doba plnění/vytváření datových struktur ▪ Heap ▪ Clustered rowstore index ▪ Clustered columnstore index ▪ Nároky na diskovou kapacitu ▪ Rychlost ▪ Odezvy na různé dotazy

Doba plnění faktů  Heap:40 minut  CI:135 minut  CCI:110 minut  Vytvoření CCI nad Heapem: 19 minut

Bulk plnění CCI  Fakta typicky plněna příkazem INSERT INTO SELECT FROM StageTable  Pokud je záznamů >= , jsou ukládány přímo do komprimované rowgroup (bez deltastore) Minimálně logovaná operace Odpadá režie s deltastore

Bulk plnění CCI  Komprese při plnění CCI pro jeden příkaz INSERT INTO využívá pouze jedno CPU Zápis pouze 0,5 MB/s (heap až 70MB/s) Celkově výrazně pomalejší než plnění Heapu  Vhodné plnit paralelně Každý současně probíhající INSERT využívá jedno CPU pro kompresi Eliminuje úzké hrdlo na jednom CPU Vhodné využití paralelního zpracování v SSIS

SSIS pro paralelní plnění CCI

Nároky na diskovou kapacitu  Heap, Clustered index:95 GB  Clustered columnstore index (CCI):3,66 GB Poměr: 1:26

Odezva na dotazy  Výběr všech záznamů s omezením dimenzionality (výstupem 185 milionu záznamů) Heap:2 hodiny 58 minut CCI:23 minut Poměr:1:8

Odezva na dotazy  Filtrace záznamů s agregací přes omezený počet dimenzí Dotaz č.1 Heap:5 minut 32 sekund CCI:3 sekundyPoměr:1 : 110 Dotaz č. 2 Heap:5 minut 52 sekund CCI:10 sekundPoměr:1 : 35 Dotaz č. 3 Heap:5 minut 55 sekund CCI:1 sekundaPoměr:1 : 355

Závěr  Clustered columstore index: ▪ Výrazně snižuje nároky na úložný prostor u rozsáhlých tabulek ▪ Zásadně zrychluje analytické dotazy využívající omezený počet sloupců ▪ Klíčový výpočetní výkon ▪ Rychlost plnění srovnatelná s tradičním CI  Pro využití potenciálu CCI nutný odpovídající design celého řešení  Vhodná kombinace inkrementálního plnění s CCI a partitioningem

Agenda  Rowstore a columnstore  Columnstore v SQL Serveru  Projekt Pilana a rozpočtování  Testování  Výsledky  Závěr

Dotazy Miloslav Peterka MCSE: Data Platform & Business Intelligence | MCT