Os dados semiestruturados têm alguma organização, mas não se encaixam perfeitamente em tabelas. JSON, XML, YAML e cabeçalhos de e-mail enquadram-se nesta categoria. Os dados possuem tags ou chaves que descrevem a sua estrutura, mas esta estrutura pode variar de registo para registo. Um objeto JSON pode ter um campo que outro não possui. Um documento XML pode aninhar elementos de forma diferente de outro. O esquema é flexível, por vezes designado por esquema-na-leitura. Aplica a estrutura ao consultar os dados, não ao armazená-los.
Os dados semiestruturados são comuns em aplicações modernas. APIs retornam JSON. Os ficheiros de registo usam pares chave-valor. Os ficheiros de configuração usam YAML. As bases de dados de documentos NoSQL armazenam JSON nativamente. Esta flexibilidade é útil quando o modelo de dados evolui ou varia. Também representa um desafio para a análise. A consulta de dados semiestruturados requer ferramentas e técnicas diferentes das utilizadas para consultar tabelas. É necessário navegar por estruturas aninhadas, lidar com campos em falta e achatar arrays. Os motores de SQL adaptaram-se. O PostgreSQL, o MySQL e o Snowflake suportam funções JSON. É possível consultar documentos JSON sem os extrair previamente. Esta indistinção entre dados estruturados e semiestruturados torna a distinção menos relevante. A questão importante não é se os dados são semiestruturados, mas sim se é possível consultá-los de forma eficaz.
Formatos semiestruturados
- JSON — pares chave-valor, arrays, objetos aninhados
- XML — elementos marcados, hierárquicos
- YAML — configuração legível por humanos
- CSV — delimitado, mas sem informação de tipo
- Ficheiros de registo — eventos com registo de data e hora e campos variáveis.
Os dados semiestruturados representam um meio-termo. Possuem estrutura suficiente para serem úteis e flexibilidade suficiente para serem desorganizados.
Comments (2)
Leave a comment