Dữ liệu bán cấu trúc có một số tổ chức nhưng không thể được sắp xếp gọn gàng vào các bảng. JSON, XML, YAML và tiêu đề email đều thuộc loại này. Dữ liệu có các thẻ hoặc khóa mô tả cấu trúc của nó, nhưng cấu trúc có thể khác nhau giữa các bản ghi. Một đối tượng JSON có thể có một trường mà đối tượng khác không có. Một tài liệu XML có thể lồng các phần tử khác nhau so với tài liệu khác. Lược đồ rất linh hoạt, đôi khi được gọi là lược đồ khi đọc. Bạn áp dụng cấu trúc khi truy vấn dữ liệu, chứ không phải khi lưu trữ dữ liệu.
Dữ liệu bán cấu trúc rất phổ biến trong các ứng dụng hiện đại. API trả về JSON. Tệp nhật ký sử dụng các cặp khóa-giá trị. Tệp cấu hình sử dụng YAML. Cơ sở dữ liệu tài liệu NoSQL lưu trữ JSON nguyên bản. Tính linh hoạt này rất hữu ích khi mô hình dữ liệu phát triển hoặc thay đổi. Tuy nhiên, nó cũng là một thách thức đối với việc phân tích. Truy vấn dữ liệu bán cấu trúc yêu cầu các công cụ và kỹ thuật khác với truy vấn bảng. Bạn cần điều hướng các cấu trúc lồng nhau, xử lý các trường bị thiếu và làm phẳng mảng. Các công cụ SQL đã thích ứng. PostgreSQL, MySQL và Snowflake đều hỗ trợ các hàm JSON. Bạn có thể truy vấn bên trong các tài liệu JSON mà không cần trích xuất chúng trước. Sự mờ nhạt giữa dữ liệu có cấu trúc và bán cấu trúc đang làm cho sự phân biệt này trở nên ít quan trọng hơn. Câu hỏi quan trọng không phải là liệu dữ liệu có phải là bán cấu trúc hay không, mà là liệu bạn có thể truy vấn nó một cách hiệu quả hay không.
Định dạng bán cấu trúc
- JSON — các cặp khóa-giá trị, mảng, đối tượng lồng nhau
- XML — các phần tử được gắn thẻ, phân cấp
- YAML — cấu hình dễ đọc đối với con người
- CSV — dữ liệu được phân tách bằng dấu phẩy nhưng không có thông tin về loại dữ liệu.
- Tệp nhật ký — các sự kiện được đánh dấu thời gian với các trường biến đổi
Dữ liệu bán cấu trúc nằm ở giữa hai thái cực này. Nó có đủ cấu trúc để hữu ích và đủ linh hoạt để trở nên lộn xộn.
Comments (2)
Leave a comment