Mục lục:
- Các DB Foundation, MarkLogic và Neo4j là ngoại lệ nổi bật. Một số cơ sở dữ liệu NoSQL cung cấp bảo đảm mức thấp hơn được gọi là
- -
- các hệ thống quan trọng
Video: Dữ liệu lớn là gì và nó hoạt động như thế nào? 2025
Tính nhất quán tài sản của cơ sở dữ liệu có nghĩa là khi dữ liệu được ghi vào cơ sở dữ liệu thành công, các truy vấn tiếp theo có thể truy cập vào dữ liệu và có được một cái nhìn nhất quán về dữ liệu. Trong thực tế, điều này có nghĩa là nếu bạn ghi một bản ghi vào cơ sở dữ liệu và sau đó ngay lập tức yêu cầu bản ghi đó, bạn sẽ được đảm bảo để xem nó. Nó đặc biệt hữu ích cho những thứ như Amazon đặt hàng và chuyển khoản ngân hàng.
Tính nhất quán là một thang trượt, tuy nhiên, và một vật thể quá sâu để che phủ ở đây. Tuy nhiên, trong thế giới NoSQL, sự thống nhất thường rơi vào một trong hai trại:
-
Tính nhất quán của ACID (ACID là viết tắt của Nguyên tử, Tính nhất quán, Sự cô lập, Độ bền): ACID nghĩa là khi dữ liệu được ghi, bạn đã thống nhất đầy đủ đọc.
-
Sự kiên định cuối cùng (BASE): BASE nghĩa là khi dữ liệu được ghi, cuối cùng nó sẽ xuất hiện để đọc.
người đến NoSQL công ty 'phòng tiếp thị! ). Thực tế ở đâu đó ở giữa. Có phải vấn đề là bài đăng trên Facebook của một người không được nhìn thấy bởi tất cả bạn bè của anh ta trong năm phút? Không, có lẽ không. Thay đổi "đăng Facebook" thành "giao dịch tài chính trị giá hàng tỷ đô la", và thái độ của bạn thay đổi nhanh chóng! Cách tiếp cận nhất quán mà bạn chọn phụ thuộc vào tình huống. Theo kinh nghiệm của tôi, mặc dù, tính nhất quán mạnh mẽ luôn là sự lựa chọn trong các tình huống hệ thống doanh nghiệp quan trọng.
Cơ sở dữ liệu này có các cơ sở để ngăn chặn bạn khỏi bị hư hỏng hoặc mất dữ liệu,
" mà không phải là một cho tất cả các cơ sở dữ liệu. Trên thực tế, phần lớn các cơ sở dữ liệu NoSQL không cung cấp bảo đảm ACID.Các DB Foundation, MarkLogic và Neo4j là ngoại lệ nổi bật. Một số cơ sở dữ liệu NoSQL cung cấp bảo đảm mức thấp hơn được gọi là
Kiểm tra và Đặt để kiểm tra xem ai đó đã thay đổi một tài liệu trước khi cho phép một giao dịch hoàn tất. Hành vi này thường bị giới hạn bởi vì nó có xu hướng được thực hiện trên một cơ sở một bản ghi. MongoDB là một cơ sở dữ liệu đáng chú ý cung cấp khả năng kiểm tra và thiết lập. Với MongoDB, toàn bộ dữ liệu của nút có thể bị khóa trong quá trình cập nhật, do đó ngăn tất cả các thao tác đọc và ghi tất cả cho đến khi thao tác hoàn tất.Công ty đang nỗ lực loại bỏ giới hạn này.
BASE BASE có nghĩa là thay vì đảm bảo ACID, cơ sở dữ liệu có sự cân bằng nhất quán và khả năng sẵn có của dữ liệu. Đây là trường hợp điển hình khi các nút trong một cụm cơ sở dữ liệu nhất định hoạt động như các trình quản lý chính của một phần của cơ sở dữ liệu, và các nút khác chứa các bản sao chỉ đọc. Để đảm bảo rằng mọi khách hàng nhìn thấy tất cả các bản cập nhật (có nghĩa là họ có một cái nhìn nhất quán về dữ liệu), thì ghi vào nút chính giữ dữ liệu cần khóa cho đến khi tất cả các bản sao được đọc cập nhật. Điều này được gọi là
hai
-
giai đoạn cam kết
- thay đổi được thực hiện cục bộ nhưng áp dụng và xác nhận với khách hàng chỉ khi nào tất cả các nút khác được cập nhật. BASE làm giảm yêu cầu này, chỉ yêu cầu một tập con của các nút giữ cùng một dữ liệu được cập nhật để giao dịch thành công. Đôi khi sau khi giao dịch được thực hiện, bản sao chỉ đọc được cập nhật. Lợi thế của cách tiếp cận này là các giao dịch được thực hiện nhanh hơn. Có bản sao trực tiếp có thể đọc cũng có nghĩa là bạn có thể truyền tải dữ liệu của mình đọc, làm cho việc đọc nhanh hơn. Nhược điểm là khách hàng kết nối với một số bản sao đã đọc có thể thấy thông tin đã lỗi thời trong một khoảng thời gian không xác định. Trong một số tình huống, trạng thái này là tốt. Nếu bạn đăng một tin nhắn mới trên Facebook và một số bạn bè của bạn không nhìn thấy nó trong một vài phút, nó không phải là một mất mát rất lớn. Tuy nhiên, nếu bạn gửi lệnh thanh toán đến ngân hàng của mình, bạn có thể muốn có một giao dịch tức thời. Cách tiếp cận khác đối với các bản sao chỉ đọc là có một
chia sẻ
-
không có gì cluster, trong đó chỉ có một nút trên một cluster luôn phục vụ một phần cụ thể của cơ sở dữ liệu.
Shared-không có gì không có nghĩa là bạn bị mất bản sao, mặc dù. Cơ sở dữ liệu sử dụng phương pháp này thường sao chép dữ liệu của họ đến một khu vực thứ cấp trên một nút hoặc nút chính khác - nhưng chỉ có một nút là bậc thầy để đọc và viết bất cứ lúc nào. Các nhóm có chia sẻ không có gì có lợi thế về một mô hình thống nhất đơn giản hơn nhưng yêu cầu phải cam kết hai lần với các bản sao. Thực tế này có nghĩa là khóa giao dịch trong khi tất cả các bản sao được cập nhật. (Khóa nội bộ cộng với khóa cho các nút khác cho phép bạn có hai giai đoạn) Điều này thường có tác động ít hơn các cụm dữ liệu được chia sẻ với các bản sao chỉ đọc vì các vùng dữ liệu bản quyền chia sẻ không nhận được yêu cầu đọc cho điều đó một phần của cơ sở dữ liệu. Do đó, các cam kết hai pha nhanh hơn trên một cụm không dùng chung không có gì hơn trên một cluster với bản sao có thể đọc được. Chọn ACID hoặc BASE? Như bạn có thể mong đợi, phần lớn lý lẽ là vì các nhà cung cấp NoSQL có thể phân biệt mình với các đối thủ cạnh tranh bằng cách yêu cầu một cách tiếp cận duy nhất và khác biệt. Tuy nhiên, thú vị cần lưu ý rằng số lượng các nhà cung cấp NoSQL tuân thủ ACID trên lộ trình của họ.
Một số cơ sở dữ liệu NoSQL có sự tuân thủ ACID trên lộ trình của họ, mặc dù họ là những người đề xướng BASE, điều này cho thấy mức độ bảo đảm của ACID đối với
doanh nghiệp, các nhiệm vụ
các hệ thống quan trọng
Nhiều công ty sử dụng các sản phẩm thống nhất BASE khi thử nghiệm các ý tưởng bởi vì chúng là miễn phí nhưng sau đó chuyển sang cơ sở dữ liệu trả phí phù hợp với ACID khi họ muốn sống trên hệ thống nhiệm vụ quan trọng. Cách đơn giản nhất để quyết định xem bạn có cần ACID hay không là xem xét tương tác giữa người và các hệ thống khác với dữ liệu của bạn. Ví dụ: nếu bạn thêm hoặc cập nhật dữ liệu, điều quan trọng là truy vấn tiếp theo có thể thấy thay đổi không? Nói cách khác, các quyết định quan trọng đang treo trên trạng thái hiện tại của cơ sở dữ liệu? Sẽ nhìn thấy một chút dữ liệu lỗi thời có nghĩa là những quyết định đó có thể là sai sót chết người? Trong dịch vụ tài chính, sự cần thiết phải thống nhất là hiển nhiên. Hãy suy nghĩ của các thương nhân mua cổ phiếu. Họ cần phải kiểm tra số dư tiền mặt trước khi giao dịch để đảm bảo rằng họ có tiền để trang trải cho thương mại. Nếu họ không thấy sự cân bằng chính xác, họ sẽ quyết định chi tiền cho một giao dịch khác. Nếu cơ sở dữ liệu mà họ đang truy vấn chỉ là cuối cùng nhất quán, họ có thể không thấy thiếu tiền đủ, do đó phơi bày tổ chức của họ với rủi ro tài chính. Các trường hợp tương tự có thể được xây dựng để có ACID trên cơ sở chăm sóc sức khoẻ, quốc phòng, tình báo và các lĩnh vực khác. Tuy nhiên, tất cả các dữ liệu này đều được cập nhật dữ liệu và tầm quan trọng của cả tính kịp thời và an toàn dữ liệu.