Semistrukturerede data har en vis organisering, men passer ikke pænt ind i tabeller. JSON, XML, YAML og e-mailheadere falder alle ind under denne kategori. Dataene har tags eller nøgler, der beskriver deres struktur, men strukturen kan variere fra post til post. Et JSON-objekt kan have et felt, som et andet mangler. Et XML-dokument kan indlejre elementer anderledes end det næste. Skemaet er fleksibelt, nogle gange kaldet schema-on-read. Du anvender struktur, når du forespørger dataene, ikke når du gemmer dem.
Semistrukturerede data er almindelige i moderne applikationer. API'er returnerer JSON. Logfiler bruger nøgle-værdi-par. Konfigurationsfiler bruger YAML. NoSQL-dokumentdatabaser gemmer JSON nativt. Fleksibiliteten er nyttig, når datamodellen udvikler sig eller varierer. Det er også en udfordring for analyse. Forespørgsler på semistrukturerede data kræver andre værktøjer og teknikker end forespørgsler på tabeller. Du skal navigere i indlejrede strukturer, håndtere manglende felter og flade arrays ud. SQL-motorer har tilpasset sig. PostgreSQL, MySQL og Snowflake understøtter alle JSON-funktioner. Du kan forespørge i JSON-dokumenter uden først at udtrække dem. Denne sløring af strukturerede og semistrukturerede data gør sondringen mindre relevant. Det vigtige spørgsmål er ikke, om data er semistrukturerede. Det er, om du kan forespørge effektivt på dem.
Semistrukturerede formater
- JSON — nøgle-værdi-par, arrays, indbyggede objekter
- XML — taggede elementer, hierarkiske
- YAML — menneskelig læsbar konfiguration
- CSV — afgrænset, men ingen typeoplysninger
- Logfiler — tidsstemplede hændelser med variable felter
Semistrukturerede data er mellemvejen. De har nok struktur til at være nyttige og nok fleksibilitet til at være rodede.
Comments (2)
Leave a comment