Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Cách chọn giữa PostgreSQL và CockroachDB

Được xuất bản lần đầu vào ngày 15 tháng 8 năm 2019 tại ObjectRocket.com/blog

Khi CockroachDB® và PostgreSQL® đã củng cố một vị trí trên thị trường khi nói đến khối lượng công việc quan hệ, nhiều người đã bắt đầu hỏi họ nên chọn cái nào. CockroachDB cung cấp SQL ở quy mô toàn cầu thực sự với các giao dịch phân tán và tỷ lệ đọc / ghi theo chiều ngang được tích hợp sẵn cho khối lượng công việc forSQL quy mô, khả năng phục hồi và hiệu suất chưa từng có. Tuy nhiên, vẫn có một số trường hợp mà PostgreSQL có thể phù hợp hơn.

Cách chọn giữa PostgreSQL và CockroachDB

Điểm tương đồng giữa CockroachDB và PostgreSQL

Hai công nghệ này trùng lặp khá nhiều. Trước hết, cả hai đều tự hào:

  • Tuân thủ SQL
  • Các giao dịch ACID
  • Khả năng tương thích với giao thức dây PostgreSQL
  • Trình điều khiển khách hàng rộng và hỗ trợ ORM

Chức năng này bao gồm hầu hết các điểm chính, có nghĩa là sự lựa chọn phụ thuộc vào các điểm quyết định mang nhiều sắc thái hơn. Dù có một vài trường hợp ngoại lệ, bạn có thể thử một ứng dụng trên cơ sở dữ liệu và sau đó chuyển đổi sang ứng dụng khác mà không cần phải viết lại ứng dụng của mình.

Bạn muốn xem CockroachDB, nhưng quyết định rằng PostgreSQL phù hợp hơn? Rất có thể bạn sẽ không gặp bất kỳ rắc rối nào. Bạn có một ứng dụng đang chạy trên PostgreSQL, nhưng bạn đang tìm kiếm khả năng mở rộng quy mô và chuyển đổi dự phòng tốt hơn? CockroachDB có thể phù hợp hơn.

Những điểm khác biệt để giúp bạn quyết định

Khả năng tương thích, truy vấn phức tạp, quy mô và tính linh hoạt có thể giúp bạn chọn tùy chọn này hơn tùy chọn kia.

Tỷ lệ

Sự khác biệt lớn nhất là cách các sản phẩm xử lý việc mở rộng quy mô, nhân rộng và tính khả dụng cao (HA). CockroachDB được xây dựng từ đầu để cung cấp kho dữ liệu SQL toàn cầu với các giao dịch phân tán. Bạn có thể phân tán dữ liệu của mình trên các đám mây và khu vực với quyền kiểm soát chi tiết đối với dữ liệu nào được phép cư trú trong từng khu vực hoặc đám mây. và quản lý.

Việc tập trung vào quy mô toàn cầu của CockroachDB cho phép nó thân thiện với đám mây hơn rất nhiều. CockroachDB mong đợi một số lượng lớn các nút nhỏ hơn, dùng một lần, vì vậy việc mở rộng quy mô và HA chỉ được xử lý dễ dàng sau hậu trường cho bạn.

Mặt khác, PostgreSQL cung cấp một số giải pháp cho đa tổng thể, mở rộng quy mô và HA, nhưng hầu hết các chức năng đó không được bao gồm trong PostgreSQL và yêu cầu các phần mở rộng của bên thứ ba. Ngoài ra, việc thiết lập, cấu hình và quản lý hàng ngày phức tạp hơn một chút đối với việc triển khai HA PostgreSQL.

Tính linh hoạt

Một lợi ích thực sự của PostgreSQL là nó đã trải qua nhiều năm chiến đấu và phạm vi điều chỉnh và mở rộng. Chỉ cần so sánh tài liệu về Cấu hình máy chủ trên PostgreSQL và bạn sẽ thấy một loạt các tùy chọn và thông số điều chỉnh cho cụm của mình. Muốn mức độ cách ly? Bạn có bốn tùy chọn, trong khi CockroachDB chỉ cung cấp cho bạn một tùy chọn. Muốn nhân rộng? PostgreSQL cung cấp cho bạn tám lựa chọn thay thế, trong khi CockroachDB xử lý nó ở hậu trường.

