Tổng quan
Giới thiệu couchbase
Các ứng dụng hiện đại yêu cầu hỗ trợ hàng triệu tương tác từ người dùng, trong khi các cơ sở dữ liệu truyền thống, mặc dù được thiết kế cho tính nhất quán và kiểm soát, lại thiếu tính linh hoạt và khả năng mở rộng Để đáp ứng nhu cầu này, các tổ chức thường phải triển khai nhiều loại cơ sở dữ liệu khác nhau, dẫn đến sự không hiệu quả và trải nghiệm người dùng kém Việc lưu trữ cơ sở dữ liệu trên điện toán đám mây mang lại giải pháp tối ưu, giúp cải thiện hiệu suất và tạo ra lợi thế cạnh tranh cho doanh nghiệp.
Các doanh nghiệp đang nhận thức rằng ứng dụng hiện tại chưa hoàn toàn đáp ứng nhu cầu của khách hàng Giao diện người dùng chỉ là phần bề nổi, trong khi cơ sở dữ liệu bên dưới mới là yếu tố cốt lõi Engagement giúp tăng cường sự tương tác và trải nghiệm bằng cách khai thác tối đa tiềm năng của dữ liệu, không phụ thuộc vào quy mô, kênh hay thiết bị, từ đó thúc đẩy mối quan hệ có ý nghĩa hơn với khách hàng.
Couchbase Server là phần mềm nguồn mở, phân tán, cung cấp kho lưu trữ giá trị nhanh với bộ nhớ cache được quản lý, cho phép thực hiện các hoạt động dữ liệu dưới mili giây Nó đi kèm với trình tạo chỉ mục cho truy vấn nhanh và công cụ truy vấn mạnh mẽ tương tự như SQL Đặc biệt, Couchbase cũng hỗ trợ môi trường di động và Internet, cho phép chạy trực tiếp trên thiết bị và quản lý đồng bộ hóa với máy chủ.
Couchbase Server là giải pháp tối ưu cho việc quản lý dữ liệu với độ trễ thấp, phục vụ cho các ứng dụng web, di động và IoT quy mô lớn Các yêu cầu cơ bản của Couchbase Server được thiết kế nhằm đáp ứng nhu cầu này một cách hiệu quả.
- Giao diện lập trình thống nhất
- Công cụ cơ sở dữ liệu lõi
- Kiến trúc bộ nhớ đầu tiên
- Dữ liệu lớn và tích hợp SQL
- Triển khai container và đám mây
Giao diện lập trình thống nhất
Couchbase Data Platform cung cấp API phát triển ứng dụng mạnh mẽ và đồng nhất, hỗ trợ nhiều ngôn ngữ lập trình và phương thức kết nối Điều này giúp đơn giản hóa quá trình xây dựng ứng dụng và rút ngắn thời gian ra mắt sản phẩm.
Couchbase dễ dàng triển khai và quản lý với các tính năng sao lưu tự động tích hợp sẵn Sự thay đổi cấu trúc liên kết diễn ra một cách minh bạch mà không cần điều chỉnh ứng dụng hay các nút khác Mỗi nút Couchbase Server sử dụng phần mềm giống hệt nhau, cho phép tự động hóa dễ dàng Quản lý toàn bộ cụm thông qua một bảng điều khiển duy nhất giúp mở rộng và cân bằng lại cụm hiệu quả Ngay cả công nghệ tiên tiến như nhân rộng trung gian dữ liệu cũng có thể được cấu hình chỉ với một cú nhấn chuột trong Couchbase Web Console.
Truy vấn
Couchbase cung cấp nhiều phương thức truy cập dữ liệu, cho phép người dùng dễ dàng truy vấn và quản lý tài liệu JSON Nhà phát triển ứng dụng có thể lựa chọn mô hình truy cập dữ liệu phù hợp nhất với nhu cầu của họ Sự linh hoạt trong các đường dẫn truy cập dữ liệu giúp Couchbase trở thành giải pháp lý tưởng cho nhiều ứng dụng và trường hợp sử dụng khác nhau.
Couchbase Server cho phép người dùng thực hiện truy vấn thông qua N1QL, một phương ngữ SQL mạnh mẽ và toàn diện, giúp truy vấn, chuyển đổi và xử lý dữ liệu hiệu quả.
Couchbase hỗ trợ việc xử lý dữ liệu JSON, giúp các nhà phát triển nhanh chóng phát triển ứng dụng phong phú nhờ vào cú pháp quen thuộc tương tự như SQL Khác với các cơ sở dữ liệu NoSQL khác, Couchbase cho phép sử dụng JOIN, mở ra nhiều mô hình dữ liệu đa dạng Để tăng cường sự linh hoạt trong phát triển ứng dụng, N1QL được trang bị một cơ sở hạ tầng chỉ mục phong phú và hỗ trợ xử lý các tài liệu không đồng nhất với cấu trúc lồng nhau N1QL cũng tích hợp với nhiều công cụ phân tích và tích hợp dữ liệu qua JDBC và ODBC, bao gồm Microsoft Excel và Tableau.
Tìm kiếm toàn văn
Tích hợp tìm kiếm toàn văn trong Couchbase giúp các nhà phát triển dễ dàng thêm tính năng thông minh vào ứng dụng Việc quản lý chỉ mục văn bản đầy đủ được tự động hóa trong cụm Couchbase, giúp giảm thiểu thời gian trễ, chi phí và sự phức tạp liên quan đến việc quản lý một hệ thống tìm kiếm và cơ sở hạ tầng riêng biệt.
Nền tảng di động và nền tảng IoT
Cung cấp nền tảng dữ liệu toàn diện cho ứng dụng di động và IoT của bạn, đảm bảo đồng bộ hóa dữ liệu trong thời gian thực, bảo mật đạt tiêu chuẩn doanh nghiệp và tích hợp dễ dàng vào hệ sinh thái hiện có của bạn.
Phân tích
Couchbase Analytics cung cấp khả năng xử lý truy vấn song song mạnh mẽ, cho phép thực hiện hiệu quả các truy vấn phức tạp với các phép join, thiết lập, tập hợp và hoạt động nhóm Giải pháp này giúp giải quyết các thách thức liên quan đến ứng dụng đáp ứng, khả năng mở rộng và phân tích trên cùng một tập dữ liệu.
Cơ sở dữ liệu Core
Công cụ cơ sở dữ liệu lõi cung cấp khả năng quản lý và lập chỉ mục tài liệu hiệu quả Dựa trên bộ nhớ thứ nhất, nó sử dụng cấu trúc bất đồng bộ để tối ưu hóa hiệu suất và khả năng truy xuất thông tin.
IX này bao gồm các năng lực cốt lõi của công cụ cơ sở dữ liệu, như: lưu trữ dữ liệu, sao chép liên nút.
Couchbase sử dụng định dạng JSON, cho phép biểu diễn các cấu trúc và mối quan hệ phong phú một cách tự mô tả Khác với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) truyền thống, lược đồ trong Couchbase Server được định nghĩa hoàn toàn trong mã ứng dụng và lưu trữ trong các tài liệu, không có một giản đồ cố định nào Điều này giúp các nhà phát triển dễ dàng thêm đối tượng và thuộc tính mới chỉ bằng cách cập nhật mã ứng dụng mà không cần thay đổi lược đồ, từ đó thúc đẩy sự phát triển nhanh chóng và linh hoạt cho các ứng dụng.
Couchbase là một cơ sở dữ liệu phục vụ yêu cầu của khách hàng trên quy mô internet, khác biệt so với các cơ sở dữ liệu phân tích như Hadoop và Spark Trong khi các môi trường học máy cho phép nhà phân tích và nhà khoa học dữ liệu chấp nhận độ trễ lớn hơn, Couchbase đáp ứng nhu cầu truy xuất dữ liệu nhanh chóng và hiệu quả.
Kiến trúc Scale-out
Để mang lại trải nghiệm khách hàng đặc biệt, việc duy trì một cơ sở dữ liệu hoạt động liên tục, đáp ứng nhanh chóng và có khả năng mở rộng là rất quan trọng Couchbase cung cấp giải pháp tích hợp cho lưu trữ và xử lý dữ liệu, đảm bảo ứng dụng luôn hoạt động ổn định thông qua khả năng phát hiện và phục hồi từ sự cố phần cứng và mạng.
Couchbase được thiết kế để mở rộng phần cứng một cách dễ dàng và hiệu quả hơn so với các cơ sở dữ liệu NoSQL khác Các tính năng như nhân rộng và sharding cho phép Couchbase Server tự động phân phối dữ liệu qua các nút trong cluster, giúp cơ sở dữ liệu có khả năng phát triển theo chiều ngang Điều này cho phép chia sẻ tải bằng cách thêm RAM, đĩa và dung lượng CPU mà không gây áp lực cho các nhà phát triển và quản trị viên Couchbase Server đạt hiệu suất phần cứng cao nhờ vào việc sử dụng I/O không đồng bộ và không khóa ở tất cả các cấp.
Couchbase tối ưu hóa hiệu quả sử dụng tài nguyên máy chủ, giúp tối đa hóa cả I/O lưu trữ và số lượng khách hàng kết nối đồng thời trên mỗi nút Kiến trúc của Couchbase đảm bảo khối lượng công việc được phân phối đồng đều trên các nút trong cluster, giảm thiểu tắc nghẽn và cho phép người dùng khai thác tối đa phần cứng sẵn có.
Kiến trúc bộ nhớ ưu tiên
Khách hàng hiện nay yêu cầu ứng dụng nhanh chóng và đáp ứng đủ nhu cầu Nền tảng dữ liệu Couchbase cung cấp kiến trúc hiệu suất cao, đảm bảo tất cả hoạt động diễn ra trong bộ nhớ và tối ưu hóa quản lý dữ liệu Couchbase được thiết kế để xử lý lưu lượng truy cập dữ liệu lớn cho các ứng dụng web, di động và IoT hiện đại, với độ trễ thấp chỉ vài mili giây cho các lần đọc và viết Mặc dù tốc độ tối đa rất quan trọng, nhiều người cũng chú trọng đến tốc độ cao và thời gian trễ thấp với sự khác biệt tối thiểu trong khối lượng công việc Couchbase duy trì hiệu suất cao ngay cả khi chịu tải nặng, với khả năng dự đoán và nhất quán giúp cải thiện trải nghiệm người dùng trong thực tế.
Couchbase Server là một hệ thống lưu trữ tập trung vào bộ nhớ, cho phép lưu trữ tài liệu, siêu dữ liệu và chỉ mục thường xuyên truy cập trong RAM Hệ thống này cung cấp khả năng đọc/ghi cao với độ trễ rất thấp, nhờ vào việc tích hợp bộ nhớ cache thông qua một bảng băm phân phối tương thích hoàn toàn với memcached Cơ sở dữ liệu tài liệu của Couchbase hỗ trợ việc sử dụng hiệu quả đối tượng quản lý bộ nhớ cache.
Dữ liệu lớn và tích hợp SQL
Couchbase Data Platform kết hợp Big Data và SQL, giúp bạn tối ưu hóa việc sử dụng công cụ, khả năng xử lý và dữ liệu từ mọi nguồn lưu trữ.
An toàn toàn bộ ngăn xếp
Bảo vệ dữ liệu khách hàng là một yêu cầu bắt buộc, không chỉ để tuân thủ quy định mà còn từ góc độ truy cập dữ liệu Nền tảng dữ liệu Couchbase đảm bảo an toàn cho dữ liệu ở mọi nơi, bao gồm trên đường truyền, thiết bị, đám mây và trung tâm dữ liệu.
Triển khai container và đám mây
Các doanh nghiệp đang nhanh chóng chuyển sang chiến lược điện toán đám mây để tăng cường khả năng đổi mới và thích ứng với sự thay đổi liên tục của nhu cầu thị trường Couchbase hỗ trợ đa dạng các nền tảng đám mây, cùng với nhiều công nghệ container và ảo hóa, giúp tối ưu hóa hoạt động kinh doanh.
Tính sẵn sàng cao
Couchbase Server được thiết kế với độ tin cậy và tính sẵn sàng cao, cho phép thực hiện tất cả các hoạt động mà không làm gián đoạn ứng dụng đang chạy Hệ thống không cần phải ngoại tuyến cho bảo trì thường xuyên như nâng cấp phần mềm hay xây dựng chỉ mục Ngay cả việc thêm hoặc gỡ bỏ các nút cũng có thể thực hiện trực tuyến mà không ảnh hưởng đến hoạt động của ứng dụng, giúp các nhà phát triển không phải thay đổi mã nguồn của họ.
Couchbase Server được thiết kế với các cơ chế chịu lỗi để chống lại thời gian chết do sự cố bất ngờ, bao gồm cả sự ngưng hoạt động của máy chủ Nhân rộng và chuyển đổi dự phòng là những yếu tố then chốt giúp tăng tính khả dụng của hệ thống, khi máy chủ Couchbase sao chép dữ liệu qua nhiều nút để hỗ trợ chuyển đổi dự phòng Điều này đảm bảo rằng các bản sao bổ sung của dữ liệu luôn sẵn có, giúp hệ thống phục hồi nhanh chóng trước những gián đoạn không thể tránh khỏi Tất cả các quy trình này diễn ra tự động mà không cần can thiệp thủ công hoặc gây ra thời gian chết.
Couchbase Server cho phép sao chép toàn bộ các cụm đến nhiều vị trí địa lý khác nhau thông qua Cross Data Center Replication (XDCR), công nghệ này mang lại tính sẵn sàng cao, khả năng phục hồi thảm họa và cân bằng tải hiệu quả XDCR giải quyết các thách thức đặc thù trong việc kết nối các cụm qua mạng diện rộng (WAN), không chỉ đơn thuần là mở rộng sao chép từ các cụm địa phương.
Tóm lược
Nhiều cơ sở dữ liệu có khả năng đáp ứng một hoặc nhiều yêu cầu cụ thể, tuy nhiên, cần phải đạt được sự cân bằng khi vận hành cùng với các ứng dụng quan trọng trên internet.
Couchbase Server được thiết kế để mang lại trải nghiệm phát triển tuyệt vời và quản lý dễ dàng, đồng thời cung cấp hiệu suất vượt trội ở nhiều quy mô khác nhau, bao gồm đám mây, container, tại chỗ và trên các thiết bị khác Giải pháp này không chỉ linh hoạt trong mô hình dữ liệu mà còn cho phép mở rộng mà không làm ảnh hưởng đến khả năng lập chỉ mục và thay đổi mô hình dữ liệu trong quá trình vận hành.
Hệ quản trị cơ sở dữ liệu couchbase
Tổng quan
Couchbase Server là cơ sở dữ liệu NoSQL mã nguồn mở, cung cấp quản lý dữ liệu với độ trễ thấp cho các ứng dụng trực tuyến quy mô lớn Được thiết kế để mở rộng dễ dàng và đạt hiệu suất cao, Couchbase chú trọng vào độ tin cậy, tính sẵn sàng cao và quản lý đơn giản, cho phép phục vụ dữ liệu liên tục với sự can thiệp tối thiểu từ nhà phát triển.
Couchbase Server có thể được sử dụng như là một:
- Bộ nhớ đệm được quản lý
- Một nơi lưu trữ key- value
- Một cơ sở dữ liệu hướng tài liệu
Couchbase Server và Couchbase Mobile cung cấp cho doanh nghiệp sự linh hoạt tối đa, giúp rút ngắn thời gian đưa sản phẩm ra thị trường và hoạt động hiệu quả trên quy mô toàn cầu với chi phí thấp Couchbase đáp ứng đa dạng nhu cầu từ doanh nghiệp, hạ tầng đám mây, Internet of Things đến dữ liệu lớn và thiết bị di động.
Mô hình dữ liệu
2.1 Mô hình dữ liệu hướng tài liệu
Couchbase Server lưu trữ tài liệu dưới định dạng JSON, một định dạng nhẹ và dễ đọc cho con người JSON hỗ trợ cả kiểu dữ liệu cơ bản như số và chuỗi, cũng như các kiểu dữ liệu phức tạp như từ điển và mảng nhúng.
Sử dụng JSON làm định dạng dữ liệu trong Couchbase mang lại nhiều lợi thế JSON đóng vai trò quan trọng trong việc trao đổi dữ liệu cho các ứng dụng di động và web, đồng thời là định dạng phổ biến nhất cho API REST Nhờ vào sự phổ biến này, JSON trở nên dễ dàng và hiệu quả khi được tạo ra và sử dụng từ bất kỳ ngôn ngữ lập trình nào.
XV nào Serialization và deserialization rất nhanh JSON là nguồn gốc của JavaScript, điều này làm cho nó rất thuận tiện cho việc lập trình ứng dụng web.
Trong Couchbase, tài liệu đại diện cho một thể hiện duy nhất của đối tượng trong mã ứng dụng, tương tự như các hàng trong một bảng quan hệ, với mỗi tài liệu là một bản ghi Các thuộc tính của tài liệu tương ứng với các cột trong bảng, tạo nên cấu trúc dữ liệu rõ ràng và dễ quản lý.
Couchbase cho phép lưu trữ tài liệu từ nhiều lược đồ khác nhau, khác với bảng quan hệ Để phân biệt giữa các loại tài liệu, ứng dụng có thể áp dụng các phương pháp như thêm trường 'type' vào tài liệu.
Couchbase cho phép lưu trữ các cấu trúc lồng nhau, hay còn gọi là tiểu tài liệu, giúp các nhà phát triển dễ dàng thể hiện các mối quan hệ nhiều-nhiều mà không cần đến bảng tham chiếu hay bảng giao lộ.
Mô hình dữ liệu phân cấp tự nhiên giúp tổ chức thông tin một cách rõ ràng Ví dụ, khi đặt chỗ chuyến bay trực tuyến, người dùng có thể tìm kiếm chuyến bay theo ngày tháng Trong một mô hình dữ liệu quan hệ, các bảng sẽ được tạo ra cho các hãng hàng không, chuyến bay và lịch trình, giúp dễ dàng quản lý và truy xuất thông tin.
Hình 1 Mô hình quan hệ cho lịch trình chuyến bay
Trong Couchbase, mô hình hướng tài liệu cho phép tạo ra một đối tượng duy nhất, trong đó bao gồm một mảng lịch trình cho tất cả các chuyến bay giữa hai sân bay.
Hình 2 Mô hình dữ liệu hướng dẫn tài liệu cho việc đặt chuyến bay
Mỗi tài liệu trong mô hình Couchbase chứa một yêu cầu duy nhất cho một nút, cho phép trả lại tất cả thông tin cần thiết để hoàn thành yêu cầu ứng dụng Sự độc lập của các tài liệu rất quan trọng cho khả năng mở rộng và độ trễ, vì chúng có thể dễ dàng sao chép hoặc thay đổi mà không ảnh hưởng đến tài liệu khác Điều này giúp Couchbase mở rộng theo chiều ngang thông qua một nhóm phần cứng mà không cần sự phối hợp giữa các nút để đáp ứng yêu cầu ứng dụng.
Trong Couchbase, giản đồ đề cập đến cách mà ứng dụng tổ chức các tài liệu của nó Khác với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) truyền thống, lược đồ trong Couchbase hoàn toàn được xác định và quản lý bởi ứng dụng.
Couchbase sử dụng lược đồ dựa trên cấu trúc JSON, cho phép linh hoạt trong việc quản lý dữ liệu mà không yêu cầu thống nhất tuyệt đối Thay vì áp đặt lược đồ từ cơ sở dữ liệu, Couchbase chuyển giao quyền kiểm soát cho ứng dụng, giúp đơn giản hóa quy trình Thiết kế này cho phép thay đổi giữa các tài liệu, kể cả trong cùng một loại tài liệu, điều này rất hữu ích cho các cửa hàng bán lẻ trực tuyến lớn.
Với Couchbase Server, việc quản lý dữ liệu văn phòng như bút và máy in laser trở nên dễ dàng hơn, vì không cần tạo ra nhiều thuộc tính null hay xác định hàng trăm lược đồ khác nhau Các tài liệu có thể chỉ chứa những thuộc tính cần thiết, như "kiểu kết nối" và "in hai mặt", trong khi bỏ qua những tính năng không cần thiết Điều này giúp các tài liệu lược đồ linh hoạt có thể thích ứng với dữ liệu có kích thước khác nhau, chẳng hạn như trong trường hợp đặt chỗ chuyến bay, nơi một số tài liệu có thể chứa hàng ngàn chuyến bay trong khi những tài liệu khác chỉ có vài chuyến bay.
Lược đồ trong Couchbase là cấu trúc logic linh hoạt, thay đổi theo ứng dụng, giúp tăng tính nhanh nhẹn Lợi ích lớn cho lập trình viên là có thể định nghĩa đối tượng một lần trong mã ứng dụng mà không cần đồng bộ với cơ sở dữ liệu Khác với RDBMS truyền thống có lược đồ cố định, lập trình viên có thể dễ dàng thêm thuộc tính vào tài liệu mà không cần chỉnh sửa các tài liệu khác Điều này cho phép ứng dụng phát triển mà không gặp khó khăn trong việc thay đổi cấu trúc bảng, quản lý phiên bản lược đồ hay di chuyển lược đồ.
Lợi thế của một giản đồ ứng dụng nổi bật trong các ứng dụng lớn và bền vững, cho phép các nhà phát triển dễ dàng cập nhật mã nguồn Những thay đổi này được phản ánh ngay lập tức trong giản đồ, giúp tài liệu phát triển liên tục theo thời gian cùng với sự thay đổi của ứng dụng web.
2.3 Cân nhắc thiết kế tài liệu
Tài liệu linh hoạt hỗ trợ việc xây dựng lược đồ một cách dễ dàng, nhưng việc thiết kế JSON vẫn là yếu tố quan trọng để đảm bảo hiệu suất và khả năng mở rộng tối ưu Một câu hỏi quan trọng là xác định lượng thông tin hợp lý cần đưa vào một tài liệu duy nhất để đạt được hiệu quả tốt nhất.
Trong việc quyết định giữa việc sử dụng tài liệu phong phú với thông tin phức tạp hay nhiều tài liệu đơn giản độc lập, cần xem xét các mẫu truy cập thông tin và cách quản lý đối tượng trong mã ứng dụng Việc nhóm các thuộc tính lại với nhau cho phép truy cập hoặc ghi đồng thời, mang lại hiệu suất và khả năng mở rộng tốt hơn, vì tất cả thông tin được xử lý trong một thao tác, cải thiện tính nguyên tử và giảm mối quan hệ giữa các đối tượng Đồng thời, việc nhóm các thuộc tính liên quan giúp duy trì tính nhất quán khi chúng tồn tại trong cùng một tài liệu, cho phép đọc và cập nhật dễ dàng Ngược lại, nhiều tài liệu đơn giản nên được ưu tiên khi mẫu truy cập có thể dự đoán được và kích thước thông tin cần vận chuyển được giữ nhỏ để giảm thiểu việc sử dụng mạng.
Tài liệu cũng có thể thiết lập các mối quan hệ cơ bản với các tài liệu khác.
Truy cập dữ liệu
Couchbase cung cấp nhiều phương thức truy cập dữ liệu, bao gồm truy cập giá trị khóa, truy vấn bằng MapReduce và N1QL, cùng với tính năng Tìm kiếm Toàn văn (FTS) Truy cập khóa-giá trị cho phép truy cập hiệu năng cao trực tiếp vào dữ liệu thông qua khóa, lý tưởng cho các ứng dụng cần thời gian phản hồi milli giây Tuy nhiên, không phải tất cả dữ liệu đều có khóa, vì vậy các truy vấn trở nên cần thiết N1QL, với cú pháp tương tự SQL, cho phép truy vấn linh hoạt và nhanh chóng, rất hữu ích cho việc tra cứu thứ cấp trong tài liệu JSON, như tìm kiếm người dùng qua địa chỉ email thay vì userID.
Chế độ xem là công cụ mạnh mẽ giúp lập chỉ mục dữ liệu qua bản đồ do người dùng định nghĩa, đồng thời giảm thiểu chức năng không cần thiết Nó không chỉ cho phép tái tạo và tập hợp dữ liệu hiệu quả mà còn là giải pháp lý tưởng cho việc báo cáo tương tác dữ liệu.
3.1 Sự hoạt động của key- value
Trung tâm của Couchbase phân phối giá trị khóa (KV) lưu trữ Nơi lưu trữ
KV là một phương pháp quản lý dữ liệu đơn giản, sử dụng một ID duy nhất (chìa khóa) kết hợp với một thông tin tùy ý (giá trị), tương tự như bản đồ băm hoặc từ điển Hệ thống KV có khả năng lưu trữ mọi loại dữ liệu, từ blob nhị phân đến tài liệu JSON, và các tính năng của Couchbase như N1QL và MapReduce tận dụng khả năng xử lý tài liệu JSON hiệu quả của kho lưu trữ KV.
Các thao tác KV có độ trễ cực thấp, thường dưới mili giây, nhờ vào tính đơn giản của chúng Dịch vụ truy vấn được truy cập thông qua một ngôn ngữ dễ hiểu.
N1QL định nghĩa các truy vấn, cho phép truy cập cửa hàng KV thông qua các API đơn giản như Tạo, Đọc, Cập nhật và Xóa Điều này mang lại một giao diện dễ dàng hơn để truy cập các tài liệu thông qua các ID của chúng.
Kho lưu trữ KV luôn chứa trạng thái cập nhật mới nhất cho mỗi mặt hàng Mặc dù các truy vấn và dịch vụ MapReduce cung cấp chỉ mục thống nhất dựa trên một phiên bản dữ liệu có thể hơi lỗi thời, người dùng có thể chọn chờ một thời gian ngắn để đảm bảo đã có cơ hội cập nhật trước khi nhận kết quả Trong khi đó, truy vấn trực tiếp vào kho lưu trữ KV sẽ luôn truy cập vào phiên bản dữ liệu mới nhất.
Các nhà phát triển có thể tạo ra các chương trình JavaScript MapReduce tùy chỉnh để xác định chỉ mục phức tạp và tập hợp dữ liệu trong Couchbase MapReduce là một mô hình lập trình lý tưởng cho việc xử lý dữ liệu phân tán với độ song song cao, trong đó chức năng bản đồ sẽ đọc và lọc tất cả tài liệu trong cụm để chọn ra thông tin liên quan, sau đó phát ra kết quả Chức năng giảm sẽ kết hợp các kết quả này, giúp tối ưu hóa việc xử lý dữ liệu trên các bộ đầu vào lớn.
Xử lý dữ liệu MapReduce là gia tăng, do đó đầu ra tiếp tục cập nhật khi dữ liệu cơ bản trải qua sự đột biến.
Lập trình viên có khả năng phát triển các chương trình MapReduce để xử lý dữ liệu hình học dưới định dạng GeoJSON và dữ liệu số n chiều (hyper-cubes) Ứng dụng này cho phép thực hiện các truy vấn hình học, chẳng hạn như trả về danh sách tất cả các mục nằm trong một hộp giới hạn nhất định.
Các chương trình MapReduce xuất ra các Chế độ xem MapReduce hoặc Chế độ Không gian, được mô tả thêm trong Lập chỉ mục.
Mặc dù N1QL mang lại giao diện truy vấn phong phú, các ứng dụng thường ưu tiên kho lưu trữ KV khi tốc độ, tính nhất quán và mẫu truy cập đơn giản được coi trọng hơn so với các tùy chọn truy vấn linh hoạt.
Tất cả các hoạt động KV trong Couchbase là vi mô, với Đọc và Cập nhật là các hoạt động cá nhân Để ngăn ngừa xung đột từ nhiều bản cập nhật đồng thời cho cùng một tài liệu, Couchbase sử dụng phương pháp Compare-And-Swap (CAS), tạo ra một checksum cho mỗi tài liệu mỗi khi có sự thay đổi.
Couchbase Server cho phép lập trình bằng SQL, giúp các lập trình viên dễ dàng bắt đầu do hầu hết đã quen thuộc với ngôn ngữ này Với việc nhiều tổ chức có sẵn mã SQL, Couchbase Server tích hợp tốt với công nghệ hiện tại Hỗ trợ SQL thông qua JDBC và ODBC mở ra một hệ sinh thái phong phú các công cụ phân tích và tích hợp dữ liệu như Microsoft Excel và Tableau.
N1QL là ngôn ngữ truy vấn tiên phong mang lại sự linh hoạt cho JSON kết hợp với sức mạnh của SQL Được phát triển bởi Couchbase cho Couchbase Server, N1QL cung cấp một ngôn ngữ truy vấn đồng nhất và mô hình dữ liệu dựa trên JSON, phục vụ cho các cơ sở dữ liệu định hướng tài liệu phân tán.
Couchbase đã phát triển N1QL, một phương ngữ SQL độc đáo, nhằm cung cấp cho các nhà phát triển và doanh nghiệp một ngôn ngữ mạnh mẽ để truy vấn và điều khiển dữ liệu JSON Công cụ truy vấn N1QL được tối ưu hóa cho thực thi đa nhân song song, hỗ trợ xử lý các tài liệu có cấu trúc biến đổi và lồng nhau Tương tự như SQL trong RDBMS, N1QL hoạt động trên JSON và trả về kết quả dưới dạng JSON cho ứng dụng.
N1QL cung cấp nhiều tính năng phong phú cho phép truy xuất, thao tác, chuyển đổi và tạo dữ liệu tài liệu JSON Các tính năng chính của N1QL bao gồm khả năng thực hiện các truy vấn phức tạp, hỗ trợ các phép toán trên dữ liệu và cho phép người dùng dễ dàng tương tác với cơ sở dữ liệu JSON.
Câu lệnh SELECT trong N1QL mở rộng khả năng của SQL SELECT để xử lý tài liệu JSON, cho phép người dùng tận dụng kiến thức về SQL để khai thác các tính năng NoSQL mạnh mẽ của Couchbase Điều này giúp làm việc hiệu quả với dữ liệu lớn, người dùng dữ liệu lớn và điện toán đám mây.
Sự khác biệt giữa N1QL và SQL
Sự khác biệt chính giữa SQL truyền thống và N1QL nằm ở mô hình dữ liệu Ngoài ra, các yếu tố như chiếu, lựa chọn và lọc dữ liệu cũng là những điểm khác biệt nổi bật.
Trong cơ sở dữ liệu SQL truyền thống, dữ liệu được tổ chức trong các bảng có cấu trúc đồng nhất Ví dụ, một cơ sở dữ liệu nhân viên đơn giản có thể được tìm thấy trong một cơ sở dữ liệu quan hệ với hai bảng: Nhân viên và Nhà tuyển dụng, trong đó tên được sử dụng làm chìa khóa chính.
Lương -> Số lượng có chiều dài chuỗi 10
Name_Key | Công ty | Bắt đầu | Kết thúc
Jamie | Couchbase | 2012 | VÔ GIÁ TRỊ
Trong N1QL, dữ liệu được lưu trữ dưới dạng tài liệu tự do trong các bộ sưu tập lớn gọi là khoảng khóa Không có sự đồng nhất và không có khoảng cách hợp lý giữa các đối tượng có cùng hình dạng dữ liệu trong không gian khóa.
(HRData keyspace) { 'Name': 'Jamie' 'SSN': 234 'Wage': 123 'History': [ ['Yahoo', 2005, 2006], ['Oracle', 2006, 2012], ] },
Khi thực hiện một truy vấn SQL, hệ thống trả về một tập hợp các hàng với một hoặc nhiều cột, kèm theo tiêu đề để cung cấp siêu dữ liệu cho từng cột Trong cơ sở dữ liệu quan hệ, không thể tạo ra một tập kết quả mà trong đó mỗi hàng lại có một bộ cột khác nhau.
SELECT Name, Company FROM Employee, Employers
Trong N1QL, bạn có thể đổi tên các trường tương tự như trong SQL bằng cách sử dụng từ khóa AS Bên cạnh đó, N1QL cho phép bạn định hình lại dữ liệu một cách linh hoạt, điều mà SQL không hỗ trợ, thông qua việc nhúng các thuộc tính của câu lệnh vào đối tượng kết quả mong muốn.
SELECT Name, History, {'FullTime': true} AS 'Status'
Trong N1QL, mệnh đề FROM cho phép người dùng lựa chọn giữa các nguồn dữ liệu (keyspaces) Ví dụ, nếu HRData là một không gian khóa, câu lệnh sau đây sẽ truy xuất thuộc tính Name từ tất cả các tài liệu trong HRData mà có thuộc tính Tên được định nghĩa.
Khi sử dụng N1QL, mỗi tài liệu có thể được xem như một nguồn dữ liệu độc lập, cho phép thực hiện truy vấn trên các phần tử lồng nhau Để truy cập các phần tử này, người dùng sử dụng toán tử dấu chấm (.) để hạ xuống các cấp độ khác nhau và toán tử khung vuông ([]) để chỉ định các phần tử trong mảng.
Các trường đã chọn cũng có thể được đổi tên bằng toán tử AS, giống như trong SQL:
SELECT firstjob FROM HRData.History[0] AS firstjob
SELECT firstjob[2] FROM HRData.History[0] AS firstjob
N1QL hỗ trợ mệnh đề WHERE, nhưng với một số khác biệt nhỏ.
Tương tự như SQL, bạn có thể sử dụng dấu chấm (.) và toán tử khung vuông ([]) để truy cập các phần tử lồng nhau trong mệnh đề SELECT.
Dữ liệu N1QL có thể có hình dạng không đồng nhất, dẫn đến việc các giá trị không xác định được phân biệt với null Để xử lý tình huống này, N1QL cung cấp thêm các toán tử như IS MISSING, bên cạnh các toán tử tiêu chuẩn như IS NULL.
XXVIII mới, ví dụ từ các giá trị số nguyên khác 0 thành giá trị Boolean đúng, cũng được hỗ trợ.
Hầu hết các hàm SQL tiêu chuẩn như LOWER() đều được định nghĩa trong N1QL Ngoài các từ lọc chuẩn, N1QL còn cung cấp các toán tử mới để làm việc với mảng trong tài liệu, bao gồm ANY, SOME và EVERY Toán tử ANY và SOME sẽ đánh giá một điều kiện cho mỗi phần tử trong mảng và trả về true nếu bất kỳ phần tử nào đáp ứng điều kiện đó Trong khi đó, toán tử EVERY cũng đánh giá điều kiện cho mỗi phần tử nhưng chỉ trả về true khi tất cả các phần tử đều khớp với điều kiện.
Lập chỉ mục
Couchbase Server cải thiện tốc độ truy cập dữ liệu thông qua việc sử dụng các chỉ mục Lập chỉ mục là yếu tố quan trọng, vì sản phẩm trong các nhóm Couchbase được phân phối trên nhiều nút, và mọi mục đều cần được truy cập để thực hiện các truy vấn hiệu quả.
Couchbase hỗ trợ nhiều chỉ số thứ cấp toàn cục và chỉ số dựa trên chỉ số, giúp cải thiện hiệu suất mặc dù có một số chi phí xử lý để duy trì chúng Do kích thước của dữ liệu chỉ mục nhỏ hơn tài liệu, thường có thể giữ toàn bộ chỉ mục trên một nút, giúp truy vấn truy cập cục bộ và giảm thời gian truy cập mạng Lệnh EXPLAIN của Couchbase cho phép người dùng tìm hiểu chi tiết về cách thực hiện truy vấn và sử dụng chỉ mục, từ đó hỗ trợ quyết định về chỉ mục Ngoài ra, Couchbase áp dụng nhiều chiến lược thông minh như xây dựng chỉ mục trì hoãn và các thiết lập thống nhất chỉ số linh hoạt để kiểm soát tính mệt mỏi.
Mặc dù được gọi là chỉ số thứ cấp toàn cầu (GSI), nó có thể được sử dụng để tạo ra các chỉ mục hiệu suất cao, cả chính và thứ cấp Chỉ số thứ cấp toàn cầu Couchbase được tách biệt với dữ liệu, và mặc dù dữ liệu được phân phối giữa các nút, các nhà phát triển và quản trị viên thường tạo chỉ mục trên một tập hợp nút cụ thể chạy dịch vụ chỉ mục Việc giữ toàn bộ chỉ mục trên một nút giúp giảm bớt sự phức tạp trong hoạt động.
Khi cluster phát triển, việc sử dụng chỉ số bao trùm đảm bảo rằng các yêu cầu về chỉ mục được đáp ứng thông qua dữ liệu cục bộ mà không gặp phải độ trễ mạng.
Composite Indexes tối ưu hóa truy cập cho các truy vấn yêu cầu dữ liệu từ nhiều thuộc tính.
Các chỉ mục hỗ trợ cung cấp đầy đủ thông tin cần thiết để giải quyết một truy vấn mà không cần truy cập vào dữ liệu gốc, giúp tăng tốc độ truy xuất thông tin một cách hiệu quả.
Các chỉ mục lọc cho phép người dùng tạo chỉ mục trên một tập con dữ liệu thông qua mệnh đề WHERE, giúp giảm kích thước chỉ mục và giảm thiểu các tác động bảo trì Điều này rất quan trọng để duy trì khả năng mở rộng và hiệu suất khi xử lý các tập dữ liệu lớn.
Các chỉ mục dựa trên chức năng là kết quả của sự tính toán giá trị của một biểu thức trên một loạt tài liệu.
Chỉ mục tài liệu phụ được sử dụng để chỉ định các cấu trúc nhúng và đối tượng phức tạp, giúp cải thiện hiệu suất truy vấn đối với các đối tượng JSON tuần tự một cách đáng kể.
Khung nhìn MapReduce thường được sử dụng để tạo chỉ mục, cho phép nhà phát triển tùy chỉnh giao diện nhằm tối ưu hóa hỗ trợ cho các truy vấn phức tạp Điều này rất hữu ích cho việc phân tích thời gian thực trên các bộ dữ liệu lớn, chẳng hạn như xây dựng báo cáo tương tác về dữ liệu bán hàng theo ngày tháng, mục hoặc khu vực Để tạo chỉ mục MapReduce, bạn có thể phát các hàng riêng biệt và đồng thời tập hợp dữ liệu bán hàng theo từng không gian cụ thể.
Các chế độ xem không gian giúp tăng tốc độ truy cập dữ liệu số nhiều chiều thông qua Bản đồ không gian (Spatial MapReduce) Chỉ số không gian, được xây dựng dưới dạng cây R, cho phép đại diện cho nhiều vùng có khả năng chồng chéo Thông tin hình học được hỗ trợ bởi đặc tả GeoJSON.
Các chế độ xem không gian cho phép tạo ra khối hình đa chiều từ dữ liệu số, giúp xác định mối quan hệ giữa các yếu tố như độ tuổi, thu nhập và chi tiêu của khách hàng Lợi ích nổi bật của chế độ xem không gian so với chỉ mục hợp chất là khả năng phục vụ các truy vấn với kích thước theo thứ tự bất kỳ.
Các chỉ mục văn bản đầy đủ giúp các nhà phát triển tích hợp dễ dàng tính năng tìm kiếm toàn văn vào ứng dụng thông qua CBFT (xem trước của nhà phát triển), cho phép thực hiện các trường hợp tìm kiếm mà không cần thêm các thành phần phức tạp, từ đó giảm bớt sự phức tạp trong hoạt động.
Quản lý dữ liệu
Couchbase Server cung cấp các dịch vụ quản lý dữ liệu thông qua trình quản lý dữ liệu.
Máy chủ Couchbase đảm bảo tính nguyên tử cho từng tài liệu, nghĩa là việc ghi tài liệu sẽ hoàn thành toàn bộ hoặc không thực hiện Để tránh các giao dịch chéo tài liệu, người dùng có thể hợp nhất thông tin thường xuyên truy cập vào một tài liệu duy nhất hoặc áp dụng các kỹ thuật khác.
6.2 Tính nhất quán và độ bền
Định lý CAP trong các hệ thống quản lý dữ liệu phân tán được phân loại thành CP hoặc AP, tập trung vào sự cân bằng giữa tính nhất quán (C) và tính khả dụng (A) Định lý này mô tả cách thức hoạt động của hệ thống trong một phân vùng mạng và khả năng khôi phục sau sự cố, mà không cần tắt hệ thống trong quá trình hoạt động bình thường.
Couchbase Server hoạt động như một hệ thống CP theo cấu hình mặc định và vận hành dưới dạng một cụm đơn lẻ Mọi quyền truy cập vào một khoá, bao gồm đọc, ghi, cập nhật và xoá, đều được chuyển hướng tới nút lưu trữ.
Hệ thống XXXI đang lưu trữ dữ liệu và thư viện khách hàng ứng dụng phân phối các yêu cầu đến các nút phù hợp, cho phép mọi máy chủ ứng dụng hoặc thread có thể truy cập nhanh chóng vào các ghi chép của các máy chủ ứng dụng khác Mặc dù tất cả các bản ghi đều được sao chép trong cluster để đảm bảo tính sẵn sàng cao, nhưng các bản sao này chủ yếu không cung cấp lưu lượng truy cập cho đến khi được kích hoạt.
Theo Định lý CAP, một mạng không thể phân biệt được với sự thất bại của một phần trong hệ thống Trong Couchbase, khi một nút gặp sự cố, một số dữ liệu sẽ tạm thời không khả dụng cho việc ghi cho đến khi được kích hoạt lại, có thể bằng tay hoặc tự động trong cluster Tuy nhiên, việc đọc dữ liệu vẫn có thể tiếp tục thông qua các bản sao dữ liệu ở những vị trí khác trong cluster.
Nếu một nút đơn gặp sự cố, dữ liệu trên nút đó sẽ không được ghi cho đến khi nó hoạt động trở lại, mặc dù dữ liệu vẫn có thể được đọc từ các bản sao khác nếu cần thiết.
Couchbase Server cung cấp tính khả dụng cao thông qua việc sao chép dữ liệu giữa nhiều cụm Couchbase Server, có thể nằm trong cùng một hoặc các trung tâm dữ liệu khác nhau, nhờ vào tính năng sao chép trung gian dữ liệu (XDCR) Với XDCR, thông tin trên cả hai cụm sẽ được đồng bộ hóa dần dần, trong khi Couchbase vẫn duy trì khả năng đọc và ghi dữ liệu trong suốt quá trình này.
Couchbase Lite nâng cao tính sẵn sàng cho các ứng dụng di động và IoT bằng cách lưu trữ các thay đổi cục bộ trên thiết bị trong quá trình người dùng tương tác Khi kết nối mạng được khôi phục, nó sẽ tự động quản lý quá trình đồng bộ hóa với Couchbase Server.
Couchbase Server vận hành hiệu quả và có khả năng phục hồi từ nhiều tình huống thất bại khác nhau, điều này vượt quá nội dung của bài viết này, đặc biệt là liên quan đến các tùy chọn cấu hình và lập trình đa dạng.
6.3 Sự nhất quán của chỉ mục và bản sao
Theo mặc định, chỉ mục và bản sao trong Couchbase được cập nhật không đồng bộ nhằm tối ưu hiệu suất Ứng dụng có thể điều chỉnh mức độ hiệu suất để ưu tiên độ tin cậy cho bản sao hoặc tính nhất quán cho truy vấn Trong khi các RDBMs truyền thống và cơ sở dữ liệu NoSQL thường ghi chậm để duy trì cập nhật, Couchbase cho phép các nhà phát triển linh hoạt cân bằng giữa thông báo và yêu cầu của ứng dụng.
Couchbase cung cấp khả năng phản hồi nhanh chóng cho các yêu cầu nhờ vào việc xây dựng các chỉ số từng bước Sau khi Couchbase Server được thiết lập ban đầu, nó có thể ngay lập tức đáp ứng yêu cầu hoặc điều chỉnh để đồng bộ với thời điểm truy vấn được phát hành Nhà phát triển có thể tùy chỉnh độ tươi của dữ liệu chỉ mục bằng cách sử dụng thuộc tính "cũ", cho phép cấu hình linh hoạt Điều này cho phép Couchbase Server xử lý tất cả các bản cập nhật trước khi phản hồi, hoặc sử dụng trạng thái hiện tại của chỉ mục tại thời điểm truy vấn, giúp ứng dụng hoạt động nhanh chóng trừ khi có yêu cầu cần thông tin mới nhất.
Theo mặc định, trình quản lý dữ liệu sẽ gửi thông điệp xác nhận (ACK) cho máy khách ngay khi bản cập nhật được lưu trong RAM Quá trình ghi dữ liệu diễn ra nhanh chóng nhờ vào việc thêm ngay lập tức vào các bản sao, đĩa và lập chỉ mục Để tăng khả năng chịu lỗi, Couchbase chỉ xác nhận thay đổi sau khi bản cập nhật đã được sao chép và lưu trữ trên đĩa, với dữ liệu được nhân lên đến 1, 2 hoặc 3 nút, tạo ra tổng cộng lên đến bốn bản sao, bất kể thời gian giữ ACK cho các hoạt động đó.
Trong hệ thống quản lý dữ liệu phân tán với khối lượng lớn, xung đột có thể xảy ra khi nhiều khách hàng cố gắng ghi cùng một tài liệu đồng thời Couchbase Server đảm bảo tính nguyên tử cho tất cả các hoạt động ở cấp tài liệu, đồng thời cung cấp cả khóa khách quan và chủ quan để ngăn chặn lỗi đồng thời.
Khóa khách quan trong Couchbase dựa trên Giá trị So sánh (CAS), một yếu tố quan trọng trong siêu dữ liệu của tài liệu Để thực hiện các thao tác cập nhật, việc kiểm tra thành công giá trị CAS là cần thiết Ứng dụng sử dụng giá trị CAS như một tham số, và Couchbase Server sẽ xác nhận rằng giá trị CAS không thay đổi trước khi cho phép xóa hoặc sửa đổi tài liệu Phương pháp này giúp ngăn ngừa xung đột mà không cần khóa hồ sơ, là phương pháp xử lý đồng thời tối ưu trong Couchbase.
Couchbase Server cung cấp hỗ trợ cho khóa chủ quan, tương tự như semaphores trong các ứng dụng, mặc dù tính năng này ít được sử dụng Để ngăn chặn deadlock không thể phục hồi, khóa bi quan sẽ được tự động phát hành.
Bảo mật trong Coachbase
Chứng thực bằng chứng chỉ
Với sự gia tăng mối đe dọa về bảo mật từ người dùng giả mạo và máy móc, xác thực dựa trên mật khẩu đã trở nên không còn đáng tin cậy Couchbase hiện hỗ trợ xác thực máy khách thông qua chứng chỉ x.509, đảm bảo chỉ những người dùng được phê duyệt mới có quyền truy cập Lưu ý rằng cơ chế xác thực này chỉ áp dụng cho dịch vụ dữ liệu.
Xác thực dựa trên chứng chỉ cung cấp một lớp bảo mật bổ sung thông qua việc sử dụng cơ quan chứng nhận (CA) để xác nhận tính xác thực và cấp giấy chứng nhận Chứng chỉ chứa thông tin quan trọng như tên tổ chức, ngày hết hạn, tên CA cấp chứng chỉ và chữ ký số của CA Những thông tin này giúp người dùng nhận diện và tin tưởng vào CA, ngay cả khi họ không biết đến thực thể được xác định bởi chứng chỉ Các phần mềm hỗ trợ chứng chỉ duy trì một bộ sưu tập các chứng chỉ CA đáng tin cậy, nhằm xác định các tổ chức phát hành chứng chỉ mà người dùng có thể tin tưởng.
CA là một phần của hệ thống phân cấp, phần mềm có thể xác minh rằng chứng chỉ được ký bởi cùng một CA gốc.
Giấy chứng nhận x.509 là tiêu chuẩn chính cho chứng chỉ khóa công khai và SSL/TLS Để đảm bảo tính hợp lệ, bạn cần sử dụng các chứng chỉ x.509 được tạo và ký bởi cùng một cơ quan chứng nhận (CA) Chứng chỉ x.509 phải được định dạng theo chuẩn PEM.
2.2 Bật tính năng xác thực dựa trên chứng chỉ x.509 trên máy chủ
Bạn có thể bật xác thực dựa trên chứng chỉ trên máy chủ bằng cách sử dụng REST API hoặc CLI.
Cơ chế xác thực này chỉ áp dụng cho dịch vụ dữ liệu và có thể tích hợp với SDK/clients Đối với các truy vấn và dịch vụ khác, hãy sử dụng các cơ chế xác thực hỗ trợ khác.
Enable x.509 certificate authentication on the server You must set this parameter once per cluster. curl -X POST data-binary "state=enable" http://Administrator:password@localhost:8091/settings/clientCertAuth
Để phân tích cú pháp cho người dùng trên máy chủ, hãy chỉ định đường dẫn của chứng chỉ bằng cách sử dụng lệnh curl sau: `curl -X POST data-binary "path=subject.cn" http://Administrator:password@localhost:8091/settings/clientCertAuth`.
Chỉ định tiền tố và dấu phân cách trong biểu thức đường dẫn đó. curl -X POST data-binary "delimiter=" http://Administrator:password@localhost:8091/settings/clientCertAuth curl -X
POST data-binary "prefix=" http://Administrator:password@localhost:8091/settings/clientCertAuth
Sử dụng lệnh couchbase-cli sau: couchbase-cli ssl-manage
set- client- auth-state disable | enable | mandatory
You can enable or disable SSL client certificate authentication based on your needs By default, this feature is disabled, meaning client-based certificate authentication is not in use When enabled, a client certificate is required for authentication; if the client fails to present a valid certificate, access is denied, but if no certificate is provided, authentication is bypassed In the mandatory state, clients must present a valid certificate to access Couchbase buckets, but it is advised not to use this setting for X.509 Certificate Authentication in XDCR scenarios.
set- client- auth-path subject.cn | san.uri | san.dnsname | san.name
Set SSL client certificate type value.
set- client- auth- prefix set_client_auth_prefix Set SSL client certificate prefix value.
set- client- auth- delimiter set_client_auth_delimiter Set SSL client certificate delimiter value.
Show SSL client certificate authentication value.
Sau khi thiết lập xác thực khách hàng trên máy chủ, bạn cần phân quyền cho người dùng bằng cách chỉ định họ vào các vai trò cụ thể.
Để tạo người dùng với nguồn xác thực 'Couchbase', cần đảm bảo rằng người dùng này là người dùng nội bộ và có mật khẩu mạnh Mặc dù mật khẩu không được sử dụng trong xác thực dựa trên chứng chỉ, nó vẫn rất quan trọng nếu người dùng muốn truy cập tài nguyên qua giao diện web.
Xác thực bằng mật khẩu
Để truy cập Couchbase Server, quản trị viên và ứng dụng cần thực hiện xác thực thông qua mật khẩu Để tăng cường bảo mật, các ứng dụng có thể được phát triển để sử dụng mật khẩu theo thói quen dựa trên băm.
3.1 Xác thực cho Quản trị viên
Tên người dùng và mật khẩu quản trị viên là thông tin cần thiết để xác thực trong Couchbase Server, được thiết lập trong quá trình khởi tạo Cluster Mật khẩu này có thể được thay đổi sau đó thông qua công cụ reset-admin-password.
Cách làm tốt nhất về xác định mật khẩu được liệt kê trong phần Couchbase passwords.
Khi sử dụng Bảng điều khiển Web Couchbase trên cổng mặc định http://localhost:8091, tên người dùng và mật khẩu quản trị viên được truyền ở dạng rõ ràng từ trình duyệt Để tăng cường bảo mật, Couchbase Web Console có thể được cấu hình để truy cập an toàn qua https://localhost:18091, giúp mã hóa thông tin đăng nhập.
3.2 Xác thực cho các ứng dụng
Couchbase Server cung cấp các tính năng như dữ liệu, cài đặt và thống kê, chỉ có thể truy cập bởi người dùng có đặc quyền thích hợp Mỗi đặc quyền được phân loại thành đọc hoặc đọc-viết và được quản lý bởi các Quản trị viên Toàn quyền thông qua vai trò Khi người dùng xác thực thành công, các vai trò của họ sẽ được kiểm tra để xác định quyền truy cập Để vượt qua các chứng chỉ, ứng dụng cần sử dụng một trong bốn cơ chế xác thực của khung SASL, bao gồm PLAIN và ba cơ chế SCRAM-SHA (SCRAM-SHA1, SCRAM-SHA256, SCRAM-SHA512) Cơ chế SCRAM cho phép xác thực an toàn bằng cách truyền mật khẩu ở dạng được bảo vệ, và có thể yêu cầu cập nhật trình điều khiển để hỗ trợ chức năng băm dựa trên SHA.
3.3 Cơ chế xác thực mật khẩu
Theo thứ tự tăng dần, Couchbase cơ chế xác thực mật khẩu như sau:
Khách hàng gửi mật khẩu mà không được mã hóa, và mặc dù tất cả đều ủng hộ phương pháp xác thực này, nhưng nó không an toàn Thiếu biện pháp bảo vệ khiến mật khẩu dễ bị đánh cắp trong quá trình chuyển giao.
SCRAM-SHA1: Sử dụng một phím 160-bit.
SCRAM-SHA256: Một trong những nhóm hàm băm được gọi là SHA2, SCRAM-SHA256 sử dụng một khóa 256-bit.
SCRAM-SHA512: Một hàm băm khác từ nhóm SHA2, SCRAM-SHA512 sử dụng một phím 512-bit; và là giao thức xác thực mạnh nhất được hỗ trợ.
Trong quá trình đàm phán giữa máy chủ Couchbase và ứng dụng khách, giao thức xác thực mạnh nhất sẽ được lựa chọn dựa trên khả năng hỗ trợ của cả hai bên Nếu ứng dụng khách chỉ hỗ trợ giao thức PLAIN, thì PLAIN sẽ được sử dụng Tuy nhiên, nếu ứng dụng khách cũng hỗ trợ giao thức SCRAM-SHA1, thì SCRAM-SHA1 sẽ được ưu tiên sử dụng.
Một phương pháp đáp ứng thách thức có thể được truyền qua cả hai kênh mã hóa và không được mã hóa.
Các giao thức phản ứng thách thức SCRAM chỉ xác thực quá trình xác nhận mật khẩu Để đảm bảo an toàn cho phiên tiếp theo, việc sử dụng TLS là cần thiết.
Ủy quyền
Để ủy quyền cho người dùng, Couchbase Server cung cấp Kiểm soát Truy cập dựa trên vai trò.
4.1 RBAC dành cho Quản trị viên
Kiểm soát truy cập dựa vào vai trò (RBAC) cho phép các quản trị viên quản lý quyền truy cập vào hệ thống Couchbase hiệu quả hơn Với RBAC, mỗi quản trị viên được phân quyền thực hiện các hoạt động cụ thể, rõ ràng theo bản mô tả công việc, giúp phân chia nhiệm vụ hành chính một cách hợp lý.
RBAC có thể được thiết lập cho cả người dùng nội bộ và bên ngoài Người quản trị toàn quyền có khả năng ánh xạ người dùng vào một hoặc nhiều vai trò hành chính cố định Mỗi vai trò này bao gồm một tập hợp các nhiệm vụ đã được xác định rõ ràng.
XLI có thể được thực hiện trong hệ thống với điều kiện người dùng không có quyền truy cập quản trị khác, ngoại trừ một người cụ thể được xác định trong vai trò của họ.
Quản trị viên trong Couchbase có khả năng quản lý vai trò người dùng thông qua các công cụ Couchbase CLI hoặc REST API, như được hướng dẫn trong tài liệu về quản lý vai trò và RBAC.
4.2 RBAC cho các ứng dụng
Couchbase Server 5.0 đã bổ sung mô hình bảo mật truy cập dựa trên vai trò (RBAC) cho các ứng dụng, cho phép quản trị viên kiểm soát chi tiết quyền truy cập của người dùng cuối và dịch vụ ứng dụng Điều này giúp hạn chế quyền truy cập vào thông tin cần thiết, đảm bảo tuân thủ mà không vượt quá mức cần thiết.
4.3 Quản lý người dùng RBAC
Couchbase RBAC cho phép người dùng được định nghĩa được gán các vai trò, cho phép truy cập vào tài nguyên.
4.4 Tài nguyên Dưới Điều khiển Truy cập
Máy chủ Couchbase sử dụng kiểm soát truy cập dựa trên vai trò (RBAC) cho các tài nguyên cụ thể Quản trị viên Couchbase có khả năng gán vai trò cho người dùng, kết hợp với nhiều đặc quyền khác nhau, áp dụng cho một tài nguyên cá nhân hoặc cho tất cả các tài nguyên trong một nhóm loại tài nguyên.
Couchbase cung cấp một lộ trình nâng cấp cho phép người dùng chuyển đổi các hoạt động từ Couchbase Server 4.6 trở về trước (tất cả các phiên bản trước RBAC) lên phiên bản 5.0, phiên bản này tích hợp tính năng kiểm soát truy cập dựa trên vai trò (RBAC).
Kiểm tra
Couchbase Server cho phép kiểm tra các hành động thực hiện, giúp quản trị viên đảm bảo rằng các nhiệm vụ quản lý hệ thống được thực hiện đúng cách Tính năng này hỗ trợ việc tuân thủ các tiêu chuẩn quy định một cách hiệu quả.
5.1 Các sự kiện kiểm tra
Couchbase Server cung cấp sự kiện kiểm tra, gửi số liệu tương ứng đến các tập tin đích.
5.1.1 Danh sách các sự kiện Kiểm toán
Couchbase Server ghi lại các sự kiện quan trọng như đăng nhập thành công và thất bại, cùng với các sự kiện liên quan đến cấu hình cụm và nhóm Ngoài ra, việc sử dụng các công cụ yêu cầu quyền quản trị cũng được theo dõi Tất cả thông tin này được lưu trữ trong các mục tiêu đầu ra dưới dạng tệp JSON.
Couchbase Server tạo ra sự kiện kiểm tra bất cứ khi nào xảy ra các hành động sau:
Login succeeded or failed Audit configuration changed
Node added to cluster Node removed from cluster
Cluster rebalanced System started or shut down
Bucket deleted Bucket flushed Bucket-settings modified
Disk or index path changed
XDCR reference created XDCR reference updated
XDCR replication paused or resumed
Auto failover enabled Auto failover disabled
Auto failover-count reset Cluster alerts enabled Cluster alerts disabled
Index-node added or removed
Server-group created Node added to server- group
Node removed from server-group
Server-group deleted Password changed or reset
FTS index created or updated
FTS index deleted FTS index control- command issued
CPU profiling started Memory profiling started
Self-signed SSL certificate regenerated
5.2 Các đối tượng cần kiểm tra Đối tượng của một cuộc kiểm tra Couchbase Server là một tệp JSON; sau khoảng thời gian được định cấu hình và đường dẫn vị trí có thể định cấu hình được Phần này cung cấp một số ví dụ về nội dung xuất hiện.
5.2.1 Log của các đối tượng cần kiểm tra
Sự kiện kiểm tra được ghi lại trong các tệp JSON, với tệp mặc định audit.log luôn sẵn có để lưu trữ các sự kiện đăng nhập Sau khoảng thời gian do quản trị viên xác định, từ 15 phút đến 7 ngày, tệp audit.log sẽ được lưu lại với tên sửa đổi kèm theo dấu thời gian Một tệp audit.log mới và trống sẽ được tạo ra để tiếp tục ghi lại các sự kiện đăng nhập, và quá trình này có thể diễn ra sớm hơn nếu tệp đạt kích thước tối đa 20MB Để biết thêm chi tiết về cách định thời gian xoay vòng tệp, vui lòng tham khảo mục kiểm tra.
Một bản kiểm toán cho một đăng nhập thành công có thể xuất hiện như sau:
{ "timestamp":"2015-02-20T08:48:49.408-08:00", "id":8192, "name":"login success", "description":"Successful login to couchbase cluster", "role":"admin",
"real_userid": { "source":"ns_server", "user":"bjones" },
"sessionid":"0fd0b5305d1561ca2b10f9d795819b2e", "remote":{"ip":"172.23.107.165",
Trong ví dụ này, một người dùng có tên bjones đã đăng nhập thành công vào một cụm Couchbase bằng cách sử dụng địa chỉ IP của miền 172.23.107.165.
Biểu ghi kiểm toán sau đây chỉ ra rằng nỗ lực đăng nhập thất bại:
{ "real_userid": { "source": "rejected", "user": "auditBucketUser" }, "remote": { "ip": "127.0.0.1", "port": 64416 }, "timestamp": "2017-03-16T15:45:27.420Z",
"id": 8193, "name": "login failure", "description": "Unsuccessful attempt to login to couchbase cluster" }
Bản ghi này chỉ ra rằng người dùng tên auditBucketUser đã có một nỗ lực không thành công để đăng nhập vào nhóm couchbase vào năm 2017-03-16 lúc 15:45:27.
Biểu ghi kiểm toán dưới đây tương ứng với việc tạo ra một bucket.
{ "storage_mode": "couchstore", "conflict_resolution_type": "seqno",
"eviction_policy": "value_only", "num_threads": 3, "flush_enabled": false, "purge_interval": "undefined", "auth_type": "sasl", "ram_quota":
1156579328, "replica_index": false, "num_replicas": 1 }, "type":
"membase", "bucket_name": "auditBucket", "real_userid": { "source":
"sessionid": "dca284b5efe1937a1a4085ef88c2fbcb",
Vào ngày 16 tháng 3 năm 2017 lúc 15:43:35, một bucket có tên auditBucket đã được tạo ra với yêu cầu truy cập xác thực sasl và chính sách thu hồi được định nghĩa là value_only, do Quản trị viên toàn hệ thống thực hiện.
Biểu ghi kiểm tra dưới đây tương ứng với việc tạo ra một người dùng.
{ "roles": [ "ro_admin" ], "identity": { "source": "builtin", "user":
"auditBucketUser2" }, "real_userid": { "source": "ns_server", "user":
"Administrator" }, "sessionid": "dca284b5efe1937a1a4085ef88c2fbcb", "remote": {
"id": 8232, "name": "set user", "description": "User was added or updated" }
Vào ngày 16 tháng 3 năm 2017 lúc 15:44:32, một người dùng có tên auditBucketUser 2 đã được tạo ra bởi Quản trị viên đầy đủ, và người dùng này đã được cấp vai trò ro_admin.
Biểu ghi kiểm toán sau đây chỉ ra rằng một chỉ mục đã được tạo hoặc cập nhật:
"ns_server", "user": "Administrator" }, "index_name": "def-airportname", "id":
24577, "name": "Create/Update index", "description": "FTS index was created/Updated" }
Bản ghi này chỉ ra rằng một chỉ mục FTS có tên def-airportname đã được tạo hoặc cập nhật vào 201703-16 vào lúc 16:12:36.
Mã hóa
Couchbase sử dụng mã hóa để bảo vệ dữ liệu, trong toàn hệ thống.
Mã hóa dữ liệu là phương pháp quan trọng để bảo vệ thông tin nhạy cảm khỏi truy cập trái phép Couchbase Server hỗ trợ mã hóa dữ liệu khi không hoạt động (trên đĩa), trong quá trình truyền tải và khi dữ liệu được lưu trữ bởi các ứng dụng Hệ thống Quản lý Bí mật của Couchbase Server cho phép lưu trữ thông tin quan trọng về bảo mật và bảo trì dưới dạng mã hóa, đảm bảo rằng dữ liệu này chỉ được giải mã và sử dụng hợp lý trong quá trình khởi động cluster.
6.1 Mã hóa lúc ngừng hoạt động
Mã hóa ở phần còn lại đề cập đến việc mã hóa dữ liệu trên phương tiện vật lý, nhằm bảo vệ dữ liệu lưu trữ trên các thiết bị truyền thông Couchbase Server khuyến nghị sử dụng phương pháp này để đảm bảo an toàn cho dữ liệu.
5.2.1 Bảo vệ Phương tiện Truyền thông
Couchbase Server lưu trữ tệp và chỉ mục trên phương tiện vật lý, do đó, nếu phương tiện này bị đánh cắp, dữ liệu sẽ dễ dàng bị truy cập trái phép.
Để bảo vệ dữ liệu quan trọng, cần mã hóa tất cả thông tin và chỉ lưu trữ chỉ mục-vị trí Sử dụng mã hóa dữ liệu minh bạch từ các nhà cung cấp phần mềm mã hóa bên thứ ba và từ chối quyền truy cập cho những người không có khóa mã hóa hợp lệ hoặc không tuân thủ chính sách bảo mật Việc mã hóa này đảm bảo rằng dữ liệu lưu trữ không thể bị tổn hại, ngay cả khi cơ sở dữ liệu bị đánh cắp, sao chép, mất hoặc bị truy cập trái phép.
Thường được sử dụng các công cụ mã hóa của bên thứ ba bao gồm:
- Thiết lập khoá thống nhất Linux (LUKS):
Các công cụ trên hỗ trợ mã hóa toàn bộ đĩa hoặc mã hóa cấp tệp Nếu bạn chọn mã hóa cấp tệp, cần mã hóa các thư mục và tệp Couchbase, bao gồm cả đường dẫn tệp dữ liệu và chỉ mục.
- Linux: / opt / couchbase / var / lib / couchbase / dữ liệu
- Windows: C: \ Program Files \ couchbase \ server \ var \ lib \ couchbase \ data
L Đường dẫn tập tin chỉ mục Global Secondary Index
- Linux: / opt / couchbase / var / lib / couchbase / data / @ 2i
- Windows: C: \ Program Files \ couchbase \ server \ var \ lib \ couchbase \ data \ @ 2i
Các tập tin cấu hình Couchbase và thư mục
- Linux: / opt / couchbase / var / lib / couchbase / dữ liệu
- Windows: C: \ Program Files \ couchbase \ server \ var \ lib \ couchbase \ data
Tập tin mật khẩu Couchbase
- Linux: /opt/couchbase/var/lib/couchbase/isasl.pw và / opt / couchbase / var / lib / couchbase / config /.
- Windows: C: \ Program Files \ couchbase \ server \ var \ lib \ couchbase \ isasl.pw và C: \ Program Files \ couchbase \ server \ var \ lib \ couchbase \ var \ lib \ config \.
6.2.1 Mã hóa trên đường truyền
Để bảo vệ dữ liệu trên đường truyền khỏi việc nghe trộm, Couchbase Server áp dụng SSL/TLS nhằm mã hóa dữ liệu trong ba trường hợp: giữa máy khách và máy chủ, giữa các nút máy chủ trong cụm, và giữa các trung tâm dữ liệu.
6.2.2 Bảo vệ Quản trị viên Truy cập
The administrator can configure management access permissions to ensure that client communication with Couchbase Server is encrypted using SSL/TLS This protocol is fully supported by Couchbase client libraries for both the Couchbase Web Console and the REST API.
Khi khởi tạo Couchbase Server một cách an toàn, hệ thống sẽ tạo ra một chứng chỉ tự ký cho nút đầu tiên, chứng chỉ này sau đó được phân phối đến tất cả các nút trong cluster Về mặt an ninh, chứng chỉ này được thiết kế để phù hợp với các hoạt động tiền sản xuất của bạn.
LI tùy chọn, bạn có thể chuyển sang chứng chỉ X.509, trước khi triển khai ứng dụng vào sản xuất.
6.2.3 Kết nối an toàn vào Console
Couchbase Web Console có thể được truy cập qua HTTPS, trên cổng 18091.
Vì nó được bảo vệ bởi SSL / TLS, kết nối này được bảo mật.
Ví dụ, nếu bạn đã thiết lập Couchbase Web Console trên http: // servername:
8091, bạn có thể truy cập nó một cách an toàn vào https: // servername: 18091.
6.2.4 Thực hiện xác minh chứng chỉ Để xác minh chứng chỉ mà cụm của bạn hiện đang sử dụng, truy cập Couchbase Web Console, và nhấp chuột trái vào tab Security, trong thanh điều hướng ở phía bên tay trái:
Hình 3 Xác minh chứng chỉ
Để hiển thị màn hình Bảo mật, bạn cần nhấp chuột trái vào tab Chứng chỉ gốc trên thanh điều khiển ngang ở phía trên Lưu ý rằng bạn phải có quyền Quản trị viên để xem và truy cập vào Chứng chỉ gốc.
Hình 4 Chọn chứng chỉ gốc trong vai trò Quản trị viên
Thao tác này hiển thị chế độ xem chứng chỉ gốc (Root Certificate View), có chứa chứng chỉ gốc tự ký, trong một khung cuộn:
Hình 5 Chứng chỉ gốc (minh họa)
Lưu ý rằng chứng chỉ có thể được tái tạo hoặc thay thế, sử dụng API mã hoá On-the-Wire, hoặc các lệnh CLI để quản lý chứng chỉ.
6.3 Mã hóa trong ứng dụng
Bạn có thể mã hóa dữ liệu trong ứng dụng của mình trước khi gửi đến máy chủ, cho phép sử dụng mã hóa một cách có chọn lọc chỉ cho những thông tin nhạy cảm nhất.
Luôn luôn duy trì tính bí mật của khóa mã hóa: bằng vòng khoá an toàn hoặc mô-đun bảo mật phần cứng (HSM).
Luôn sử dụng thư viện mã hóa tiêu chuẩn để bảo vệ dữ liệu, và tuyệt đối không dựa vào các giải pháp quản lý chìa khóa hoặc mã hóa tự phát triển.
Không bao giờ, khi quản lý tài liệu, bao gồm thông tin nhạy cảm trong ID tài liệu.
Quản lý bí mật máy chủ là một giải pháp hiệu quả để nâng cao tính bảo mật dữ liệu Bằng cách này, tổ chức có thể dễ dàng đáp ứng các yêu cầu tuân thủ và bảo vệ thông tin nhạy cảm một cách an toàn hơn.
Quản lý bí mật là tính năng của phiên bản Enterprise Edition trong Couchbase Server, cho phép lưu trữ các bí mật như mật khẩu và chứng chỉ hệ thống ở định dạng mã hóa Couchbase Server sử dụng thuật toán AES 256-bit ở chế độ GCM để mã hóa các bí mật thông qua một hệ thống phân cấp mã hóa, đảm bảo an toàn và bảo mật cho dữ liệu quan trọng.