2012-01-24 43 views
7

Tôi muốn chọn một dịch vụ web kết thúc cho ứng dụng của mình. Đọc tài liệu của các dịch vụ này (Parse, Proxomo, Cocoafish, StackMob, v.v.) tiết lộ rằng một số trong số chúng cung cấp dữ liệu lưu trữ trong biểu mẫu schemaless trong khi đề cập khác rằng lược đồ phải được chỉ định apriori. Tôi hiểu lược đồ dữ liệu là gì và hy vọng schemaless sẽ dễ sử dụng, nhưng muốn biết giá trị và sự thiếu sót của mỗi lược đồ. Bất kỳ lời giải thích sẽ được đánh giá rất nhiều.Ưu điểm của dữ liệu schemaless lưu trữ trên lưu trữ dữ liệu với lược đồ

Trả lời

6

Sự khác biệt lớn nhất là khả năng mở rộng.

Giải pháp lưu trữ dữ liệu với lược đồ khó phân phối hơn so với giải pháp lưu trữ dữ liệu miễn phí của Schema. Các cặp khóa-giá trị (không có lược đồ) dễ thực hiện của nó để có khả năng chịu lỗi. Nó thực sự dễ dàng để phân phối các bản sao trên các nút cho thời gian đọc nhanh và dễ dàng hơn của nó để cung cấp nhanh chóng viết với sự nhất quán cuối cùng. Nếu bạn đang quản lý cơ sở dữ liệu của riêng mình, điều này có nghĩa là sẽ dễ dàng hơn trong việc quản lý các giải pháp miễn phí của lược đồ khi bạn cần mở rộng tới nhiều máy chủ. Nếu bạn đang sử dụng một dịch vụ, điều này có nghĩa là các giải pháp miễn phí của lược đồ thường rẻ hơn và nhanh hơn.

Sự cố với lược đồ miễn phí xuất hiện khi bạn cần giao dịch và nhất quán trên các tập hợp hoặc bảng dữ liệu khác nhau. Tất cả điều này phải được thực hiện trong mã.

Vì vậy, dòng dưới cùng là: Nếu bạn cần dữ liệu khối lượng lớn với truy cập nhanh giá rẻ nó phải được lược đồ miễn phí. Mặt khác, nếu kích thước và tải dữ liệu của bạn khiêm tốn hơn các hệ thống dựa trên lược đồ thì tốt hơn.

Nếu bạn cần trợ giúp chọn dịch vụ đi kèm, Cách tốt hơn để quyết định sẽ thực hiện phân tích đọc/giây ghi/giây và phân tích kích thước dữ liệu mong muốn trên ứng dụng của bạn và sau đó chọn giải pháp rẻ hơn. Tất cả các dịch vụ này có lẽ sẽ mở rộng cho tải của bạn nhưng chi phí sẽ là yếu tố quyết định.

1

Tôi không phải là một chuyên gia thực về vấn đề này nhưng từ những gì tôi đọc, đây là những gì nhận thức của tôi:

  • hầu hết thời gian, cơ sở dữ liệu schemaless cho phép bạn dễ dàng lưu trữ khóa/giá trị, đối tượng JSON. Vì vậy, nó thường khá dễ dàng để nối các objets bạn thao tác trong ứng dụng của bạn để lưu trữ DB. Bạn không phải sử dụng ORM (Object Relational Mapper) vì các đối tượng của bạn trực tiếp ở định dạng được chấp nhận bởi DB (hầu hết thời gian, tạo JSON dễ dàng từ đối tượng bạn có trong ứng dụng)

  • Nếu bạn không có bất kỳ lược đồ nào, bạn có thể dễ dàng điều chỉnh (thêm/bớt) các thuộc tính của đối tượng bạn muốn lưu trữ trong DB mà không phải trải qua cập nhật lược đồ và di chuyển dữ liệu từ lược đồ cũ sang lược đồ mới.

  • trong nhược điểm của sự schemaless, cảm giác của tôi là bạn không thể diễn tả như nhiều trở ngại như bạn có thể làm trong SQL tiêu chuẩn để lấy dữ liệu (bạn không làm bất cứ tham gia vv) như vậy có lẽ bạn phải thực sự kiểm tra như thế nào bạn muốn lấy lại dữ liệu từ dữ liệu db và xem những gì được cung cấp bởi công cụ schemaless.

+0

Cảm ơn rất nhiều Yonel vì những suy nghĩ và giải thích của bạn. Tôi không chỉ mới cho các dịch vụ web mà còn để lập trình nói chung, vì vậy tôi có thể sai nhưng (regrading đến điểm thứ ba của bạn) dữ liệu schemaless lưu trữ các dịch vụ thực sự là nhiều bộ lọc để lấy dữ liệu. Tôi sẽ đợi thêm thời gian và sau đó đánh dấu câu trả lời của bạn là chính xác và trả tiền thưởng. – chatur

Các vấn đề liên quan