Data processing and analysis

Back

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

  1. 01Meg tudod indokolni, mikor sor- és mikor oszloporientált tárolás való a feladathoz.
  2. 02El tudod magyarázni, mit veszítünk a CSV-vel, és mit ad helyette az oszlopos, sémás formátum.
  3. 03El tudsz olvasni egy egyszerű lekérdezéstervet, és meg tudod mondani, hol megy el az idő.
  4. 04Meg tudod különböztetni a vektoros és a raszteres térbeli adatot, és tudod, miért kell közös koordinátarendszer.
  5. 05Fel tudod sorolni az adatminőségi hibák tipikus fajtáit, és tudsz rájuk ellenőrzést írni.
  6. 06Meg tudod indokolni, miért nem írjuk felül soha a nyers réteget.
  7. 07Teljesíted a 7. küldetést: Ugyanaz a lekérdezés háromszor.

Lecture

What the week covers

  1. 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.

Back to the plan