Dane półstrukturalne charakteryzują się pewną organizacją, ale nie mieszczą się idealnie w tabelach. Do tej kategorii należą pliki JSON, XML, YAML i nagłówki wiadomości e-mail. Dane zawierają tagi lub klucze opisujące ich strukturę, ale struktura ta może się różnić w zależności od rekordu. Jeden obiekt JSON może mieć pole, którego brakuje w innym. Jeden dokument XML może zagnieżdżać elementy inaczej niż pozostałe. Schemat jest elastyczny, czasami nazywany schematem „przy odczycie”. Struktura jest stosowana podczas pobierania danych, a nie podczas ich przechowywania.
Dane półustrukturyzowane są powszechne we współczesnych aplikacjach. Interfejsy API zwracają JSON. Pliki dziennika używają par klucz-wartość. Pliki konfiguracyjne używają YAML. Bazy danych dokumentów NoSQL przechowują JSON natywnie. Ta elastyczność jest przydatna, gdy model danych ewoluuje lub ulega zmianom. Stanowi to również wyzwanie dla analizy. Zapytania o dane półustrukturyzowane wymagają innych narzędzi i technik niż zapytania o tabele. Trzeba poruszać się po zagnieżdżonych strukturach, obsługiwać brakujące pola i spłaszczać tablice. Silniki SQL się do tego dostosowały. PostgreSQL, MySQL i Snowflake obsługują funkcje JSON. Można wykonywać zapytania wewnątrz dokumentów JSON bez ich wcześniejszego wyodrębniania. To rozmycie granic między danymi ustrukturyzowanymi a półustrukturyzowanymi sprawia, że to rozróżnienie traci na znaczeniu. Ważne pytanie nie brzmi, czy dane są półustrukturyzowane, ale czy można je skutecznie przeszukiwać.
Formaty półstrukturalne
- JSON — pary klucz-wartość, tablice, obiekty zagnieżdżone
- XML — elementy oznaczone, hierarchiczne
- YAML — konfiguracja czytelna dla człowieka
- CSV — rozdzielony, ale bez informacji o typie
- Pliki dziennika — zdarzenia oznaczone znacznikiem czasu i zmiennymi polami
Dane półustrukturyzowane to rozwiązanie pośrednie. Są na tyle ustrukturyzowane, by być użyteczne, i na tyle elastyczne, by być chaotyczne.
Comments (2)
Leave a comment