E könyv1 fontos olvasmány lehet bárkinek, aki szoftverfejlesztéssel vagy adatmenedzsmenttel kapcsolatos munkakörben dolgozik. A szerző koncepciókat, illetve problémákat és megoldási lehetőségeket fogalmaz meg érthető nyelven.

Adatkezelő rendszerek alapvetései

Egy alkalmazás nemfunkcionális követelményei közül a megbízhatóság (reliability), az átméretezhetőség (scalability) és a fenntarthatóság (maintainability) a legfontosabbak. Egy rendszer működjön helyesen a várhatóan bekövetkező hardveres, szoftveres, emberi hibák ellenére is. Lehessen kezelni a rendszer jövőbeli növekedését. Az idővel változó résztvevők produktívan tudjanak dolgozni a már működő rendszeren; a szükségesnél ne legyen komplexebb (simplicity), legyen jól működtethető (operability) és bővíthető (evolvability).

Az adattárolás három fő modelljét (dokumentum, relációs, gráf) elterjedten használják, és mindegyikhez tartoznak lekérdezési nyelvek is: SQL, MapReduce, Cypher, SPARQL, Datalog.

Cél szerint két fő kategóriába sorolhatók az adattárak: OLTP és OLAP. Transactional workload: az alkalmazások mögötti adatbázisok sok kisebb írás/ovasás műveletet végeznek. Analytical workload: újabb felhasználási mód az adatelemzés, amelynek során rendszeresen nagy mennyiségű adatot kell olvasni, aggregálni; időnként nagy mennyiségű adatot áttölteni (ETL).

A dokumentum-orientált adatbázisokat séma nélkülinek szokás hívni, de pontosabb a schema-on-read megnevezés (implicit adatszerkezet, amely csak olvasáskor ölt testet). Ezzel szemben a relációs adatbázisokat schema-on-write névvel illethetjük (explicit séma, amelynek minden írt adat megfelel). A rendszerek fejlődnek, a séma változik, régi és új adatok egymás mellett élhetnek.

Az adatok memóriabeli reprezentációjának átalakítását fájlrendszerbeli reprezentációra kódolásnak (encoding, serialization, marshalling), a másik irányú transzformációt dekódolásnak (decoding, parsing, deserialization, unmarshalling) nevezzük. Standardizált szöveges kódolások az XML, a JSON és a CSV. Az Apache Thrift és a Protocol Buffers (protobuf) bináris kódolások.

Elosztott adatok

[TODO]

A CAP-tétel (Consistency + Availability + Partition tolerance) kimondja, hogy egy elosztott adattároló rendszer a három alapvető képesség közül legfeljebb kettőt tud megvalósítani.

Származtatott adatok

[TODO]


  1. Kleppmann, Martin: Designing Data-Intensive Applications. O’Reilly, 2017-03. ↩︎