2013-05-01 27 views
6

Chúng tôi đang trong quá trình làm ướt chân bằng Cassandra. Không ai trong chúng ta có kinh nghiệm với nền tảng đặc biệt này, nhưng là những nhà phát triển có kinh nghiệm với JavaEE, JPA, v.v. Tôi đi qua thư viện Kundera cung cấp triển khai JPA tương thích với một số kho dữ liệu NoSQL, bao gồm cả Cassandra.Bắt đầu Cassandra - Sử dụng Kundera? Thứ gì khác?

Thật hấp dẫn để đi xuống tuyến đường này, vì chúng tôi có thể bắt kịp và chạy MUCH nhanh hơn. Tuy nhiên, đó có phải là ý tưởng đúng không? Sự cân bằng của việc sử dụng thư viện như thế này là gì? Nó ảnh hưởng đến hiệu suất như thế nào? Có sự khác biệt lớn nào không?

Tôi tò mò muốn biết những trải nghiệm người khác đã sử dụng thư viện này. Và, nếu có cái gì khác chúng ta nên nhìn vào thay vào đó tôi rất muốn nghe về nó.

+5

Vui lòng kiểm tra lại [faq], đặc biệt là phần "what _not_ to ask". Đây không phải là một bảng thảo luận. – Mat

+1

Một câu hỏi liên quan khác mà bạn có thể khám phá là http://stackoverflow.com/questions/15983190/cassandra-client-java-apis/15990877#15990877 – Easility

+0

xấu hổ rằng nhiều người hơn không thực sự đóng các câu hỏi như "chủ yếu dựa trên ý kiến" kể từ đó là những gì đây là –

Trả lời

9

Lấy Jonathan (jbellis) lên cấp độ tiếp theo, IMHO, mục đích của ORM như thông số kỹ thuật hibernate hoặc JPA là ẩn các phức tạp của SQL vì các nhà phát triển ứng dụng xử lý tốt nhất trong các đối tượng chứ không phải SQL. Tương tự, kundera che giấu sự phức tạp của NoSQL nhưng theo cách thông minh cho phép nó sử dụng sức mạnh của NoSQL nhưng vẫn giúp các nhà phát triển dễ dàng sử dụng mô hình RDBMS truyền thống. Tuy nhiên, như Jonathan đề cập đến, bạn vẫn nên hiểu các khái niệm mô hình dữ liệu Cassandra, nếu không, bạn sẽ kết thúc việc tạo ra một SQL khác như quái vật ngay cả trên Cassandra. Kundera giúp đỡ trong mô hình NoSQL này bằng cách sử dụng các kỹ thuật tối ưu hóa như Embedded hoặc One-to-Many tự động chuyển đổi thành nhiều cột hơn là tạo mới Columnfamilies (bảng tương đương RDBMS), do đó phá vỡ việc tạo ra một mô hình quan hệ vật lý. "Một công cụ chỉ tốt bằng kỹ năng của người thợ thủ công/người phụ nữ sử dụng nó!"

+0

Vì vậy, những lợi ích của việc sử dụng một cái gì đó như Kundera (hỗ trợ giao dịch, lập chỉ mục Lucene, vv) lớn hơn bất kỳ tác động hiệu suất hoặc những nhược điểm khác? Tôi nhận ra sự cần thiết phải mô phỏng lại mô hình dữ liệu để ít giống SQL hơn và nội tuyến hơn với những gì các nguồn dữ liệu được thiết kế để xử lý. Vẫn còn một lợi ích trong việc đi xuống tuyến đường này? – Shadowman

+2

Chỉ mục dựa trên Lucene là tùy chọn. Bạn có thể muốn sử dụng chỉ mục phụ của Cassandra. Với chi phí hiệu suất phát hành 2.5 hiện tại là rất tối thiểu so với apri tiết kiệm nhiên liệu vv. –

8

Sử dụng native CQL driver và đọc documentation on data modeling. Giả vờ rằng Cassandra là một cơ sở dữ liệu quan hệ theo cách mà Kundera làm là một cách tuyệt vời để tự vẽ mình vào một góc mà không hoàn toàn hiểu được cách bạn đến đó.

+4

Tôi sẽ nói nó phụ thuộc vào trường hợp sử dụng để sử dụng trường hợp. Kundera không Cassandra như một lược đồ quan hệ, nhưng cung cấp một cách JPA để truy cập nó. Với sự phát triển CQL hiện tại, Cassandra tự giới thiệu một số loại lược đồ có sẵn để sử dụng. Vì vậy, Kundera rất tiện dụng và nó cho phép bạn: 1. Xử lý ngầm quản lý lược đồ Cassandra 2. Làm CRUD qua Cassandra theo cách JPA. 3. Cassandra của khóa học là cơ sở dữ liệu không phân phối quan hệ, nhưng chúng ta vẫn thấy các trường hợp mà mọi người đang tìm kiếm JPA như trường hợp sử dụng, sự bền bỉ của polyglot. Có, Kundera rất tiện dụng, –

2

PlayOrm là một lớp bản đồ noSql và KHÔNG tuân thủ JPA theo mục đích sau nhiều mẫu của noSQL. noSQL không quan hệ. Trong thực tế, nó có lẽ không nên có R trong PlayORM vì nó cũng không hoàn toàn quan hệ. Bạn vẫn có mối quan hệ trong noSQL mặc dù. Nó không chỉ là một RDBMS.