PostgreSQL cũng cung cấp một hệ sinh thái mở rộng khổng lồ để mở rộng sản phẩm. Hàng trăm phần mở rộng được cung cấp công khai và bạn cũng có thể viết phần mở rộng của riêng mình. Những phạm vi này bao gồm việc thêm phân cụm (như Citus) vào các đối tượng mới (postGIS) đến tối ưu hóaPostgreSQL cho một trường hợp sử dụng cụ thể (Timescale). Tuy nhiên, tính linh hoạt này chắc chắn đi kèm với một chi phí. Nó có thể giới thiệu tính đơn giản và ảnh hưởng đến hiệu suất và sự ổn định của phiên bản của bạn. Bạn cũng có thể định cấu hình sai môi trường của mình. Cách tiếp cận CockroachDB đơn giản hóa mọi thứ để việc xây dựng và quản lý một cụm trở nên đơn giản.

Khả năng tương thích

Nếu bạn cần sự tuân thủ PostgreSQL hoàn chỉnh hoặc SQL đầy đủ hơn, thì PostgreSQL là lựa chọn tốt hơn. Cho dù bạn đã có một ứng dụng cũ hay bạn cần một cửa hàng phụ trợ cho CMS hoặc khuôn khổ web tiêu chuẩn, thì có thể phải phụ thuộc nhiều vào các góc của PostgreSQL hoặc SQLthat Cockroach có thể chưa hỗ trợ. Mặc dù Cockroach Labs tiếp tục bổ sung thêm nhiều tính năng và chức năng cho sản phẩm nhưng nó vẫn chưa tương thích 100% với PostgreSQL. Một lĩnh vực khác mà bạn có thể thấy sự khác biệt là cách CockroachDB xử lý vai trò, người dùng, nhóm và xác thực. Các tùy chọn PostgreSQLauthentication cực kỳ mạnh mẽ và mặc dùCockroachDB có cung cấp RBAC, có một số khác biệt đáng kể giữa hai công nghệ.

Bạn có thể vượt qua các thách thức về khả năng tương thích, nhưng cuối cùng điều đó phụ thuộc vào ứng dụng của bạn và khả năng xác định và giải quyết các khả năng tương thích tiềm ẩn.

Truy vấn phức tạp

Một lĩnh vực mà Cockroach Labs đã đầu tư rất nhiều nỗ lực là khả năng thực hiện các phép nối và cải thiện hiệu suất với trình tối ưu hóa truy vấn SQL dựa trên chi phí của họ. Tuy nhiên, nếu bạn có khối lượng công việc Business Intelligence hoặc phân tích với các truy vấn cực kỳ phức tạp và nhiều phép nối, chế độ xem, tổng hợp và đánh giá biểu thức, thì PostgreSQL có thể là lựa chọn tốt hơn.

Đây là một lĩnh vực mà bạn có thể dễ dàng kiểm tra bằng đánh giá hoặc bằng chứng về khái niệm. Trường hợp sử dụng của bạn càng gần với các truy vấn phân tích và OLAP, thì PostgreSQL có thể là lựa chọn tốt hơn. Với các giao dịch kiểu OLTP nhanh chóng, CockroachDB có thể giúp ích nhiều nhất.

So sánh tóm tắt

