Week 7
Managing large databases
A hét végén meg tudod mondani egy elemzési feladatról, milyen tárolásban és milyen formátumban él jól az adata.
A „nagy” nem sorszám: az a nagy, ami nem fér a memóriába, vagy amitől a lekérdezés megszűnik interaktívnak lenni. Az óra a tárolás alakjából indul — sor- és oszloporientált —, mert ebből következik minden további: miért gyors az oszlopos az elemzésre, miért rossz a CSV elemzési formátumnak, és mit ad a particionálás. Utána a lekérdezés ára: index, lekérdezésterv, illesztés. A második fele a térbeli adatról szól, ami agrárban nem választható extra, és az adatminőségről, amire az elemzési munkaidő nagyobb része elmegy.
Learning objectives
- 01Meg tudod indokolni, mikor sor- és mikor oszloporientált tárolás való a feladathoz.
- 02El tudod magyarázni, mit veszítünk a CSV-vel, és mit ad helyette az oszlopos, sémás formátum.
- 03El tudsz olvasni egy egyszerű lekérdezéstervet, és meg tudod mondani, hol megy el az idő.
- 04Meg tudod különböztetni a vektoros és a raszteres térbeli adatot, és tudod, miért kell közös koordinátarendszer.
- 05Fel tudod sorolni az adatminőségi hibák tipikus fajtáit, és tudsz rájuk ellenőrzést írni.
- 06Meg tudod indokolni, miért nem írjuk felül soha a nyers réteget.
- 07Teljesíted a 7. küldetést: Ugyanaz a lekérdezés háromszor.
Lecture
Managing large databases
What the week covers
07. Nagy adatbázisok kezelése
A tárolás alakja, a lekérdezés ára és az adatminőség: mitől marad interaktív egy elemzés, amikor az adat már nem fér a memóriába.
Concepts of the week · 22
- Column storeEgy oszlop értékei vannak egymás mellett. Elemzésre azért gyors, mert csak a kért oszlop olvasódik be, jobban tömöríthető, és vektorosan feldolgozható.
- Row storeEgy rekord mezői egymás mellett vannak a lemezen. Egyetlen rekord beolvasására és írására optimális — ezért ilyen a tranzakciós adatbázis.
- CSVSzövegfájl elválasztókkal. Nincs benne típus, séma és tömörítés, és nem lehet belőle részlegesen olvasni — cserébe mindenhol megnyílik.
- ParquetOszloporientált, tömörített, típusos fájlformátum sémával. Elemzési adatra ez az alapértelmezés, nem a CSV.
- ArrowOszlopos memóriabeli elrendezés, amelyet több eszköz közösen használ. Ettől lehet átadni egy táblát másolás nélkül.
- PartitioningAz adat fizikai szétbontása kulcs szerint, például év vagy tábla szerint. A lekérdezés így egész partíciókat hagyhat ki.
- SchemaAz oszlopok neve, típusa és megkötései. A séma szerződés: ha nincs kimondva, mindenki mást feltételez róla, és ez az adatminőségi hibák fele.
- IndexSegédszerkezet a gyors kereséshez. Nem ingyenes: írási költséget és helyet fogyaszt, és rossz oszlopon nem használódik.
- Query planAz a lépéssorozat, ahogy a motor valóban végrehajtja a lekérdezést. Ha lassú a lekérdezés, ezt kell megnézni, nem a SQL-t átírni találomra.
- JoinKét tábla összekapcsolása közös kulcs mentén. Az ár a kulcs eloszlásától függ: egy rosszul becsült sorszám rossz tervhez visz.
- OLTPSok apró írás és pontkeresés: rendelésfelvétel, mérésrögzítés. Sororientált tárolás való hozzá.
- OLAPKevés, de sok sort érintő lekérdezés: összegzés, csoportosítás, idősor. Oszloporientált tárolás való hozzá.
- Embedded analytical engineSzerver nélküli, a folyamatba ágyazott oszlopos motor — ami az elemzésnek, az a SQLite a tranzakciósnak. Parquet-fájlon közvetlenül tud SQL-t futtatni.
- Time series databaseIdőbélyeg szerint particionált, tömörítésre és lejárati szabályokra kihegyezett tároló. Akkor indokolt, ha folyamatos méréssor érkezik és megőrzési szabály is kell hozzá.
- Vector spatial dataPont, vonal, sokszög attribútumokkal: táblahatár, sor, mintavételi pont.
- Raster spatial dataSzabályos rács, cellánként egy értékkel: ortofotó, műholdsáv, hozamtérkép. A cellaméret dönti el, mi látszik egyáltalán.
- Coordinate reference systemVetület és dátum, amelyben a koordináta értelmes. Két réteg összevetése előbb közös rendszerbe hozás, különben a tábla több méterrel odébb kerül.
- Data qualityHiányzó érték, duplikátum, mértékegység-keveredés, rossz időzóna. Az elemzési munkaidő nagyobb része ezzel megy el, és ezt nem illik elhallgatni.
- Missing valueA hiány maga is információ: más a nem mért, a nem létező és a hibásan nullának rögzített. A háromból kettőt szokás összemosni.
- Time zone pitfallHelyi idő, nyári időszámítás és UTC keveredése. Egy rossz időzóna a teljes szezonális elemzést elcsúsztatja, és csendben teszi.
- Raw layerAz adat úgy, ahogy érkezett, változtatás nélkül megőrizve. A nyers adatot sosem írjuk felül — a tisztítás új réteget hoz létre.
- Curated layerTisztított, típusos, dokumentált tábla, amire az elemzés épül. Ha elromlik, a nyers rétegből újraépíthető.
Mission
The same query three ways
Egy több millió soros méréstábla, egy összegző lekérdezés. Futtasd le memóriában betöltve, oszlopos fájlból, és beágyazott elemző motorral. Mérd a futásidőt és a memóriahasználatot.
A beadandó egy táblázat és egy bekezdés: hol borul az első megoldás, és miért. A nyertes megnevezése önmagában nem válasz.
koncepció
Takeaway
A tárolás alakja a munkaterheléshez igazodik, nem a divathoz. És a legtöbb elemzési hiba nem a lekérdezésben keletkezik, hanem egy kimondatlan sémában: egy rossz időzóna vagy egy összemosott mértékegység csendben visz rossz eredményre.