Con giánDB PostgreSQL
Năm phát hành đầu tiên 2015 1996
Phiên bản ổn định hiện tại 20.1.0 13
Cấp phép Giấy phép Nguồn Kinh doanh Các thành phần cốt lõi BSL. Giấy phép Cộng đồng Cockroach CCLenterprise Các tính năng của Giấy phép PostgreSQL Giấy phép PostgreSQL
SQ:Sự phù hợp * Tuân thủ toàn bộ hoặc một phần với ~ 244 tính năng SQL:2011 Phù hợp với ~ 385 tính năng SQL:2011
Điểm thưởng Thay đổi lược đồ trực tuyến, giao dịch phân tán Thủ tục được lưu trữ, con trỏ, trình kích hoạt, chế độ xem cụ thể hóa
Giao thức dây Giao thức dây PostgreSQL Giao thức dây PostgreSQL
Trình điều khiển khách hàng Các tùy chọn đã thử nghiệm cộng với hệ sinh thái lớn do giao thức dây PostgreSQL Hệ sinh thái lớn gồm các trình điều khiển do cộng đồng và chính thức cung cấp
Tương thích CMS / Framework Khả năng tương thích một phần, thông qua dây PostgreSQL Hỗ trợ rộng rãi và khả năng tương thích cho các khuôn khổ chính
Plugin / Tiện ích mở rộng Gói tính năng doanh nghiệp Hệ sinh thái mở rộng cộng đồng rộng lớn
Replication / HA Có, tích hợp sẵn Qua phần bổ sung / phần mở rộng nguồn mở
Multi-Master / Clustering Có, tích hợp sẵn Qua phần bổ sung / phần mở rộng nguồn mở
Đa trung tâm dữ liệu / Địa lý Có, tích hợp sẵn Tùy chỉnh hoặc thông qua các bổ sung / tiện ích mở rộng nguồn mở
Xác thực Mật khẩu, Chứng chỉ Mật khẩu, Chứng chỉ, GSSAPI, SSPI, Ident, LDAP, RADIUS, PAM, BSD
Quyền Quyền dựa trên người dùng và RBAC RBAC với quyền cấp hàng và cột, hỗ trợ đặc quyền SQL:2011 đầy đủ
Điểm mạnh Mở rộng quy mô gốc đám mây, tính khả dụng cao, phân phối theo địa lý, cấu hình và triển khai đơn giản Tính linh hoạt, khả năng điều chỉnh, khả năng tương thích và hệ sinh thái
Điểm yếu Độ trễ và mức độ phong phú của các tính năng / hỗ trợ SQL Độ phức tạp theo quy mô, hiệu suất đọc
Điểm mấu chốt Chọn CockroachDB khi bạn đang tạo khối lượng công việc mang tính giao dịch cao, kiểu OLTP hoặc khả năng mở rộng quy mô (cục bộ hoặc toàn cầu) là quan trọng Chọn PostgreSQL nếu khối lượng công việc của bạn bao gồm các truy vấn phân tích nặng hơn hoặc bạn cần quyền truy cập vào bộ tính năng khổng lồ, hệ sinh thái và các ứng dụng tương thích

* Vì không có kho dữ liệu nào mà tôi biết 100% phù hợp với thông số đầy đủ của SQL:2011, nên tôi chỉ xem xét mức độ thông số kỹ thuật mà mỗi sản phẩm hỗ trợ.

Bạn có hai lựa chọn tuyệt vời trước bạn. Cả hai đều có thể được sử dụng trong buổi hòa nhạc để tạo ra một danh mục kho dữ liệu tuyệt vời. Nếu bạn đang xây dựng fromscratch ngày hôm nay và bạn không có các nhu cầu cực kỳ độc đáo hoặc PostgreSQL và các vấn đề mở rộng quy mô, thì hãy nghiêm túc nhìn vào CockroachDBas một cơ hội tuyệt vời. Tuy nhiên, nếu bạn đã biết mình cần gì và muốn tập trung vào tính linh hoạt rộng rãi của PostgreSQL, chúng tôi cũng có thể trợ giúp ở đó.

Cả PostgreSQL và CockroachDB đều có sẵn ngay bây giờ. Tìm cái nào phù hợp với bạn.

Kết luận

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể nhấp vào Trò chuyện bán hàng để trò chuyện ngay bây giờ và bắt đầu cuộc trò chuyện.